Android最新面試題總結

 

請看Android知識圖譜。 

基礎知識 – 四大組件(生命週期,使用場景,如何啓動)
java基礎 – 數據結構,線程,mvc框架
通信 – 網絡連接(HttpClient,HttpUrlConnetion),Socket
數據持久化 – SQLite,SharedPreferences,ContentProvider
性能優化 – 佈局優化,內存優化,電量優化
安全 – 數據加密,代碼混淆,WebView/Js調用,https
UI– 動畫
其他 – JNI,AIDL,Handler,Intent等
開源框架 – Volley,Gilde,RxJava等(簡歷上寫你會的,用過的)
拓展 – Android6.0/7.0/8.0特性,kotlin語言,I/O大會

面試題(固定答案不解答,自己可以找到)
順序是根據記憶排的,沒有優先級之分,都是重點。

1.Activity的啓動過程(不要回答生命週期) 

http://blog.csdn.net/luoshengyang/article/details/6689748

2.Activity的啓動模式以及使用場景 
(1)manifest設置,(2)startActivity flag 
http://blog.csdn.net/CodeEmperor/article/details/50481726 
此處延伸:棧(First In Last Out)與隊列(First In First Out)的區別

3.Service的兩種啓動方式 
(1)startService(),(2)bindService() 

http://www.jianshu.com/p/2fb6eb14fdec

4.Broadcast註冊方式與區別 
(1)靜態註冊(minifest),(2)動態註冊 
http://www.jianshu.com/p/ea5e233d9f43 
此處延伸:什麼情況下用動態註冊

5.HttpClient與HttpUrlConnection的區別 
http://blog.csdn.net/guolin_blog/article/details/12452307 
此處延伸:Volley裏用的哪種請求方式(2.3前HttpClient,2.3後HttpUrlConnection)

6.http與https的區別 
http://blog.csdn.net/whatday/article/details/38147103 
此處延伸:https的實現原理

7.手寫算法(選擇冒泡必須要會) 
http://www.jianshu.com/p/ae97c3ceea8d

8.進程保活(不死進程) 
http://www.jianshu.com/p/63aafe3c12af 
此處延伸:進程的優先級是什麼(下面這篇文章,都有說) 
https://segmentfault.com/a/1190000006251859

9.進程間通信的方式 
(1)AIDL,(2)廣播,(3)Messenger 
AIDL : https://www.jianshu.com/p/a8e43ad5d7d2 
https://www.jianshu.com/p/0cca211df63c 
Messenger : http://blog.csdn.net/lmj623565791/article/details/47017485 
此處延伸:簡述Binder , http://blog.csdn.net/luoshengyang/article/details/6618363/

10.加載大圖 
http://blog.csdn.net/lmj623565791/article/details/49300989

11.三級緩存(各大圖片框架都可以扯到這上面來) 
(1)內存緩存,(2)本地緩存,(3)網絡 
內存:http://blog.csdn.net/guolin_blog/article/details/9526203 
本地:http://blog.csdn.net/guolin_blog/article/details/28863651

12.MVP框架(必問) 
http://blog.csdn.net/lmj623565791/article/details/46596109 
此處延伸:手寫mvp例子,與mvc之間的區別,mvp的優勢

13.講解一下Context 
http://blog.csdn.net/lmj623565791/article/details/40481055

14.JNI 
http://www.jianshu.com/p/aba734d5b5cd 
此處延伸:項目中使用JNI的地方,如:核心邏輯,密鑰,加密邏輯

15.java虛擬機和Dalvik虛擬機的區別 
http://www.jianshu.com/p/923aebd31b65

16.線程sleep和wait有什麼區別 
http://blog.csdn.net/liuzhenwen/article/details/4202967

17.View,ViewGroup事件分發 
http://blog.csdn.net/guolin_blog/article/details/9097463 
http://blog.csdn.net/guolin_blog/article/details/9153747

18.保存Activity狀態 
onSaveInstanceState() 
http://blog.csdn.net/yuzhiboyi/article/details/7677026

19.WebView與js交互(調用哪些API) 
http://blog.csdn.net/cappuccinolau/article/details/8262821/

20.內存泄露檢測,內存性能優化 
http://blog.csdn.net/guolin_blog/article/details/42238627 
這篇文章有四篇,很詳細。 
此處延伸: 
(1)內存溢出(OOM)和內存泄露(對象無法被回收)的區別。 
(2)引起內存泄露的原因

21.佈局優化 

https://blog.csdn.net/wang_k516/article/details/89509187

http://blog.csdn.net/guolin_blog/article/details/43376527

22.自定義view和動畫 
以下兩個講解都講得很透徹,這部分面試官多數不會問很深,要麼就給你一個效果讓你講原理。 
(1)http://www.gcssloop.com/customview/CustomViewIndex 
(2)http://blog.csdn.net/yanbober/article/details/50577855

23.設計模式(單例,工廠,觀察者。作用,使用場景) 
一般說自己會的就ok,不要只記得名字就一輪嘴說出來,不然有你好受。 
http://blog.csdn.net/jason0539/article/details/23297037/ 
此處延伸:Double Check的寫法被要求寫出來。

24.String,Stringbuffer,Stringbuilder 區別 
http://blog.csdn.net/kingzone_2008/article/details/9220691

25.開源框架,爲什麼使用,與別的有什麼區別 
這個問題基本必問。在自己簡歷上寫什麼框架,他就會問什麼。 
如:Volley,面試官會問我Volley的實現原理,與okhttp和retrofit的區別。 
開源框架很多,我就選幾個多數公司都會用的出來(框架都是針對業務和性能,所以不一定出名的框架就有人用) 
網絡請求:Volley,okhttp,retrofit 
異步:RxJava,AsyncTask 
圖片處理:Picasso,Glide 
消息傳遞:EventBus 
以上框架請自行查找,太多了就不貼出來了。

26.RecyclerView 
http://blog.csdn.net/lmj623565791/article/details/45059587
 

博主總結很好,純屬自己使用方便,爲了方便,在此記錄

原文鏈接:http://blog.csdn.net/huangqili1314/article/details/72792682

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章