1、項目介紹
Flutter
是目前比較流行的跨平台開發技術,憑借其出色的性能獲得很多前端技術愛好者的關注,比如
阿裡閑魚
,
美團
,
騰訊
等大公司都有投入相關案例生産使用。
基于
Flutter+Dart+chewie+photo_view+image_picker
等技術開發的跨平台仿微信app聊天界面應用,實作了消息/表情發送、圖檔預覽、長按菜單、紅包/小視訊/朋友圈等功能。
面試的時候除了算法題,其他被怼成弟弟,沒想到面試官給過了,一天面完三面并且一周之後收到了oc,覺得自己非常的幸運,終于得到了大廠的認可(雖然是顆白菜)。這裡建議網友如果有自己亮點的話,還是可以勇敢大膽的嘗試一下大廠,畢竟除了實力之外,運氣與機遇也占很大成分,遇到欣賞你的面試官,就會比較順利。
獻上百度的三面面經~
一面:
0.自我介紹完 , 說說項目 , 從第一個到最後一個;
1.問了常用布局有哪幾種;
2.Activity生命周期有哪些 , 具體什麼情況下回調;
3.問了程序間通信 , Binder、管道、socket等;
4.問了View事件的傳遞 , activity-window-decorview-view;
5.事件怎麼從手指傳遞到activity的;
6.LongClick和OnClick分别怎麼觸發的;
7.說說Java類加載器 , Android有哪些類加載器 , android頂級類加載器是什麼;
8.怎麼自己加載一個類 , 不讓父加載器去加載 , 自己load的話 , 怎麼解決其它類加載器的引用;
9.說說記憶體優化(記憶體洩漏、大對象優化等) ;
10.說說openGL(舉了一個執行個體 , 做一個畫中畫);
11.說說netty(之前項目提到過) , 基于什麼線程模型 , 為什麼能承載高并發;
12.說說你最擅長什麼(說了x86項目移植 , 算法優化);
13.寫一個排序算法 , 時間複雜度多少 , 怎麼優化(寫了歸并 , 說了加希爾) ;
14.寫一個常用的動畫。
二面:
1、自我介紹?
2、很大數組中找第K大元素?
3、項目相關?
4、比較擅長什麼語言?腳本性語言?
5、三次握手?
6、UDP資料包長度多少?
7、研究經曆?
8、最近看的書?
9、對Linux環境的了解?
10、程序的狀态有幾種?
11、你覺得你優勢的地方?
12、平時學習開發過程中遇到什麼困難?
13、發表了幾篇論文?
14、程序和線程的差別?線程池?
15、多線程要注意什麼問題?
16、有什麼想問的?
三面:
1、項目?項目難點?花了多久時間?
2、有了解哪些最短路算法?如果速度不夠,你要怎麼優化?
3、最近在看哪些書?
4、平時關注哪些技術?
5、程序與線程的了解?什麼時候用程序什麼時候用線程?
8、說一下平時的一些學習習慣?
9、團隊溝通能力?
10、遇到的最困難的事情?
11、你有什麼優勢?有什麼缺點?
13、對于OFFER怎麼選擇?考慮哪些因素?
14、有什麼想問的?
最後
都說三年是程式員的一個坎,能否晉升或者提高自己的核心競争力,這幾年就十分關鍵。
技術發展的這麼快,從哪些方面開始學習,才能達到進階工程師水準,最後進階到Android架構師/技術專家?我總結了這 5大塊;
我搜集整理過這幾年阿裡,以及騰訊,位元組跳動,華為,小米等公司的面試題,把面試的要求和技術點梳理成一份大而全的“ Android架構師”面試 PDF(實際上比預期多花了不少精力),包含知識脈絡 + 分支細節。
Java語言與原理;
大廠,小廠。Android面試先看你熟不熟悉Java語言
進階UI與自定義view;
自定義view,Android開發的基本功。
性能調優;
資料結構算法,設計模式。都是這裡面的關鍵基礎和重點需要熟練的。
NDK開發;
未來的方向,高薪必會。
前沿技術;
元件化,熱更新,熱修複,架構設計
網上學習 Android的資料一大堆,但如果學到的知識不成體系,遇到問題時隻是淺嘗辄止,不再深入研究,那麼很難做到真正的技術提升。希望這份系統化的技術體系對大家有一個方向參考。
我在搭建這些技術架構的時候,還整理了系統的進階進階教程,會比自己碎片化學習效果強太多,騰訊文檔可見;《Android架構視訊+學習筆記》
當然,想要深入學習并掌握這些能力,并不簡單。關于如何學習,做程式員這一行什麼工作強度大家都懂,但是不管工作多忙,每周也要雷打不動的抽出 2 小時用來學習。
不出半年,你就能看出變化!
tps://docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**
當然,想要深入學習并掌握這些能力,并不簡單。關于如何學習,做程式員這一行什麼工作強度大家都懂,但是不管工作多忙,每周也要雷打不動的抽出 2 小時用來學習。
不出半年,你就能看出變化!