下面的題目都是樓主在Android交流群大家在面試字節(jié)跳動時遇到的,如果大家有好的題目或者好的見解歡迎分享,樓主將長期維護此帖。
參考解析:郭霖、鴻洋、玉剛、極客時間、騰訊課堂…
內(nèi)容特點:條理清晰,含圖像化表示更加易懂。
內(nèi)容概要:包括 Handler、Activity相關(guān)、Fragment、service、布局優(yōu)化、AsyncTask相關(guān)
、Android 事件分發(fā)機制、 Binder、Android 高級必備 :AMS,WMS,PMS、Glide、 Android 組件化與插件化等面試題和技術(shù)棧!
刷題我從常見Android基礎(chǔ)知識面試題,刷到了Java面試題,繼而攻堅Android高級面試題,以及突破學習Flutter相關(guān)熱點技術(shù)面試題(不是很難),最后總攻今年大廠面試真題總結(jié)。
一、 Activity
1、 什么是Activity?
2、 請描述一下Activity 生命周期
3、 常見的Activity類型有FragmentActivitiy,ListActivity,TabAcitivty等。請描述一下Activity 生命周期
4、 如何保存Activity的狀態(tài)?
5、 兩個Activity之間跳轉(zhuǎn)時必然會執(zhí)行的是哪幾個方法?
6、 橫豎屏切換時Activity的生命周期
7、 如何將一個Activity設置成窗口的樣式
8、 如何退出Activity?如何安全退出已調(diào)用多個Activity的Application?
9、 Activity的四種啟動模式,singletop和singletask區(qū)別是什么?一般書簽的使用模式是singletop,那為什么不使用singletask?
10、 Android中的Context, Activity,Appliction有什么區(qū)別?
11、 兩個Activity之間傳遞數(shù)據(jù),除了intent,廣播接收者,content provider還有啥?
12、 Context是什么?
二、 Service
1、 Service是否在main thread中執(zhí)行, service里面是否能執(zhí)行耗時的操作?
2、 Activity怎么和Service綁定,怎么在Activity中啟動自己對應的Service?
3、 請描述一下Service的生命周期
4、 什么是IntentService?有何優(yōu)點?
5、 說說Activity、Intent、Service是什么關(guān)系
6、 Service和Activity在同一個線程嗎
7、 Service里面可以彈吐司么
8、 什么是Service以及描述下它的生命周期。Service有哪些啟動方法,有什么區(qū)別,怎樣停用Service?
9、 在service的生命周期方法onstartConmand()可不可以執(zhí)行網(wǎng)絡操作?如何在service中執(zhí)行網(wǎng)絡操作?
三、 Broadcast Receiver
1、 請描述一下BroadcastReceiver
2、 在manifest和代碼中如何注冊和使用BroadcastReceiver
3、 BroadCastReceiver的生命周期
四、 ContentProvider
1、 請介紹下ContentProvider是如何實現(xiàn)數(shù)據(jù)共享的
2、 請介紹下Android的數(shù)據(jù)存儲方式
3、 為什么要用ContentProvider?它和sql的實現(xiàn)上有什么差別?
4、 說說ContentProvider、ContentResolver、ContentObserver之間的關(guān)系
五、 ListView
1、 ListView如何提高其效率?
2、 當ListView數(shù)據(jù)集改變后,如何更新ListView
3、 ListView如何實現(xiàn)分頁加載
4、 ListView可以顯示多種類型的條目嗎
5、 ListView如何定位到指定位置
6、 如何在ScrollView中如何嵌入ListView
7、 ListView中如何優(yōu)化圖片
8、 ListView中圖片錯位的問題是如何產(chǎn)生的
9、 如何刷新ListView中單個item的數(shù)據(jù),不刷新整個ListView的數(shù)據(jù)?
六、 Intent
1、 Intent傳遞數(shù)據(jù)時,可以傳遞哪些類型數(shù)據(jù)?
2、 Serializable和Parcelable的區(qū)別
3、 請描述一下Intent 和 IntentFilter
七、 Fragment
1、 Fragment跟Activity之間是如何傳值的
2、 描述一下Fragment的生命周期
3、 Fragment的replace和add方法的區(qū)別
4、 Fragment如何實現(xiàn)類似Activity棧的壓棧和出棧效果的?
5、 Fragment在你們項目中的使用
6、 如何切換fragement,不重新實例化
一、 Java基礎(chǔ)
1、 Java中引用類型都有哪些
2、 什么是重載,什么是重寫,有什么區(qū)別? )
3、 String、StringBuffer和StringBuilder的區(qū)別
4、 關(guān)鍵字final和static是怎么使用的
5、 TCP/IP協(xié)議簇分哪幾層?TCP、IP、XMPP、HTTP、分別屬于哪一層?
二、 Java中的設計模式
1、 你所知道的設計模式有哪些
2、 單例設計模式
3、 工廠設計模式
4、 建造者模式(Builder)
5、 適配器設計模式
6、 裝飾模式(Decorator)
7、 策略模式(strategy)
8、 觀察者模式(Observer)
Android 高級
一、 Android性能優(yōu)化
1、 如何對Android應用進行性能分析
2、 什么情況下會導致內(nèi)存泄露
3、 如何避免OOM異常
4、 Android中如何捕獲未捕獲的異常
5、 ANR是什么?怎樣避免和解決ANR(重要)
6、 Android線程間通信有哪幾種方式(重要)
7、 Devik進程,linux進程,線程的區(qū)別
8、 描述一下android的系統(tǒng)架構(gòu)?
9、 android應用對內(nèi)存是如何限制的?我們應該如何合理使用內(nèi)存?
10、 簡述android應用程序結(jié)構(gòu)是哪些?
11、 請解釋下Android程序運行時權(quán)限與文件系統(tǒng)權(quán)限的區(qū)別?
12、 Framework工作方式及原理,Activity是如何生成一個view的,機制是什么?
13、 多線程間通信和多進程之間通信有什么不同,分別怎么實現(xiàn)?
二、 Android屏幕適配
1、 屏幕適配方式都有哪些
2、 屏幕適配的處理技巧都有哪些
三、 AIDL
1、 什么是AIDL以及如何使用
2、 AIDL的全稱是什么?如何工作?能處理哪些類型的數(shù)據(jù)?
四、 Android中的事件處理
1、 Handler機制
2、 事件分發(fā)機制
3、 子線程發(fā)消息到主線程進行更新UI,除了handler和AsyncTask,還有什么?
4、 子線程中能不能new handler?為什么?
五、 Android中的動畫
1、 Android中的動畫有哪幾類,它們的特點和區(qū)別是什么
2、 如何修改Activity進入和退出動畫
3、 屬性動畫,例如一個button從A移動到B點,B點還是可以響應點擊事件,這個原理是什么?
六、 ContentObserver 內(nèi)容觀察者作用及特點
項目框架的使用
一、 自我介紹
二、 開發(fā)中都使用過哪些框架、平臺
三、 都使用過哪些自定義控件
四、 自定義控件:繪制圓環(huán)的實現(xiàn)過程
五、 自定義控件:摩天輪的實現(xiàn)過程
六、 自定義控件:可拖拽排序的GridLayout的實現(xiàn)過程
七、 流式布局的實現(xiàn)過程
八、 項目的流程
九、 項目中常見的問題
十、 即時通訊是是怎么做的?
十一、 設計模式六大原則
十二、 第三方登陸
十三、 第三方支付
十四、 常見框架分析
文章所有資料全部已經(jīng)打包整理好,免費分享給有需要的人,另外小編手頭上整理了大量Android架構(gòu)師全套學習資料,Android核心高級技術(shù)PDF文檔 全套高級學習資料 視頻 2021 BAT 大廠面試真題解析,都是免費分享給大家的,全部都已整理在GitHub上,有需要的朋友可以點擊前往領(lǐng)取更多。
資料展示:
9A這些?如何面試拿高薪!.md)領(lǐng)取更多。**
資料展示:
[外鏈圖片轉(zhuǎn)存中…(img-1a3Iba6u-1614948960627)]
[外鏈圖片轉(zhuǎn)存中…(img-O1O0dikV-1614948960630)]
[外鏈圖片轉(zhuǎn)存中…(img-tRS5fUIK-1614948960633)]