關于技術準備,主要是包含下面幾項:
項目經曆
Java基礎
設計模式
算法
網絡相關知識
Android基礎
Android源碼
Android性能優化
開源庫源碼
藍廠 :
一面就挂了,主要是以下幾個問題:
事件分發流程
View的渲染機制
動畫的原理,底層如何給上層信号
編譯打包的過程
Android有多個資源檔案夾,應用在不同分辨率下是如何查找對應檔案夾下的資源的,描述整個過程
ANR的原理(回答主線程5秒阻塞是不行的,要讀源碼)
度娘 :
Bitmap 使用時候注意什麼?
Oom 是否可以try catch ?
記憶體洩露如何産生?
擴充卡模式,裝飾者模式,外觀模式的異同?
ANR 如何産生?
String buffer 與string builder 的差別?
如何保證線程安全?
java四中引用
Jni 用過麼?
多程序場景遇見過麼?
關于handler,在任何地方new handler 都是什麼線程下
sqlite更新,增加字段的語句
bitmap recycler 相關
強引用置為null,會不會被回收?
glide 使用什麼緩存?
Glide 記憶體緩存如何控制大小?
如何保證多線程讀寫檔案的安全?
某海外直播公司
一面:
線程和程序的差別?
為什麼要有線程,而不是僅僅用程序?
算法判斷單連結清單成環與否?
如何實作線程同步?
hashmap資料結構?
arraylist 與 linkedlist 異同?
object類的equal 和hashcode 方法重寫,為什麼?
hashmap如何put資料(從hashmap源碼角度講解)?
簡述IPC?
fragment之間傳遞資料的方式?
簡述tcp四次揮手?
threadlocal原理
記憶體洩漏的可能原因?
用IDE如何分析記憶體洩漏?
OOM的可能原因?
線程死鎖的4個條件?
內插補點器&估值器
二面:
簡述消息機制相關
程序間通信方式?
Binder相關?
觸摸事件的分發?
簡述Activity啟動全部過程?
okhttp源碼?
RxJava簡介及其源碼解讀?
性能優化如何分析systrace?
廣播的分類?
點選事件被攔截,但是相傳到下面的view,如何操作?
Glide源碼?
ActicityThread相關?
volatile的原理
synchronize的原理
lock原理
三面:
三道算法題,要求在一個小時之内做完。
翻轉一個單項連結清單 1->2->3->4->5->null =====> 5->4->3->2->1->null
string to integer
合并多個單有序連結清單(假設都是遞增的)
四面:
總監面,問了一些java 同步相關的。
由鵝廠與其他公司合資創立的公司
一場筆試加一場面試後挂了,面試官T4級别……。
筆試:
Activity生命周期簡述
.常見記憶體洩漏情景及避免記憶體洩漏的措施
Actvity啟動模式簡述
簡繪觀察者設計模式UML圖
算法,求公共子序列(或者是子串,記不清了)
Java四種引用
自定義view重寫哪幾個方法?
http 的session&cookie的差別
簡述工作線程更新UI的方法
面試:
應用最多占多少記憶體
滑動卡頓如何解決(不同原因及對應處理方式)
自定義view實戰
多線程,多程序 相關
Java四種引用的使用
某ding
一面就挂。
XX項目你負責什麼
Sqlite 怎麼增加一個字段
XX項目中是怎麼建立資料庫的
Sqlite 怎麼删除一個字段
有什麼你覺得自己做得好的地方
為什麼用Retrofit(一個開源庫)
Retrofit與之前的網絡庫有什麼優勢
XX項目中你們自己定義的線程池來管理任務,不使用架構,那麼,後來新的項目怎麼設計的
你認為Rxjava的線程池與你們自己實作任務管理架構有什麼差別?
記憶體洩漏的常見場景
怎麼發現&分析記憶體洩漏
某條
面了三輪技術加一輪HR,HR事業線不錯,笑得職業化,其他的沒記住。
其他
處理有序數組為什麼比無序數組更快 參考StackOverflow
熱修複與插件化相關
Integer類是不是線程安全的,為什麼
不使用同步鎖如何實作線程安全
面試頭條的時候線上程式設計:從上到下從左到右輸出二叉樹
針對concurrent包下面的一些類的問題
Android面試再也不是“能答出來Activity生命周期就OK”的時代了,你們看前面的面試題,有些問題牽扯到底層原理。另外光是concurrent包下面的東西就能把你問懵逼了。