linux
最近我開始偷偷投簡歷了。與老東家的合同快要到期,想知道本身的斤兩,續簽合同也好有個底,順便悄悄看看新的工做機會。雖然市場環境很差,但咱們身在漲工資靠跳槽的行業沒辦法。android
git
刷題我從常見Android基礎知識面試題,刷到了Java面試題,繼而攻堅Android高級面試題,以及突破學習Flutter相關熱點技術面試題(不是很難),最後總攻今年大廠面試真題總結。github
1、 Activityweb
一、 什麼是Activity?面試
二、 請描述一下Activity 生命週期sql
三、 常見的Activity類型有FragmentActivitiy,ListActivity,TabAcitivty等。請描述一下Activity 生命週期設計模式
四、 如何保存Activity的狀態?安全
五、 兩個Activity之間跳轉時必然會執行的是哪幾個方法?性能優化
六、 橫豎屏切換時Activity的生命週期
七、 如何將一個Activity設置成窗口的樣式
八、 如何退出Activity?如何安全退出已調用多個Activity的Application?
九、 Activity的四種啓動模式,singletop和singletask區別是什麼?通常書籤的使用模式是singletop,那爲何不使用singletask?
十、 Android中的Context, Activity,Appliction有什麼區別?
十一、 兩個Activity之間傳遞數據,除了intent,廣播接收者,content provider還有啥?
十二、 Context是什麼?
2、 Service
一、 Service是否在main thread中執行, service裏面是否能執行耗時的操做?
二、 Activity怎麼和Service綁定,怎麼在Activity中啓動本身對應的Service?
三、 請描述一下Service的生命週期
四、 什麼是IntentService?有何優勢?
五、 說說Activity、Intent、Service是什麼關係
六、 Service和Activity在同一個線程嗎
七、 Service裏面能夠彈吐司麼
八、 什麼是Service以及描述下它的生命週期。Service有哪些啓動方法,有什麼區別,怎樣停用Service?
九、 在service的生命週期方法onstartConmand()可不能夠執行網絡操做?如何在service中執行網絡操做?
3、 Broadcast Receiver
一、 請描述一下BroadcastReceiver
二、 在manifest和代碼中如何註冊和使用BroadcastReceiver
三、 BroadCastReceiver的生命週期
4、 ContentProvider
一、 請介紹下ContentProvider是如何實現數據共享的
二、 請介紹下Android的數據存儲方式
三、 爲何要用ContentProvider?它和sql的實現上有什麼差異?
四、 說說ContentProvider、ContentResolver、ContentObserver之間的關係
5、 ListView
一、 ListView如何提升其效率?
二、 當ListView數據集改變後,如何更新ListView
三、 ListView如何實現分頁加載
四、 ListView能夠顯示多種類型的條目嗎
五、 ListView如何定位到指定位置
六、 如何在ScrollView中如何嵌入ListView
七、 ListView中如何優化圖片
八、 ListView中圖片錯位的問題是如何產生的
九、 如何刷新ListView中單個item的數據,不刷新整個ListView的數據?
6、 Intent
一、 Intent傳遞數據時,能夠傳遞哪些類型數據?
二、 Serializable和Parcelable的區別
三、 請描述一下Intent 和 IntentFilter
7、 Fragment
一、 Fragment跟Activity之間是如何傳值的
二、 描述一下Fragment的生命週期
三、 Fragment的replace和add方法的區別
四、 Fragment如何實現相似Activity棧的壓棧和出棧效果的?
五、 Fragment在大家項目中的使用
六、 如何切換fragement,不從新實例化
1、 Java基礎
一、 Java中引用類型都有哪些
二、 什麼是重載,什麼是重寫,有什麼區別? )
三、 String、StringBuffer和StringBuilder的區別
四、 關鍵字final和static是怎麼使用的
五、 TCP/IP協議簇分哪幾層?TCP、IP、XMPP、HTTP、分別屬於哪一層?
2、 Java中的設計模式
一、 你所知道的設計模式有哪些
二、 單例設計模式
三、 工廠設計模式
四、 建造者模式(Builder)
五、 適配器設計模式
六、 裝飾模式(Decorator)
七、 策略模式(strategy)
八、 觀察者模式(Observer)
Android 高級
1、 Android性能優化
一、 如何對Android應用進行性能分析
二、 什麼狀況下會致使內存泄露
三、 如何避免OOM異常
四、 Android中如何捕獲未捕獲的異常
五、 ANR是什麼?怎樣避免和解決ANR(重要)
六、 Android線程間通訊有哪幾種方式(重要)
七、 Devik進程,linux進程,線程的區別
八、 描述一下android的系統架構?
九、 android應用對內存是如何限制的?咱們應該如何合理使用內存?
十、 簡述android應用程序結構是哪些?
十一、 請解釋下Android程序運行時權限與文件系統權限的區別?
十二、 Framework工做方式及原理,Activity是如何生成一個view的,機制是什麼?
1三、 多線程間通訊和多進程之間通訊有什麼不一樣,分別怎麼實現?
2、 Android屏幕適配
一、 屏幕適配方式都有哪些
二、 屏幕適配的處理技巧都有哪些
3、 AIDL
一、 什麼是AIDL以及如何使用
二、 AIDL的全稱是什麼?如何工做?能處理哪些類型的數據?
4、 Android中的事件處理
一、 Handler機制
二、 事件分發機制
三、 子線程發消息到主線程進行更新UI,除了handler和AsyncTask,還有什麼?
四、 子線程中能不能new handler?爲何?
5、 Android中的動畫
一、 Android中的動畫有哪幾類,它們的特色和區別是什麼
二、 如何修改Activity進入和退出動畫
三、 屬性動畫,例如一個button從A移動到B點,B點仍是能夠響應點擊事件,這個原理是什麼?
6、 ContentObserver 內容觀察者做用及特色
項目框架的使用
1、 自我介紹
2、 開發中都使用過哪些框架、平臺
3、 都使用過哪些自定義控件
4、 自定義控件:繪製圓環的實現過程
5、 自定義控件:摩天輪的實現過程
6、 自定義控件:可拖拽排序的GridLayout的實現過程
7、 流式佈局的實現過程
8、 項目的流程
9、 項目中常見的問題
10、 即時通信是是怎麼作的?
11、 設計模式六大原則
12、 第三方登錄
十3、 第三方支付
十4、 常見框架分析
面試題集能夠幫助你查漏補缺,有方向有針對性的學習,爲以後進大廠作準備。可是若是你僅僅是看一遍,而不去學習和深究。那麼這份面試題對你的幫助會頗有限。最終仍是要靠資深技術水平說話。
網上學習 Android的資料一大堆,但若是學到的知識不成體系,遇到問題時只是淺嘗輒止,再也不深刻研究,那麼很難作到真正的技術提高。建議先制定學習計劃,根據學習計劃把知識點關聯起來,造成一個系統化的知識體系。
學習方向很容易規劃,可是若是隻經過碎片化的學習,對本身的提高是很慢的。
同時我還蒐集整理2020年字節跳動,以及騰訊,阿里,華爲,小米等公司的面試題,把面試的要求和技術點梳理成一份大而全的「 Android架構師」面試 Xmind(實際上比預期多花了很多精力),包含知識脈絡 + 分支細節。
在搭建這些技術框架的時候,還整理了系統的高級進階教程,會比本身碎片化學習效果強太多。
點擊:《Android架構視頻+BAT面試專題PDF+學習筆記》便可免費獲取~
網上學習 Android的資料一大堆,但若是學到的知識不成體系,遇到問題時只是淺嘗輒止,再也不深刻研究,那麼很難作到真正的技術提高。但願這份系統化的技術體系對你們有一個方向參考。