帶你全面解析Android框架體系架構view篇,事件分發源碼

mb612e2b11c3210 2021-09-19 05:31:54 阅读数:404

全面 解析 android 框架 view

**工欲善其事必先利其器,要想拿到滿意的offer,必須有一定的准備。**以下列出來的東西是筆者認為應該准備的東西

  • 簡曆中提到的,一定要有准備,別給自己挖坑
  • Java准備,Java基礎,有的公司會扣的很細,Java數據結構相關的類、JUC、Java的語言設計、
  • JVM 推薦看一下深入理解Java虛擬機這本書
  • 網絡部分,推薦看一下圖解TCP/IP,圖解HTTP這兩本書,如果覺得不滿足,也可以看一些其他的,如詳解TCP/IP卷
  • Android Framework,推薦看gityuan的博客,並且自己看一下代碼
  • 第三方開源庫,這個筆者保持這一直讀代碼的習慣,因此不會刻意准備
  • 算法,推薦看一下劍指offer,leetcode隨便刷一些題即可,不會太難
  • 自己搜集的算法題
  • 平常搜集的一些有質量的面試經驗

相信每個人都有自己複習的方法,這裏就不多說了。

面試過程

好的面試官會去發現候選人的優點,他們會根據你簡曆寫的東西進行提問,因為,把簡曆上寫的搞的明明白白,即可。在面試過程中,不要緊張,要突出自己的特點,有意的向自己擅長的方向引導。態度要好,要自信,如果遇到自己不會的,盡量別說自己不會,稍微思考一下,突出自己解决問題的能力。

接下來就是一些面試題。

帶你全面解析Android框架體系架構view篇,事件分發源碼_移動開發

面試題

小米公司

電面-20分鐘

  • 簡單的溝通自己的工作經曆
  • 聊聊過去一年做的事情
  • 基本上以簡曆上的為主

一面-40分鐘

  • 介紹之前的工作內容
  • 如何統計進程的啟動時間,進程啟動的過程,activity啟動的過程
  • jvm gc
  • jvm 堆和棧的區別,棧上分配
  • 四種引用的區別
  • 性能優化
  • handler
  • binder
  • 算法題。最大回文字串。有getmin功能的棧,時間複雜度o1,兩數相加

二面-40分鐘

  • 自我介紹
  • 插件化
  • binder,經過幾次內存拷貝,從哪裏到哪裏,
  • okhttp
  • 跨進程eventbus
  • 設計模式6大原則,常用的
  • activity a到b的生命周期變化,view是什麼時候顯示的
  • 事件分發機制
  • pms activityrecord
  • 看源碼的動力
  • jni,jnienv作用,jni線程切換
  • 性能優化,fd limit
  • 算法題。隨機打印k個數

三面-60分鐘左右

  • 說下對Android的了解
  • 事件分發機制 給了個場景 討論了半天
  • mvp優缺點,mvvm
  • 相册搜索,設計。討論了半天
  • 介紹了下他們的業務
  • 職業規劃

美團

面試問的很多問題忘記。一面面試官重技術,廣度+深度+基礎都要有。

  • jvm內存分區,那些是線程私有的
  • 類加載機制
  • 做的一些事情
  • 泛型原理
  • 一筆畫算法
  • 鏈錶去重
  • 滑動沖突的一個場景可以了,nestedscrollview
  • gradle插件相關
  • 打包過程
  • tcp/ip協議分層
  • http請求包 響應包
  • https鏈接過程
  • 做的東西 最有成求感的
  • asm aspectj等改字節碼的方式
  • 職業規劃
  • 找什麼樣的工作
  • 為什麼離職之類的
  • hybrid

陌陌

陌陌面試題沒記住多少,總體來說和其他並無太大差別,就是考察你做的事情是不是真實做過,價值怎麼樣。

  • 數據庫優化
  • 網絡優化
  • 多路複用,自己用udp實現quic
  • 反射優化
  • 介紹下自己做的事情,
  • 為什麼離職之類的
  • apm
  • 熱修複,tinker

快手

3面技術+1面hr

一面重java,二面重Android、項目和自身特點。

一面java

  • ArrayList LinkedList區別,場景,時間複雜度
  • 寫一個單例,volatile的作用,為什麼需要
  • volatile如何實現,內存屏障
  • 如何讓GC不回收
  • HashMap的數據結構,擾動函數,擴容
  • 並發、鎖、AQS、CAS之類的
  • 線程池,線程池原理,種類。ForkJoin線程池,由於我是最近一段時間內唯一一個提到ForkJoin線程池的,所以比較加分。
  • 算法 - 翻轉鏈錶

二面 根據自己的簡曆問

  • 代理、靜態代理、動態代理、CGLIB
  • asm javaassit
  • java hook,native hook
  • 網絡協議,tcp三次握手,為什麼三次,四次揮手,為什麼四次,三次行不行
  • 消息隊列
  • 算法-按層打印二叉樹

三面

聊業務,聊規劃之類的

總結

總的來說,現在市場情况一般,招人寧缺毋濫,因此,很多公司喜歡技術能匹配到年限的候選人,在我看來,3年P6,5年P7是他們比較中意的。建議跳槽把握好這兩個時間點。

最後

對於很多初中級Android工程師而言,想要提昇技能,往往是自己摸索成長。而不成體系的學習效果低效漫長且無助。時間久了,付出巨大的時間成本和努力,沒有看到應有的效果,會氣餒是再正常不過的。

所以學習一定要找到最適合自己的方式,有一個思路方法,不然不止浪費時間,更可能把未來發展都一起耽誤了。

如果你是卡在缺少學習資源的瓶頸上,那麼剛剛好我能幫到你。

 CodeChina開源項目地址:《Android學習筆記總結+移動架構視頻+大廠面試真題+項目實戰源碼》

版权声明:本文为[mb612e2b11c3210]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210919053154394V.html