2017Android面試回憶錄「上」(騰訊/阿里/滴滴/美團...)

前言

面試合集 之 滴滴、美團、騰訊、阿里、頭條、小米、網易... 提供答案(逐步更新中)

寫這篇面試回憶錄的目的:

  • 梳理一下面試過程的知識點,為了以后可以更直觀地回憶
  • 希望給正在或者準備面試的朋友提供一些幫助

其它:

  • 時間周期:【2017/4 -- 2017/6】
  • 來源: 【感謝「奔騰的兔子」和「劍膽詩魂」的友情贊助】
  • 主要面向人群: 面試【高級工程師】或者【資深工程師】等相關職位
  • 沒有嚴格按照一面、二面、三面來區(qū)分

目錄

騰訊OMG

  • ? synchronize用法
  • ? volatile用法
  • ? 動態(tài)權限適配方案,權限組的概念
  • ? 網絡請求緩存處理,okhttp如何處理網絡緩存的
  • ? 圖片加載庫相關,bitmap如何處理大圖,如一張30M的大圖,如何預防OOM
  • ? 進程?;?/li>
  • ? listview圖片加載錯亂的原理和解決方案
  • ? https相關,如何驗證證書的合法性,https中哪里用了對稱加密,哪里用了非對稱加密,對加密算法(如RSA)等是否有了解

阿里巴巴

  • ? LRUCache原理
  • ? 圖片加載原理
  • ? 模塊化實現(xiàn)(好處,原因)
  • ? JVM
  • ? 視頻加密傳輸
  • ? 統(tǒng)計啟動時長,標準
  • ? 如何保持應用的穩(wěn)定性
  • ? ThreadLocal 原理
  • ? 談談classloader
  • ? 動態(tài)布局
  • ? 熱修復,插件化
  • ? HashMap源碼,SpareArray原理
  • ? 性能優(yōu)化,怎么保證應用啟動不卡頓
  • ? 怎么去除重復代碼
  • ? SP是進程同步的嗎?有什么方法做到同步
  • ? 介紹下SurfView
  • ? HashMap實現(xiàn)原理,ConcurrentHashMap 的實現(xiàn)原理
  • ? BroadcastReceiver,LocalBroadcastReceiver 區(qū)別
  • ? Bundle 機制
  • ? Handler 機制
  • ? android 事件傳遞機制
  • ? 線程間 操作 List
  • ? App啟動流程,從點擊桌面開始
  • ? 動態(tài)加載
  • ? 類加載器
  • ? OSGI
  • ? Https請求慢的解決辦法,DNS,攜帶數(shù)據(jù),直接訪問IP
  • ? GC回收策略
  • ? 畫出 Android 的大體架構圖
  • ? 描述清點擊 Android Studio 的 build 按鈕后發(fā)生了什么
  • ? 大體說清一個應用程序安裝到手機上時發(fā)生了什么;
  • ? 對 Dalvik、ART 虛擬機有基本的了解;
  • ? Android 上的 Inter-Process-Communication 跨進程通信時如何工作的;
  • ? App 是如何沙箱化,為什么要這么做;
  • ? 權限管理系統(tǒng)(底層的權限是如何進行 grant 的);
  • ? 進程和 Application 的生命周期;
  • ? 系統(tǒng)啟動流程 Zygote進程 –> SystemServer進程 –> 各種系統(tǒng)服務 –> 應用進程
  • ? recycleview listview 的區(qū)別,性能

滴滴

  • ? MVP
  • ? 廣播(動態(tài)注冊和靜態(tài)注冊區(qū)別,有序廣播和標準廣播)
  • ? service生命周期
  • ? handler實現(xiàn)機制(很多細節(jié)需要關注:如線程如何建立和退出消息循環(huán)等等)
  • ? 多線程(關于AsyncTask缺陷引發(fā)的思考)
  • ? 數(shù)據(jù)庫數(shù)據(jù)遷移問題
  • ? 設計模式相關(例如Android中哪里使用了觀察者模式,單例模式相關)
  • ? 微信的聊天數(shù)據(jù)在本地都是加密處理的(防止root了被破解),設計一個類似的本地數(shù)據(jù)存儲系統(tǒng)
  • ? x個蘋果,一天只能吃一個、兩個、或者三個,問多少天可以吃完
  • ? Android相關你最擅長哪一塊
  • ? TCP與UDP區(qū)別與應用(三次握手和四次揮手)涉及到部分細節(jié)(如client如何確定自己發(fā)送的消息被server收到) HTTP相關 提到過Websocket 問了WebSocket相關以及與socket的區(qū)別
  • ? 是否熟悉Android jni開發(fā),jni如何調用java層代碼
  • ? 進程間通信的方式
  • ? java注解
  • ? 計算一個view的嵌套層級
  • ? 項目組件化的理解
  • ? 基于自身工作經驗和計算機相關知識,給出 移動端地圖局部加載 瓦片大小的像素大小估值
  • ? 多線程斷點續(xù)傳原理
  • ? Android系統(tǒng)為什么會設計ContentProvider,進程共享和線程安全問題
  • ? jvm相關
  • ? Android相關優(yōu)化(如內存優(yōu)化、網絡優(yōu)化、布局優(yōu)化、電量優(yōu)化、業(yè)務優(yōu)化)
  • ? EventBus實現(xiàn)原理

美團

  • ? 線程掛起,休眠,釋放資源相關,喚醒,線程同步,數(shù)據(jù)傳遞,問了很多線程的問題,問了20分鐘大概
  • ? static synchronized 方法的多線程訪問和作用,同一個類里面兩個synchronized方法,兩個線程同時訪問的問題
  • ? 內部類和靜態(tài)內部類和匿名內部類,以及項目中的應用
  • ? 泛型是什么以及在項目中的應用
  • ? handler發(fā)消息給子線程,looper怎么啟動
  • ? down、move、up事件的傳遞
  • ? activity棧
  • ? 封裝view的時候怎么知道view的大小
  • ? intent-filter
  • ? arraylist和linkedlist的區(qū)別,以及應用場景
  • ? 怎么啟動service,service和activity怎么進行數(shù)據(jù)交互
  • ? 下拉狀態(tài)欄是不是影響activity的生命周期,如果在onStop的時候做了網絡請求,onResume的時候怎么恢復
  • ? view渲染

總結

共同點:

  • 對基礎性、原理性的東西比較重視
  • 具體問題的解決能力、項目的架構能力

不同點:

  • 公司不同、產品業(yè)務線不同,所以涉及的技術重點和方向不同

思考:

  • 有些東西你不僅要懂,而且要能夠很好地表達出來,能夠讓面試官認可你的理解,例如Handler機制,這個是面試必問之題
  • 有些晦澀的點,或許它只活在面試當中,實際工作當中你壓根不會用到它,但是你要知道它是什么東西

下篇請傳送到:
2017Android面試回憶錄「下」(今日頭條/小米/網易/知乎...)

內推:
【社招】【滴滴-北京】Android開發(fā)工程師

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • Java中的String類可以被繼承么? 答:不能,因為它是一個final類,同樣的還有Integer,F(xiàn)loat...
    gyymz1993閱讀 4,174評論 2 104
  • 昆明是我在云南的最后一站,本來是沒有抱太多期望,只想好好休息第二天回北京,中轉一下罷了。 唯一一次住青旅,在火車站...
    不能為空閱讀 294評論 0 2
  • 有些時候閑下來,一個人想想事,總是想著想著就想落淚了。這才意識到,突然間我大起來了,突然間要面對的事很多很多了...
    洛簡紫閱讀 1,261評論 0 1
  • 在這個假期里,我感覺有點放松,用手機次數(shù)有點多我覺得,在我們生活中,沒有書,就好像人們沒有了陽光! ...
    悅香_f599閱讀 433評論 0 0

友情鏈接更多精彩內容