你們好,在跟你們講述本身的面試經歷,以及遇到的面試題前,先說說幾句題外話。java
接觸Android已經3年,在工做中遇到疑難問題老是在網上(csdn大牛博客,stackoverflow等)搜索答案,各位大牛大神老是把本身的經驗分享出來,幫助咱們這些須要幫助的人,由此表示衷心感謝!然而如今本身細想了一下,本身也是時候把遇到的問題並把解決方案分享出來,但願能幫助到有須要的人。面試
隨着時間的流逝,不少人說互聯網這一塊已經愈來愈很差幹了,由於燒錢時代已通過去,剩下的都是根基牢固的大公司,獨角獸已經不復存在。這就直接致使了互聯網崗位的降低,本人親測,也的確如此。算法
2017.05月,本人離職(此時3年工做經驗,深圳就任),開始試水安卓市場,尋求一份合適本身,穩定的中大型公司。投了不少公司,面試機會並非我想象中的那麼多,即時面試過程順利,也沒有得到offer(候選人太多太多)。不過藉此機會,前先後後我面了10家公司,如今就把我遇到的面試題,而且提供一些面試技巧給各位即將面試的同志們。設計模式
OK,進入主題,請看Android知識圖譜。緩存
PS.由於文字限制,想要這26條面試答案或者更多相關資料的,請評論或者私信關注我!安全
面試,無非都是問上面這些問題(挺多的 - -!),聘請中高級的安卓開發會往深的去問,而且會問一延伸二。如下我先提出幾點重點,是面試官基本必問的問題,請必定要去了解! 基礎知識 – 四大組件(生命週期,使用場景,如何啓動) 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大會 急急忙忙投簡歷,趕面試,還不如沉澱一兩天時間,再過一遍以上內容。想穩妥拿到一個offer,最好能理解實現原理,而且知道使用場景了。不要去背!要去理解!面試官聽了一天這些內容是很厭倦的,最好能說出一些本身的看法。 面試題(固定答案不解答,本身能夠找到)性能優化
順序是根據記憶排的,沒有優先級之分,都是重點。網絡
1.Activity的啓動過程(不要回答生命週期)數據結構
2.Activity的啓動模式以及使用場景mvc
(1)manifest設置,(2)startActivity flag 【此處延伸:棧(First In Last Out)與隊列(First In First Out)的區別】
3.Service的兩種啓動方式
(1)startService(),(2)bindService()
4.Broadcast註冊方式與區別
(1)靜態註冊(minifest),(2)動態註冊【此處延伸:什麼狀況下用動態註冊
5.HttpClient與HttpUrlConnection的區別 【此處延伸:Volley裏用的哪一種請求方式(2.3前HttpClient,2.3後HttpUrlConnection)
】
6.http與https的區別 【此處延伸:https的實現原理】
7.手寫算法(選擇冒泡必需要會)
8.進程保活(不死進程)【此處延伸:進程的優先級是什麼
】
9.進程間通訊的方式
(1)AIDL,(2)廣播,(3)Messenger
10.加載大圖
11.三級緩存(各大圖片框架均可以扯到這上面來)
(1)內存緩存,(2)本地緩存,(3)網絡
12.MVP框架(必問)【此處延伸:項目中使用JNI的地方,如:核心邏輯,密鑰,加密邏輯】
13.講解一下Context
14.JNI 【此處延伸:項目中使用JNI的地方,如:核心邏輯,密鑰,加密邏輯】
15.java虛擬機和Dalvik虛擬機的區別
16.線程sleep和wait有什麼區別
17.View,ViewGroup事件分發
18.保存Activity狀態
onSaveInstanceState()
19.WebView與js交互(調用哪些API)
20.內存泄露檢測,內存性能優化 【此處延伸:
(1)內存溢出(OOM)和內存泄露(對象沒法被回收)的區別。
(2)引發內存泄露的緣由
21.佈局優化
22.自定義view和動畫
23.設計模式(單例,工廠,觀察者。做用,使用場景)
通常說本身會的就ok,不要只記得名字就一輪嘴說出來,否則有你好受【此處延伸:Double Check的寫法被要求寫出來。】
24.String,Stringbuffer,Stringbuilder 區別
25.開源框架,爲何使用,與別的有什麼區別
這個問題基本必問。在本身簡歷上寫什麼框架,他就會問什麼。
如:Volley,面試官會問我Volley的實現原理,與okhttp和retrofit的區別。
開源框架不少,我就選幾個多數公司都會用的出來(框架都是針對業務和性能,因此不必定出名的框架就有人用)
網絡請求:Volley,okhttp,retrofit
異步:RxJava,AsyncTask
圖片處理:Picasso,Glide
消息傳遞:EventBus
以上框架請自行查找,太多了就不貼出來了。
26.RecyclerView
結語
面試官面什麼,徹底是看他們我的的(性格,心情,天氣,你的面相)。以上只是一些我以爲重要的點,固然還有不少深層的東西不是一時半日能夠補上來的,仍是要看本身平時的經驗積累。面試不僅僅是技術面,還有高層面,人事面,這些都要看我的發揮了。
PS:若是面試官說,還有什麼想問的,千萬不要給本身挖坑,說今天本身表現怎樣,能不能被錄取。要往公司的團隊,氛圍去問,儘可能表現的對公司有興趣。
如:我想知道公司是否認期有開技術會議,老員工是否會分享本身的一些經驗等這些問題。
生活不易,若是有面試官(你未來有一天也會面試別人)看到這篇文章,請放下架子或者偏見,尊重每一位面試者。
最後,我列出如下面試須要注意的幾個點。
面帶微笑,有禮貌,謙遜
穿的體面一點,穿拖鞋的gg了8成
必定要帶簡歷和筆
來了說謝謝,面完說謝謝
要學會看面試官的表情,若是答的很差不要繼續往下說
不要吹的本身之前作過的項目有多牛b,也不要自吹
答題要冷靜,不要一輪嘴說一堆,面試官很煩的
接下來會寫幾篇針對BAT等大廠的面試題錦集,很快就出爐拉,已經在整理。喜歡的同窗請點個贊哈!
最後祝你們面試順利,早日找到本身心儀的公司。
PS.由於文字限制,想要這26條面試答案或者更多相關資料的,請評論或者私信關注我!