9012年馬上結束了,安卓程序員們,還不準備跳槽留着過年麼?

1.四大組件有哪些,說出你對他們在Android系統中的作用和理解。
2.Activity生命週期,A啓動B兩個頁面生命週期怎麼運行的,爲什麼會 這樣,生命週期爲什麼這麼設計,你有了解過嗎。
3.四種啓動模式,內部堆棧是怎麼回事,你工作中怎麼使用的。
4.Activity的啓動過程,這個我強烈建議每個Android開發人員都要清楚的知道,並且跟一下源碼,幾個核心類的作用。你會對Android有一個更好的認識。
5.事件分發流程,怎麼處理滑動衝突。舉例:長按ListView的一個Item它變灰了。這個時候在滑動。item恢復原來的樣子,這個時候他們內部的事件傳遞是什麼樣子。有很多種問法,所以你一定要搞清楚。
6.自定義View,View的繪製流程。onMeasure,onLayout,onDraw都是什麼作用。ViewGroup是怎麼分發繪製的。onDraw裏面怎麼去做繪製,Canvas,Path,Paint你都需要了解。並且配合ValueAnimtor或者Scroller去實現動畫。有時候面試的會突發奇想問你ViewGroup是樹形結構,我想知道樹的深度,你怎麼計算,突然就變成了一個數據結構和算法的題。
7.Bitmap和Drawable
8.Animation和Animator
9.LinearLayout、RelativeLayout、FrameLayout三種常用佈局的特性,他在佈局的時候是怎麼計算的。效率如何。CoordinatorLayout配合AppbarLayout的使用,以及自定義Behavior。ConstraintLayout的使用。用來減少層級。
10.Handler消息機制,推薦看一下Looper的源碼
11.進程間通信,Binder機制
12.AsyncTask源碼看一下。
13.圖片的壓縮處理,三級緩存,Lru算法
14.分辨率和屏幕密度,以及計算一個圖片大小。mdpi,hdpi的關係和比例。
15.優化,內存優化,佈局優化,啓動優化,性能優化。內存泄露,內存溢出。怎麼優化,用了什麼工具,具體怎麼做的。
16.listView和RecycleView對比,以及緩存策略。
17.JNI(很少問)
18.MVC,MVP,MVVM
19.開源框架Okhttp,Glide,EventBus,Rxjava等,以及JetPack下的開源庫,要會用,還說說出一些東西,推薦 Retrofit,Okhttp,Glide,EventBus這些看一下源碼。
20.RecyclerView四大塊,能實現什麼效果,大致怎麼實現的,心裏要有數
21.DecorView,Window,WindowManager,PhoneWindow關係,以及個子的職責。
加分項:Kotlin,Gradle,Flutter,組件化,插件化,熱修復。

Android相關總結
上面的列的相關內容,看似很短一句話,但是每一項都需要你深入的去研究,要了解原理,最好去看一下源碼實現。當然還有一些是我沒寫到的,可能是我寫的時候沒有想起來,並不代表他們不重要,你也需要重視,再來一波推薦:
《Android開發藝術探索》強烈推薦,建議細細的讀,如果粗心大意建議讀兩到三遍,針對性的讀。
《Android進階之光》
《高級Android開發強化實戰》
《Android組件化架構》
《Android熱修復技術原理》
《Android插件化開發指南》

網絡框架有哪些?他們之間的區別是什麼?(這個也會問到)
Xutils

這個框架非常全面,可以進行網絡請求,可以進行圖片加載處理,可以數據儲存,還可以對view進行註解,使用這個框架非常方便,但是缺點也是非常明顯的,使用這個項目,會導致項目對這個框架依賴非常的嚴重,一旦這個框架出現問題,那麼對項目來說影響非常大的

OKhttp

Android開發中是可以直接使用現成的api進行網絡請求的。就是使用HttpClient,HttpUrlConnection進行操作。okhttp針對Java和Android程序,封裝的一個高性能的http請求庫,支持同步,異步,而且okhttp又封裝了線程池,封裝了數據轉換,封裝了參數的使用,錯誤處理等。API使用起來更加的方便。但是我們在項目中使用的時候仍然需要自己在做一層封裝,這樣才能使用的更加的順手。

Volley

Volley是Google官方出的一套小而巧的異步請求庫,該框架封裝的擴展性很強,支持HttpClient、HttpUrlConnection, 甚至支持OkHttp,而且Volley裏面也封裝了ImageLoader,所以如果你願意你甚至不需要使用圖片加載框架,不過這塊功能沒有一些專門的圖片加載框架強大,對於簡單的需求可以使用,稍複雜點的需求還是需要用到專門的圖片加載框架。Volley也有缺陷,比如不支持post大數據,所以不適合上傳文件。不過Volley設計的初衷本身也就是爲頻繁的、數據量小的網絡請求而生。

Retrofit

Retrofit是Square公司出品的默認基於OkHttp封裝的一套RESTful網絡請求框架,RESTful是目前流行的一套api設計的風格, 並不是標準。Retrofit的封裝可以說是很強大,裏面涉及到一堆的設計模式,可以通過註解直接配置請求,可以使用不同的http客戶端,雖然默認是用http ,可以使用不同Json Converter 來序列化數據,同時提供對RxJava的支持,使用Retrofit + OkHttp + RxJava + Dagger2 可以說是目前比較潮的一套框架,但是需要有比較高的門檻。

Volley VS OkHttp

Volley的優勢在於封裝的更好,而使用OkHttp你需要有足夠的能力再進行一次封裝。而OkHttp的優勢在於性能更高,因爲 OkHttp基於NIO和Okio ,所以性能上要比 Volley更快。IO 和 NIO這兩個都是Java中的概念,如果我從硬盤讀取數據,第一種方式就是程序一直等,數據讀完後才能繼續操作這種是最簡單的也叫阻塞式IO,還有一種是你讀你的,程序接着往下執行,等數據處理完你再來通知我,然後再處理回調。而第二種就是 NIO 的方式,非阻塞式, 所以NIO當然要比IO的性能要好了,而 Okio是 Square 公司基於IO和NIO基礎上做的一個更簡單、高效處理數據流的一個庫。理論上如果Volley和OkHttp對比的話,更傾向於使用 Volley,因爲Volley內部同樣支持使用OkHttp,這點OkHttp的性能優勢就沒了, 而且 Volley 本身封裝的也更易用,擴展性更好些。

OkHttp VS Retrofit

毫無疑問,Retrofit 默認是基於 OkHttp 而做的封裝,這點來說沒有可比性,肯定首選 Retrofit。

Volley VS Retrofit

這兩個庫都做了不錯的封裝,但Retrofit解耦的更徹底,尤其Retrofit2.0出來,Jake對之前1.0設計不合理的地方做了大量重構, 職責更細分,而且Retrofit默認使用OkHttp,性能上也要比Volley佔優勢,再有如果你的項目如果採用了RxJava ,那更該使用 Retrofit 。所以這兩個庫相比,Retrofit更有優勢,在能掌握兩個框架的前提下該優先使用 Retrofit。但是Retrofit門檻要比Volley稍高些,要理解他的原理,各種用法,想徹底搞明白還是需要花些功夫的,如果你對它一知半解,那還是建議在商業項目使用Volley吧。

熟悉哪些設計模式?

按照自己的實際情況回答,當然是越多越好。比如我自己也就熟悉個單例模式。

三級緩存(這個偶爾會問)

網絡加載,不優先加載,速度慢,浪費流量
本地緩存,次優先加載,速度快
內存緩存,優先加載,速度最快
首次加載Android App時,肯定要通過網絡交互來獲取圖片,之後我們可以將圖片保存至本地SD卡和內存中,之後運行APP時,優先訪問內存中的圖片緩存,若內存中沒有,則加載本地SD卡中圖片,最後選擇訪問網絡
Android與服務器交互的方式中的對稱加密和非對稱加密是什麼?
對稱加密,就是加密和解密數據都是使用同一個key,這方面的算法有DES。
非對稱加密,加密和解密是使用不同的key。發送數據之前要先和服務端約定生成公鑰和私鑰,使用公鑰加密的數據可以用私鑰解密,反之。這方面的算法有RSA。ssh 和 ssl都是典型的非對稱加密。
面試心得
1.準備要充分,知識面要儘量的廣,同時深度也要夠。
2.面試安排上,如果不着急,儘量給自己留多時間,兩天一家,及時做總結和補充。
3.心態要放平,當做一次技術交流,面試要看一部分的運氣,也要看一些眼緣,有的面試官一張嘴你就能感覺到你這次面試完了。想去的公司沒有面試好,不要氣餒,繼續加油準備。
4.簡歷投遞方面,拉勾上投了很多經常不匹配,可能是我學歷問題(自考本),有一些打擊自信心,如果有同樣感受的,不妨換BOSS或者其他平臺。避免打擊自信心。
5.寫簡歷一定要體現自己的優勢,最好能體現類似於,用到了什麼技術,解決了什麼問題。簡歷上寫到的一定要胸有成竹。
6.類似於你的優勢是什麼,你覺得你項目中做的比較好的地方有哪些,你能給公司帶來什麼,這種問題心裏要先想一些,免得臨場發揮容易緊張說不好。
7.我所經歷的面試,一般技術面最少是兩輪。如果一輪後讓你走了,而你還自我感覺良好,那我覺得你有必要回顧一下面試內容,並一條一條找找該問題的相關內容,大部分問題就在於你沒有答到點子上,可能是深度不夠,也可能是擴展不夠。繼續加油。

最後閒聊幾句
現在外面面試問的的確比較多,要求也挺高的,行情不好,薪資也不好要,所以心態一定要放好,找好自己的定位,心態一定要好。

面試之後要儘量做到總結,從我最開始沒什麼準備就出去面試,被打擊一通之後,總結了七八家面試題,會發新面試問到的都是那些知識點,可能角度不一樣,但是你只要深度夠,他怎麼問,你基於原理來回答,基本上都沒差,從簽了賠償協議以後出來面試,連續四家公司都走到了HR面,可以說面試的感覺上來了。前面的總結積累終究沒有白費。

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