京1:
- butterknife原理,R2檔案?
- Handler異步訊息,同步屏障?同步訊息?looper.perpare()何時創建?message.obtain()?
- Vsync,垂直同步信號?
- UI滑動渲染優化?
- 記憶體泄漏?leakcarray原理?
- oom的條件?
- 開辟多個執行緒導致oom?
- bitmap的存盤形式在系統中的存盤?存盤在哪?
- 布局優化?LinearLayout draw幾次?
- IPC機制,binder機制的理解?為什么使用執行緒池?(一個服務端對多個客戶端)
- flutter渲染機制?flutter的樹?
京2:
- 移動端自動化開發
- EventBus原理?優點?缺點?切換執行緒的方式
- ViewModel+LiveData
- 音箱和手機的差異化?android版本,廠商room,客戶群體不同
- apk瘦身?
- 啟動優化的時間檢測?啟動器優化方式
- 組件化?如何設計一個組件
小米1:
-
Activity的生命周期?activityA在下拉框的時候的生命周期?(不變化)onDestory有立即執行嗎?
-
activity啟動后在最后一幀繪制在哪?
-
android啟動打點?AOP?啟動優化?開啟一個執行緒?AMS,反射?如何對函式進行插樁?
ASM對.class檔案修改,生成.dex檔案前搞定,在.class和.dex檔案轉化中間作修改
-
leakcanary原理?自己如何做記憶體泄漏器?各個函式之間的耗時情況?
-
亮點?有向無環圖?contentprovider的初始化?
-
Handler記憶體泄漏的原因?怎么處理?handler持有Activity強參考,messageQueue持有handler的強參考
-
view的繪制?dispatchDraw()和onDraw()的執行順序?
-
如果繪制一個圓,保證這個圓的中間不被繪制?cavas進行裁剪,畫布上就缺一塊,則子view繪制不上
-
view的事件分發?如果dispatch回傳true,會攔截到onInterrcept和onTouch
-
bitmap的優化?bitmap的大小的計算?2x的大小圖片放大1x的圖片中,bitmap會變大
-
執行緒池?阻塞的處理?exectue和submit的區別,如何捕獲執行緒池錯誤(ThreadFactory)
-
生產者消費者通知?
-
執行緒同步?加鎖,Sychronized,ReentrantLock
-
Hashmap,hash值計算?為什么這么計算?arraymap和hashmap?
-
陣列和鏈表的區別?
-
https加密形式
小米2面:
- 啟動優化?bitmap預加載?如何更快加載圖片?還有別的什么優化?
- Glide的into方法是怎么執行的,如何顯示到imageView中的?
- Glide的加載流程?fragment如何系結?imageView正在加載,再次加載另一個圖片,具體會執行什么?
- Android啟動流程?Activity啟動流程?
- ViewModel?LiveData的理解 ?mvvm的理解?
- 網路請求異步框架?執行緒池?
- 鏈表反轉(逆置)
Yy1:
-
okhttp io的方式?okio,java中io的方式?責任鏈模式?連接池復用?
-
Glide的快取結構?為什么要用activieResource?
-
EventBus的簡述?位元組碼=.class檔案,注解方式?
-
RecyclerView快取形式?
-
MotionLayout的內部原理
-
Mvvm需要注意什么?記憶體泄漏?持有view的參考
-
leakCanary原理,gc間隔=5s,在idleHandler中使用延遲5s的操作,大概是主執行緒閑置后在等待5s中進行驗證后執行gc?Fragment怎么監聽記憶體泄漏的?fragmentManager.registerFragmentLifecycleCallbacks中檢測
-
apk瘦身?so庫合并
先把所有要打包的庫編譯生成靜態庫,然后使用如下命令把它們合并成一個*.so:
gcc -shared -o c.so -Wl,--whole-archive a.a b.a -Wl,--no-whole-archive -
啟動優化?其他的優化框架,
-
執行緒,行程,協程?時間分片?協程是怎么做的?那個io?
-
handler機制?子執行緒中如何使用handler?handler中的Looper.prepareMain和Looper.prepare的區別?主執行緒永不退出,死回圈?同步屏障?
Yy2:
- 音頻協議?
- 協程,行程,執行緒的區別?
- mvvm?組件化?
- websocket協議和http協議的區別?
- butterknife原理?注解的三種形式?
- 動態代理的方式?2中?動態代理的關聯?
- 型別擦出?范性?
- 類加載程序?類什么時候初始化?靜態類的初始化程序?
- 編譯器優化?
- GCroot?堆疊溢位?(遞回)
- java例外有幾種?可以捕獲oom例外嗎?可以,在bitmap中如果觸發oom可以進行try catch
- 影片?差值器,估值器?
- 二叉樹之字形列印
581:
-
組件化ARouter框架原理?
編譯時注解生成類檔案,存盤全域路由管理,通過反射創建物件,
如果是Activity,通過Intent進行跳轉傳參,Fragment,BroadCastReceiver,Service等都是通過反射創建物件的
-
LiveData,viewModel機制,如何系結生命周期,viewModel中持久化是怎么做的,LiveData中的粘性事件
粘性事件是通過版本號控制的,當進入active狀態后,會比對version版本,進行訂閱者的通知
-
Activity的啟動程序
-
RecyclerView機制
-
Handler機制
-
java中鎖的機制,volatile的可見性怎么理解?Synchronized怎么理解?自旋鎖怎么理解?ReentrantLock怎么理解?
-
kotlin中的協程?
kotlin中協程通過掛起函式來實作協程的處理,使用CPS變換,suspend
每個掛起函式都會被編譯為Continuation ,將函式體編譯為狀態機
-
ASM
-
flutter理解?fish-redux的分層?資料流向?
view----->action---->effect----->reducer----->store----->view
58 2:
- 專案相關,,,
36012:
-
Fragment切換,add和replace,復用的問題?
-
Fragment可見性準確保證?
-
Fragment構造傳參的劣勢?
在Activity例外退出重建Fragment的時候,會執行Fragment的無參構造方法,如果通過setArguments進行傳遞引數,Activity在構造Fragment時會通過反射午餐構造實力
-
行內優化?
-
aapt1和aapt2的區別
aapt1進行全量編譯
aapt2進行差量編譯
-
垃圾加載的GC root
-
LRU演算法怎么實作的
-
java中的容器有哪些?執行緒安全的有哪些?
Vector 與ArrayList幾乎相同,但是執行緒安全
Stack 繼承自Vector
CopyOnWriteArrayList 寫實拷貝
ConcurrentLinkedQueue 基礎鏈表同步佇列
LinkedBlockingQueue
HashTable
ConcurrentHashMap
58 3:
- 對排序?
- http請求程序,https的程序
- 陣列和鏈表的區別
- 堆疊中呼叫方法的程序
- LRU演算法的實作
知乎 1:
- Activity的生命后期
- onConfigurationChanged?其他回掉時機?onSaveInstanceState回呼?分屏?
- ARouter?
- Fragment的生命周期?onCreateView可以回傳null嗎?
- fragment怎么初始化?fragment為什么不推薦攜帶引數?androidx中提供fragment傳參?Fragment重建?
- viewModel持久化?viewmodel重建?可以存盤Bundle?
- java記憶體模型?volatile原理?可見性,非原子性,禁止指令重排
- 組件化開發?
- 二叉樹鏡像?
知乎 2:
- mvvm的理解
- 離開公司的原因
- 未來的方向,2c方向,架構方向
- 架構師主要負責,技術選型
- 為什么選擇知乎?
- 知乎界面的分析+選型+排期
- 你的優勢,為什么給你發offer?
- android啟動器?執行緒池選型?
- 大檔案查找方案?
- 整數的逆置,頭和尾是0的情況排除
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/286934.html
標籤:其他
上一篇:SSM框架整合
下一篇:面試題打卡 第六天
