個(gè)人簡(jiǎn)介學(xué)渣一枚,2017年6月某空港學(xué)校畢業(yè)。從事Android開發(fā)已經(jīng)4年,開發(fā)過機(jī)頂盒應(yīng)用,做過手機(jī)app,21年年后入職新單位從事車載應(yīng)用開發(fā)。工作經(jīng)歷因?yàn)樾鹿救肼毑痪椭饕f說前面的工作情況。煎熬&沒有太多的成長(zhǎng)(第一家公司)處于

個(gè)人簡(jiǎn)介
學(xué)渣一枚,2017年6月某空港學(xué)校畢業(yè)。從事Android開發(fā)已經(jīng)4年,開發(fā)過機(jī)頂盒應(yīng)用,做過手機(jī)app,21年年后入職新單位從事車載應(yīng)用開發(fā)。
工作經(jīng)歷
因?yàn)樾鹿救肼毑痪椭饕f說前面的工作情況。
煎熬&沒有太多的成長(zhǎng)(第一家公司)
處于這個(gè)狀態(tài)并不是因?yàn)楣静缓?,相反是自己表現(xiàn)的不好。在公司時(shí),公司有完善的培訓(xùn)機(jī)制(還可以選擇其它方向的一些培訓(xùn),由其它部門的資深開發(fā)人員進(jìn)行授課),入職時(shí)有對(duì)應(yīng)的導(dǎo)師進(jìn)行培訓(xùn)。更加幸福的是每個(gè)月老板都會(huì)買書給我們看。
既然在這么好的一個(gè)環(huán)境為什么我還是這樣難受呢?總結(jié)有下面的原因。
- 心思雜亂。python、js 、web 都想要學(xué)習(xí),最終的結(jié)果確是什么都沒有。
- 貪玩 下班之后很多空余時(shí)間都在玩游戲。
- 自身技術(shù)基礎(chǔ)不夠,卻又選擇了錯(cuò)誤的東西進(jìn)行學(xué)習(xí),導(dǎo)致主要工作上沒有做出太好的成績(jī)。最終的結(jié)果就是被公司拖著走。
茁壯成長(zhǎng)&發(fā)展
為甚么要在成長(zhǎng)前加上茁壯二字,因?yàn)橄鄬?duì)與第一家公司,個(gè)人的技術(shù)成長(zhǎng)要好太多。
2018年的時(shí)候有幸接觸到了時(shí)間管理,開始學(xué)著對(duì)自身狀態(tài)進(jìn)行調(diào)整。有計(jì)劃有目的的進(jìn)行學(xué)習(xí)。每天會(huì)提前一個(gè)小時(shí)到達(dá)公司進(jìn)行技術(shù)類書籍閱讀。兩年時(shí)間看完的技術(shù)書籍有:
- Android開發(fā)藝術(shù)探索
- 大話設(shè)計(jì)模式
- Android 源碼設(shè)計(jì)模式
- Android 進(jìn)階解密
隨著時(shí)間的進(jìn)行,自己也在項(xiàng)目小組由一個(gè)輔助的角色變成項(xiàng)目主力開發(fā),同時(shí)自己成長(zhǎng)到了中級(jí)開發(fā)水平,也會(huì)和初級(jí)的小伙伴進(jìn)行一些技術(shù)交流。
相比于第一家公司,這邊并沒有一些技術(shù)培訓(xùn)和導(dǎo)師指導(dǎo)。但是我的技術(shù)成長(zhǎng)卻相對(duì)較大。個(gè)人的理解是:內(nèi)在驅(qū)動(dòng)大于外在。
前景展望
從3月份開始進(jìn)行面試。前后面試大約有6家,通過幾家公司的面試也大致了解到了自身的價(jià)值(能拿多少錢)。其中最遺憾的是面試某筆記,前三輪技術(shù)面已經(jīng)過了,結(jié)果vp掛掉了。可能是自己表現(xiàn)太積極,因?yàn)榇_實(shí)很想去,甚至做好了如果能去愿意接收降薪的準(zhǔn)備。
相較于公司的其他小伙伴,我的面試過程還算比較順利。我認(rèn)為最好的我們不應(yīng)該為了面試而準(zhǔn)備,而在于平時(shí)就應(yīng)該注重積累自己的技術(shù)。
一些面試經(jīng)歷
公司一:
軟件面試官:
- 自我介紹、工作履歷簡(jiǎn)述。
- SVN 和 Git 區(qū)別?描述下 Git 提交過程以及什么是工作區(qū)和暫存區(qū)?
- Git 中 merge 作用?和 rebase 有什么區(qū)別?
- Java 中強(qiáng)引用、軟引用、弱引用、虛引用區(qū)別。
- Https 和 Http 區(qū)別,內(nèi)部使用哪兒些算法。
- 對(duì)稱加密和非對(duì)稱加密區(qū)別。
- Jetpack 實(shí)際項(xiàng)目中用過哪兒些?
- 簡(jiǎn)述 Apk 包大小優(yōu)化思路。
- Kotlin 拓展函數(shù)怎么實(shí)現(xiàn)的?基于什么原理。
- Kotlin 屬性委托怎么實(shí)現(xiàn)的?基于什么原理。
- 簡(jiǎn)述 SharePreferences 以及過程中遇到的問題。
- 為什么選擇 MMKV,MMKV 有什么優(yōu)勢(shì),內(nèi)部原理是什么?
- 簡(jiǎn)述 Handler 以及原理。泄漏怎么解決?
硬件面試官:
- Flutter 實(shí)際開發(fā)經(jīng)驗(yàn)有多久?使用/了解過 Flutter 混編嗎?
- 怎么優(yōu)化的 Flutter 包大小?
- Flutter 中 Element、Widget 簡(jiǎn)述。
- Android Compose 了解過嗎?簡(jiǎn)述一下。
- so 庫(kù)動(dòng)態(tài)加載有了解過嗎?
- 簡(jiǎn)述 MMKV 原理。
- SharePreferences 有什么缺陷?支持跨進(jìn)程嗎?
- 在不使用任何三方庫(kù),如何實(shí)現(xiàn)彈幕功能?如何保證低端機(jī)上流暢性。
- 自定義彈幕中,你 Model 怎么設(shè)計(jì)?View 又怎么設(shè)計(jì)?
- RecyclerView 和 ListView 有什么區(qū)別?
- RecyclerView 緩存原理。
- 在不使用任何三方庫(kù)以及系統(tǒng)提供控件,如何實(shí)現(xiàn) RecyclerView 下拉刷新?
- 直播是什么實(shí)現(xiàn)的?需要注意的有什么?使用過的視頻格式有什么?如何保證視頻以及文字/語音同步性?
- 開發(fā)過音頻相關(guān)嗎?用的是什么?音頻格式是什么?
- 微信小程序使用什么開發(fā)的?Vue 還是?
公司二:
- 工作多久了,你覺得你和其它 Android 工程師相比,有什么優(yōu)勢(shì)。
- 你的 GitHub 主要內(nèi)容是什么?
- 假如當(dāng)你帶小朋友,你是如何和他進(jìn)行分享以及幫助等?
- 你持續(xù)寫東西,輸出的動(dòng)力是什么?
- Kotlin 用多久了,你認(rèn)為你的 Kotlin 掌握水準(zhǔn)在哪兒?初級(jí)、中級(jí)、高級(jí)?
- var、val、let、apply 有什么區(qū)別?
- let 返回 it,apply 返回 this,它們有什么區(qū)別?為什么這么設(shè)計(jì)。
- lateinit 作用是什么?
- Kotlin 協(xié)程有用過嗎?用在什么場(chǎng)景?
- 協(xié)程是個(gè)什么東西?
- 有了解過協(xié)程如何切換線程原理嗎?
- Retrofit 和 OkHttp 是什么關(guān)系?
- Retrofit 是如何通過注解來方便我們 api 調(diào)用?基于什么原理。
- JetPack 用過哪兒些?
- ViewModel 用來做什么的?
- ViewModel 如何實(shí)現(xiàn)生命周期綁定?
- ViewModel 為什么存在?那我直接創(chuàng)建個(gè)類不可以嗎?如何實(shí)現(xiàn)數(shù)據(jù)綁定。
- ViewModel 如何實(shí)例,如何使用的?
- LiveData 如何實(shí)現(xiàn)的?
- LiveData postValue 和 setValue 賦值,這兩個(gè)會(huì)不會(huì)丟失數(shù)據(jù),有沒有遇到過?
- MVC、MVP、MVVM 區(qū)別是什么?
- Rxjava 用的多么?map 和 flatMap 有什么區(qū)別。
- RxJava 使用哪兒個(gè)操作符能保證順序執(zhí)行?
- 如果讓你自己設(shè)計(jì)一個(gè) Glide 你會(huì)如何設(shè)計(jì)?
- RGB_565 每個(gè)像素點(diǎn)占多少內(nèi)存?
- 為什么會(huì)使用 RGB_565?
- 為什么要對(duì)圖片進(jìn)行一些壓縮?那服務(wù)器直接給我們直接裁剪指定尺寸大小不就好了。
- 假設(shè)現(xiàn)在有一張 1MB 圖片,我直接設(shè)置給 ImageView,那么它在內(nèi)存中占用空間有多大?
- 性能優(yōu)化都做過哪兒些內(nèi)容?
- 瘦身的話,我們都是怎么做的呢?
- armeabi 和 armeabi-v7a 有什么區(qū)別?
- so 庫(kù)可不可以動(dòng)態(tài)加載,如何實(shí)現(xiàn)?
- Android 版本從 5.0 到 12 都更新了什么東西?
- Android 5.0 ART 是個(gè)什么東西,具有什么優(yōu)勢(shì)。
- 今天的面試,自我感覺怎么樣?
公司三:
- 請(qǐng)做一下自我介紹、學(xué)歷說明以及工作經(jīng)驗(yàn)。
- 公司團(tuán)隊(duì)多大,主要負(fù)責(zé)哪兒些內(nèi)容?公司是否有自營(yíng)項(xiàng)目?外包嗎?
- 為什么 Google Play 搜索不到,原因是什么?怎么處理的?現(xiàn)在是一個(gè)什么樣的狀態(tài)?
- 關(guān)于彈框隱私協(xié)議,工信部怎么規(guī)定的?
- Luban 壓縮具體在業(yè)務(wù)中做哪兒些操作?你知道它內(nèi)部使用了哪兒些算法嗎?
- 圖片使用 Glide,你為什么使用它,它有什么優(yōu)點(diǎn),內(nèi)部算法有什么?
- 請(qǐng)手寫 Glide 加載圖片地址到 ImageView,并且圖片展示效果為一個(gè)圓。
- ShapeableImageView 你知道原理是什么嗎?最低兼容版本你知道嗎?
- 假設(shè)后端接口列表中返回了超大圖片,你是如何處理優(yōu)化并正常顯示列表中的?
- 使用過 Jetpack 的哪兒些東西,你對(duì)它評(píng)價(jià)怎么說?
- Jetpack Compose 了解過么?簡(jiǎn)單談下個(gè)人理解。
- Kotlin 與 Java 區(qū)別在哪兒里?
- Android 原生 Apk 以及 Flutter Apk 大小優(yōu)化怎么做的?
- 怎么統(tǒng)計(jì)性能調(diào)優(yōu)數(shù)據(jù)?
- 項(xiàng)目中接觸過 WebView 相關(guān)嗎?這塊怎么處理的?
- SpannedString 原理是什么?都用過它做什么操作?
- TextView 中 setText(Html.fromHtml()) 內(nèi)部原理知道嗎?
- 簡(jiǎn)單描述 CoordinatorLayout 以及內(nèi)部事件如何分發(fā)?
- 圖片輪播怎么做的?如何做到我在最后一張無縫滑動(dòng)到第一張圖片?
- 你知道 Retrofit 是怎么發(fā)出的請(qǐng)求嗎?
- 你的 Android 借殼分享微信中 mmessage_content 怎么算出來的?
- 項(xiàng)目中 Flutter 中是原生開發(fā)還是混合開發(fā)?使用了哪兒些框架?
- 假設(shè)地圖現(xiàn)在沒有開源庫(kù),你怎么在 Flutter 實(shí)現(xiàn)地圖效果?如果我想當(dāng)前頁面上面是地圖下面是其他內(nèi)容呢?
公司四:
- 自我介紹以及學(xué)歷簡(jiǎn)述。
- HashMap 內(nèi)部存儲(chǔ)是怎樣的?
- hash 沖突是個(gè)什么概念?沖突之后怎么解決?
- 哈希桶是什么結(jié)構(gòu)?
- 鏈表結(jié)構(gòu)節(jié)點(diǎn)是怎樣的?
- Java 中的 volatile 是線程安全的嗎?如果對(duì)他做自增操作,例如 a++。
- Handle 中的 postDelay 實(shí)現(xiàn)原理是怎樣的,它是怎么實(shí)現(xiàn)的延遲處理?
- 優(yōu)化線上 Apk 大小都了什么操作?做完 Apk 大小之后從多少降低到多少?
- 下載轉(zhuǎn)換率怎么統(tǒng)計(jì)的?
- 假設(shè)現(xiàn)在給你個(gè)需求,需要在打包的過程中去處理圖片,你有什么思路?在哪兒個(gè) task 去做 hook?
- 資源編譯的流程是什么樣的?
- 360 加固原因是什么?
- 你覺得加固或者安全方面,應(yīng)該從哪兒個(gè)方面入手?Dex 層怎么處理能防止反編譯?
- so 加固你知道有什么方案嗎?
- 你比較擅長(zhǎng)什么?設(shè)計(jì)或者某個(gè)技術(shù)有比較深的了解?
- 責(zé)任鏈模式簡(jiǎn)述,一般用于什么場(chǎng)景下。
- 你怎么理解的依賴倒置設(shè)計(jì),具體在什么場(chǎng)景下使用?
未來要做的事
- 學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu) 678月刷完leetcode 最熱100題
- 源碼閱讀總結(jié)
- 藍(lán)牙應(yīng)用層的運(yùn)行原理(6月已完成)
- 系統(tǒng)binder機(jī)制
- 系統(tǒng)Anr原理
- 其它的一些框架源碼閱讀
工作上的小建議
- 如果你初入職場(chǎng),在專業(yè)知識(shí)不是太牢固的情況下建議不要花過多得時(shí)間研究其它的一些東西,而是專注于提升自己的專業(yè)技能
- 關(guān)于職場(chǎng)技能的學(xué)習(xí),我們要記住,我們的學(xué)習(xí)都是有目的,學(xué)過之后一定要總結(jié)歸納。不要反復(fù)的重頭在來。
- 關(guān)于工作的選擇,我的理解是合適最好。就好比將一個(gè)成績(jī)極差的學(xué)生放在及其優(yōu)秀的班級(jí),他往往是跟不上老師的節(jié)奏的。需要下來花大量的時(shí)間來補(bǔ),而成年人往往缺少這樣的時(shí)間。
- 關(guān)于數(shù)據(jù)結(jié)構(gòu)和設(shè)計(jì)模式,許多多年開發(fā)的小伙伴居然也有說不重要。舉個(gè)簡(jiǎn)單的例子,gradle項(xiàng)目之間怎么判斷循環(huán)依賴的呢?學(xué)習(xí)了圖的知識(shí),了解拓?fù)渑判颉D銜?huì)知道至少這個(gè)是判斷循環(huán)依賴的的一種方式。不了解他們很多時(shí)候只能停留在api調(diào)用。而了解數(shù)據(jù)結(jié)構(gòu)你才有編寫一些深層次東西的可能。
- 最后一點(diǎn),靜下心來,做自己想做的事,每一個(gè)目標(biāo)都需要一點(diǎn)一滴的努力。
感謝你看到這里,如果你覺得文章還不錯(cuò),或者對(duì)你小有啟發(fā)。歡迎點(diǎn)贊轉(zhuǎn)發(fā)。
以上就是一枚普通的Android開發(fā)者的4年。
希望能夠有機(jī)會(huì)入大廠上岸。
面試大廠需要準(zhǔn)備的一些技能
面對(duì)這么多的公司,每個(gè)公司的考察重點(diǎn)都不一樣,我們?cè)诿嬖囈欢ㄒ龊贸浞譁?zhǔn)備,只有充分地準(zhǔn)備好了面試,才可以更有自信地吊打面試官。
Android面試會(huì)涉及到很多雜而亂的知識(shí)點(diǎn),所以想要進(jìn)入大廠,你不僅需要有十分扎實(shí)的基本功,還需要有完整的解答邏輯!
這份錦囊里還包含了百度、阿里、騰訊、京東等眾多大廠的Android面試真題,詳細(xì)介紹了各企業(yè)的面試重點(diǎn)、解決方案,幫助大家做好面試準(zhǔn)備,斬獲大廠高薪 offer!
通過這份錦囊,你能收獲:
- 了解大廠的面試考核標(biāo)準(zhǔn),有的放矢地準(zhǔn)備面試;
- 掌握一手最新Android面試真題,有針對(duì)性地刷題;
- 為自己心儀的公司提前做好準(zhǔn)備,面試更有信心。
多余的話就不講了,接下來將分享面試的一個(gè)復(fù)習(xí)路線,如果你也在準(zhǔn)備面試但是不知道怎么高效復(fù)習(xí),可以參考一下我的復(fù)習(xí)路線,有任何問題也歡迎一起互相交流,加油吧!
Android學(xué)習(xí)路線圖
首先,對(duì)于沒有學(xué)習(xí)方向,知識(shí)不體系的人,我把我工作幾年整理的學(xué)習(xí)路線分享給大家,做一個(gè)借鑒作用,還不知道怎么學(xué)習(xí)的人可以直接照著我這個(gè)學(xué)習(xí)路線一個(gè)個(gè)的去學(xué)習(xí),知識(shí)不體系的人可以參考下我整理路線的方式,總之希望能夠幫到你們!
模塊化學(xué)習(xí)資源
接下來是每個(gè)模塊我整理出來的文檔學(xué)習(xí)資料,幫助大家更細(xì)致化的學(xué)習(xí)。
《Android匯總復(fù)習(xí)資料—Java》
《Android匯總復(fù)習(xí)資料—Android》
《Android匯總復(fù)習(xí)資料—Android擴(kuò)展》
《Android匯總復(fù)習(xí)資料—Kotlin》
《Android匯總復(fù)習(xí)資料—Flutter》
《Android匯總復(fù)習(xí)資料—算法》
除了上面的學(xué)習(xí)路線,還可以額外的配合以下方式學(xué)習(xí),效果翻倍~
①看視頻進(jìn)行系統(tǒng)學(xué)習(xí)
前幾年的Crud經(jīng)歷,讓我明白自己真的算是菜雞中的戰(zhàn)斗機(jī),也正因?yàn)镃rud,導(dǎo)致自己技術(shù)比較零散,也不夠深入不夠系統(tǒng),所以重新進(jìn)行學(xué)習(xí)是很有必要的。我差的是系統(tǒng)知識(shí),差的結(jié)構(gòu)框架和思路,所以通過視頻來學(xué)習(xí),效果更好,也更全面。關(guān)于視頻學(xué)習(xí),個(gè)人可以推薦去B站進(jìn)行學(xué)習(xí),B站上有很多學(xué)習(xí)視頻,唯一的缺點(diǎn)就是免費(fèi)的容易過時(shí)。
另外,我自己也珍藏了好幾套視頻,有需要的我也可以分享給你。
②讀源碼,看實(shí)戰(zhàn)筆記,學(xué)習(xí)大神思路
“編程語言是程序員的表達(dá)的方式,而架構(gòu)是程序員對(duì)世界的認(rèn)知”。所以,程序員要想快速認(rèn)知并學(xué)習(xí)架構(gòu),讀源碼是必不可少的。閱讀源碼,是解決問題 + 理解事物,更重要的:看到源碼背后的想法;程序員說:讀萬行源碼,行萬種實(shí)踐。
主要內(nèi)含微信 MMKV 源碼、AsyncTask 源碼、Volley 源碼、Retrofit源碼、OkHttp 源碼等等。
③面試前夕,刷題沖刺
面試的前一周時(shí)間內(nèi),就可以開始刷題沖刺了。請(qǐng)記住,刷題的時(shí)候,技術(shù)的優(yōu)先,算法的看些基本的,比如排序等即可,而智力題,除非是校招,否則一般不怎么會(huì)問。
關(guān)于面試刷題,我個(gè)人也準(zhǔn)備了一套系統(tǒng)的面試題,幫助你舉一反三:
④2020大廠面試高頻知識(shí)點(diǎn)
- 圖片
- 網(wǎng)絡(luò)和安全機(jī)制
- 數(shù)據(jù)庫(kù)
- 插件化、模塊化、組件化、熱修復(fù)、增量更新、Gradle
- 架構(gòu)設(shè)計(jì)和設(shè)計(jì)模式
- 性能優(yōu)化
- Android framework
- Android優(yōu)秀三方庫(kù)源碼
以上這些內(nèi)容均免費(fèi)分享給大家,需要完整版的朋友,直接私信回復(fù)【資料】一鍵領(lǐng)取?。?!