我们究竟还要学习哪些Android知识?附赠课程+题库
2021新的一年,開啟新的征程,回顧2020,真是太“南”了。
從年初各大廠裁員,竟然成為一件理所應(yīng)當(dāng)?shù)氖虑?#xff0c;到四月份 GitHub 上“996.ICU” 引起了大家的共鳴。即使我們兢兢業(yè)業(yè)“996”,但依舊難以抵御 35 歲時的“心方意亂”。
但,焦慮和不安是弱者做的事情,強者都是時刻保持學(xué)習(xí)的心態(tài),在職業(yè)發(fā)展的前 5 年搭建出自己的知識體系,就能做到無懼無畏。
我認識很多優(yōu)秀的 Android 工程師,他們絲毫不焦慮,因為他們知道清晰地知道自己的薄弱處和強項。
和他們的交流中,我總結(jié)了 3 點經(jīng)驗,分享給你
背景
面是是上海的Android leader崗位,周日一輪面試,自我感覺答的都還不錯。
結(jié)果收到郵件面試結(jié)束了,說什么"你優(yōu)秀的學(xué)識和能力給我們留下了深刻的印象!經(jīng)過對你綜合情況的仔細評估,并經(jīng)過與崗位需求進行謹慎匹配和權(quán)衡之后, 非常遺憾,我們這次沒有和你達成合作。但你的信息已經(jīng)被錄入到公司人才庫"。意思就是掛了唄。
后來打電話問hr,沒跟我說原因。然后面試過程中,有一點奇怪的地方,面試前面試官跟我說我面的而這個崗位有點奇怪,他也沒跟我說哪奇怪。
面試過程
下面是面試官提的一些問題:
面試官:點擊一個圖標(biāo)到這個應(yīng)用啟動的全過程(前面是項目經(jīng)驗沒啥好說的)。
回答:
點擊圖標(biāo)后通過startActivity遠程調(diào)用到ams中,ams中將新啟動的activity以activityrecord的結(jié)構(gòu)壓入activity棧中,并通過遠程binder回調(diào)到原進程,使得原進程進入pause狀態(tài),原進程pause后通知ams我pause了。ams再根據(jù)棧中activity的啟動intent中的flag是否含有new_task的標(biāo)簽判斷是否需要啟動新進程,啟動新進程通過startProcessXXX的函數(shù)。啟動新進程后通過反射調(diào)用ActivityThread的main函數(shù),main函數(shù)中調(diào)用looper.prepar和lopper.loop啟動消息隊列循環(huán)機制。
最后遠程告知ams我啟動了。ams回調(diào)handleLauncherAcitivyt加載activity。在handlerLauncherActivity中會通過反射調(diào)用Application的onCreate和activity的onCreate以及通過handleResumeActivity中反射調(diào)用activity的onresume。一個應(yīng)用就此啟動。
面試官:Retrofit原理。
回答:
主要是通過動態(tài)代理將接口直接轉(zhuǎn)換成代理對象。動態(tài)代理和靜態(tài)代理的區(qū)別,動態(tài)代理直接在虛擬機層面構(gòu)建字節(jié)碼對象。
面試官:View自定義的流程,實現(xiàn)哪些方法。
回答:
實現(xiàn)OnMeasure,onlayout,onDraw。
繼續(xù)問“onMeasure中會用哪些方法?”(我覺得這題可能沒大好,我是想回答的詳細點的,結(jié)果還沒打到點他就說好,繼續(xù)下一題,不知道是認可了還是覺得我答的過于啰嗦,如果覺得太啰嗦可以提出來啊。。。)
我回答onMeasure 中傳入兩個int數(shù)值,這個數(shù)值32位,前2位表示模式,后30位表示寬度、高度。這是外表容器給內(nèi)部view的限制。
一種模式是容器給你多大的值,你就是多大的值(match_parent),
第二種,容易給內(nèi)部view多大的空間,內(nèi)部view不用管,是多大就是多大。
第三種,容器給子view多大的空間,和子view自己算出來的占用空間,選擇小的那個(wrap_content)。說到這我正打算說onMeasure會調(diào)用measureChildwithmargin類的函數(shù),他說好了,然后下一題。
面試官:怎么設(shè)計app的。
回答:
基本都用的mvc架構(gòu),曾經(jīng)有個項目使用mvp。還有其它一些整體設(shè)計上的問題,很零碎,但都答的差不多。
面試官:(最后是算法題,面試官的表述不是很清晰,所以開始沒理解他的意思,我歸納一下題目)
有1,3,7三個面值的金錢,現(xiàn)在要取n元。怎么取個數(shù)最少。(n是已知數(shù)) 意思就是 1 * a+3 * b+7 * c=n 什么情況(a+b+c)最小。
當(dāng)然這是我自己歸納出來的,他開始的描述讓我想哭。
回答:
開始腦子有點沒反應(yīng)過來,把它當(dāng)邏輯題做了,想了5分鐘后才反應(yīng)過來,這是編程題啊。遍歷呀, a的取值范圍(0n)b的取值范圍(0n/3) c的取值范圍(0~n/7) 遍歷取最小值。當(dāng)然這種情況效率并不高,我當(dāng)時也和面試官說了,沒太考慮效率,如果需要可以再改。感覺他也認可,思路對就行了。 其它一些零碎的問題沒印象了,主要就這些。
我想大家應(yīng)該看過很多分享面試成功的經(jīng)驗,但根據(jù)幸存者偏差的理論,也許多看看別人面試失敗在哪里,比如我這次的掛了的面試,大家可以對比下,發(fā)現(xiàn)一些自己回答的話會有哪些問題,這樣對自己之后的面試才更有幫助。
【延伸Android必備知識點】
【Android部分高級架構(gòu)視頻學(xué)習(xí)資源】
**Android精講視頻領(lǐng)取學(xué)習(xí)后更加是如虎添翼!**進軍BATJ大廠等(備戰(zhàn))!現(xiàn)在都說互聯(lián)網(wǎng)寒冬,其實無非就是你上錯了車,且穿的少(技能),要是你上對車,自身技術(shù)能力夠強,公司換掉的代價大,怎么可能會被裁掉,都是淘汰末端的業(yè)務(wù)Curd而已!現(xiàn)如今市場上初級程序員泛濫,這套教程針對Android開發(fā)工程師1-6年的人員、正處于瓶頸期,想要年后突破自己漲薪的,進階Android中高級、架構(gòu)師對你更是如魚得水,趕快領(lǐng)取吧!
【Android進階學(xué)習(xí)視頻】、【全套Android面試秘籍】點擊這里查看免費領(lǐng)取方式!
**任何市場都是優(yōu)勝略汰適者生存,只要你技術(shù)過硬,到哪里都不存在飽和不飽和的問題,所以重要的還是提升自己。懂得多是自己的加分項 而不是必須項。門檻高了只能證明這個市場在不斷成熟化!**另外一千個讀者就有一千個哈姆雷特,所以以上只是自己的關(guān)鍵,不喜勿噴!
重要的還是提升自己。懂得多是自己的加分項 而不是必須項。門檻高了只能證明這個市場在不斷成熟化!**另外一千個讀者就有一千個哈姆雷特,所以以上只是自己的關(guān)鍵,不喜勿噴!
如果你是卡在缺少學(xué)習(xí)資源的瓶頸上,那么剛剛好我能幫到你。歡迎關(guān)注會持續(xù)更新和分享的。
總結(jié)
以上是生活随笔為你收集整理的我们究竟还要学习哪些Android知识?附赠课程+题库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: setinterval和clearInt
- 下一篇: 北京 2014 年 apec 期间的雾霾