Android知識圖譜。
面試,無非都是問上面這些問題(挺多的 - -!),聘請中高級的安卓開發(fā)會往深的去問,并且會問一延伸二。以下我先提出幾點重點,是面試官基本必問的問題,請一定要去了解!
基礎(chǔ)知識 – 四大組件(生命周期,使用場景,如何啟動)
java基礎(chǔ) – 數(shù)據(jù)結(jié)構(gòu),線程,mvc框架
通信 – 網(wǎng)絡(luò)連接(HttpClient,HttpUrlConnetion),Socket
數(shù)據(jù)持久化 – SQLite,SharedPreferences,ContentProvider
性能優(yōu)化 – 布局優(yōu)化,內(nèi)存優(yōu)化,電量優(yōu)化
安全 – 數(shù)據(jù)加密,代碼混淆,WebView/Js調(diào)用,https
UI– 動畫
其他 – JNI,AIDL,Handler,Intent等
開源框架 – Volley,Gilde,RxJava等(簡歷上寫你會的,用過的)
拓展 – Android6.0/7.0/8.0特性,kotlin語言,I/O大會
急急忙忙投簡歷,趕面試,還不如沉淀一兩天時間,再過一遍以上內(nèi)容。想穩(wěn)妥拿到一個offer,最好能理解實現(xiàn)原理,并且知道使用場景了。不要去背!要去理解!面試官聽了一天這些內(nèi)容是很厭倦的,最好能說出一些自己的見解。
面試題(固定答案不解答,自己可以找到)
順序是根據(jù)記憶排的,沒有優(yōu)先級之分,都是重點。
1.Activity的啟動過程(不要回答生命周期)
http://blog.csdn.net/luoshengyang/article/details/6689748
2.Activity的啟動模式以及使用場景
(1)manifest設(shè)置,(2)startActivity flag
http://blog.csdn.net/CodeEmperor/article/details/50481726
此處延伸:棧(First In Last Out)與隊列(First In First Out)的區(qū)別
3.Service的兩種啟動方式
(1)startService(),(2)bindService()
http://www.itdecent.cn/p/2fb6eb14fdec
4.Broadcast注冊方式與區(qū)別
(1)靜態(tài)注冊(minifest),(2)動態(tài)注冊
http://www.itdecent.cn/p/ea5e233d9f43
此處延伸:什么情況下用動態(tài)注冊
5.HttpClient與HttpUrlConnection的區(qū)別
http://blog.csdn.net/guolin_blog/article/details/12452307
此處延伸:Volley里用的哪種請求方式(2.3前HttpClient,2.3后HttpUrlConnection)
6.http與https的區(qū)別
http://blog.csdn.net/whatday/article/details/38147103
此處延伸:https的實現(xiàn)原理
7.http與https的區(qū)別
http://blog.csdn.net/whatday/article/details/38147103
此處延伸:https的實現(xiàn)原理
8.手寫算法(選擇冒泡必須要會)
http://www.itdecent.cn/p/ae97c3ceea8d
9.進(jìn)程保活(不死進(jìn)程)
http://www.itdecent.cn/p/63aafe3c12af
此處延伸:進(jìn)程的優(yōu)先級是什么(下面這篇文章,都有說)
https://segmentfault.com/a/1190000006251859
10.進(jìn)程間通信的方式
(1)AIDL,(2)廣播,(3)Messenger
AIDL : http://www.itdecent.cn/p/ae97c3ceea8d
Messenger : http://blog.csdn.net/lmj623565791/article/details/47017485
此處延伸:簡述Binder , http://blog.csdn.net/luoshengyang/article/details/6618363/
11.加載大圖
PS:有家小公司(規(guī)模寫假的,給騙過去了),直接把項目給我看,讓我說實現(xiàn)原理。。
最讓我無語的一次面試,就一個點問的我底褲都快穿了,就差幫他們寫代碼了。。
http://blog.csdn.net/lmj623565791/article/details/49300989
12.三級緩存(各大圖片框架都可以扯到這上面來)
(1)內(nèi)存緩存,(2)本地緩存,(3)網(wǎng)絡(luò)
內(nèi)存:http://blog.csdn.net/guolin_blog/article/details/9526203
本地:http://blog.csdn.net/guolin_blog/article/details/28863651
13.MVP框架(必問)
http://blog.csdn.net/lmj623565791/article/details/46596109
此處延伸:手寫mvp例子,與mvc之間的區(qū)別,mvp的優(yōu)勢
14.講解一下Context
http://blog.csdn.net/lmj623565791/article/details/40481055
15.JNI
http://www.itdecent.cn/p/aba734d5b5cd
此處延伸:項目中使用JNI的地方,如:核心邏輯,密鑰,加密邏輯
16.java虛擬機(jī)和Dalvik虛擬機(jī)的區(qū)別
http://www.itdecent.cn/p/923aebd31b65
17.線程sleep和wait有什么區(qū)別
http://blog.csdn.net/liuzhenwen/article/details/4202967
18.View,ViewGroup事件分發(fā)
http://blog.csdn.net/guolin_blog/article/details/9097463
http://blog.csdn.net/guolin_blog/article/details/9153747
19.保存Activity狀態(tài)
onSaveInstanceState()
http://blog.csdn.net/yuzhiboyi/article/details/7677026
20.WebView與js交互(調(diào)用哪些API)
http://blog.csdn.net/cappuccinolau/article/details/8262821/
21.內(nèi)存泄露檢測,內(nèi)存性能優(yōu)化
http://blog.csdn.net/guolin_blog/article/details/42238627
這篇文章有四篇,很詳細(xì)。
此處延伸:
(1)內(nèi)存溢出(OOM)和內(nèi)存泄露(對象無法被回收)的區(qū)別。
(2)引起內(nèi)存泄露的原因
22.布局優(yōu)化
http://blog.csdn.net/guolin_blog/article/details/43376527
23.自定義view和動畫
以下兩個講解都講得很透徹,這部分面試官多數(shù)不會問很深,要么就給你一個效果讓你講原理。
(1)http://www.gcssloop.com/customview/CustomViewIndex
(2)http://blog.csdn.net/yanbober/article/details/50577855
24.設(shè)計模式(單例,工廠,觀察者。作用,使用場景)
一般說自己會的就ok,不要只記得名字就一輪嘴說出來,不然有你好受。
http://blog.csdn.net/jason0539/article/details/23297037/
此處延伸:Double Check的寫法被要求寫出來。
25.String,Stringbuffer,Stringbuilder 區(qū)別
http://blog.csdn.net/kingzone_2008/article/details/9220691
26.開源框架,為什么使用,與別的有什么區(qū)別
這個問題基本必問。在自己簡歷上寫什么框架,他就會問什么。
如:Volley,面試官會問我Volley的實現(xiàn)原理,與okhttp和retrofit的區(qū)別。
開源框架很多,我就選幾個多數(shù)公司都會用的出來(框架都是針對業(yè)務(wù)和性能,所以不一定出名的框架就有人用)
網(wǎng)絡(luò)請求:Volley,okhttp,retrofit
異步:RxJava,AsyncTask
圖片處理:Picasso,Glide
消息傳遞:EventBus
以上框架請自行查找,太多了就不貼出來了。
27.RecyclerView
這個挺搞笑的。有另外一個同事也在找工作,面試官嫌他沒用過RecyclerView直接pass掉。
http://blog.csdn.net/lmj623565791/article/details/45059587
原文:KafkaG
地址:http://blog.csdn.net/huangqili1314/article/details/72792682
首發(fā):開發(fā)者技術(shù)前線