崗位JD?15-30K·15薪
工作職責:
1、根據業(yè)務需求,基于安卓平臺進行APP架構設計、開發(fā)及維護;
2、負責指導、培訓初級工程師,和相關技術分享。
任職資格:
1、計算機相關專業(yè),本科以上學歷,5年及以上Android開發(fā)工作經驗;
2、了解Android開發(fā)平臺、Framework和底層設計原理;
3、對Android的UI、組件、性能優(yōu)化、內存優(yōu)化等有深入實踐;
4、良好的開發(fā)基礎,理解常見設計模式,在實際工作中有很好的實踐;
5、具備較強的責任感和主動性,良好的溝通能力和團隊協(xié)作精神。
面試方式
??鸵曨l面試
PS:??兔嬖嚻脚_支持在線畫思維導圖等,可以準備好相關的文檔,結合架構圖,便于面試官了解
面試時間構成
60分鐘左右 = 項目經驗相關30分鐘 + Android基礎20分鐘 + 提問5-10分鐘
PS:專業(yè)知識比較基礎,沒有在線做算法題目,面試官人很nice
個人項目經驗
1. 架構思想
DDD,TDD,Clean架構,分層架構
2. 項目復雜度
Android基礎面試題目
插件化相關
1. 插件化的實現方式,ClassLoader原理
解答:核心雙親委托模式
參考:Android插件化學習之路(二)之ClassLoader完全解析
2. 如何加載插件里的資源文件,如:assert目錄的文件
解答:
參考:Android 插件化開發(fā)(三):資源插件化
Android插件化學習之加載插件資源
3. 如果調用插件里的Activity
參考:滴滴插件化框架VirtualAPK原理解析(一)之插件Activity管理
Activity基礎
1. 切換橫豎屏,activity生命周期,會調用那些方法,數據如何保存
解答:個人理解,可以從Android如何設計回答,要讓應用層可以在修改屏幕參數時(還包括修改顯示大小,字體大小,暗色模式等),如果恢復界面,如:通過AndroidManifest.xml配置,告知系統(tǒng)Activity是否需要重建,及重新new一個Activity,重新new,則代表會重新走正常打開一個Activity的流程(onCreate ->onStart->onResume),
如果重建,則會舊的Activity會回調onSaveInstanceState,新的Activity則會回調onRestoreInstanceState,
如不重建,則依舊還是同一個Activity,只是會回調onConfigurationChanged,告知業(yè)務屏幕參數變化了。
針對數據的保存,也可以使用ViewModel,屏幕參數變化了,ViewModel還有統(tǒng)一對象的,可以作為數據的緩存地帶。
觸摸事件分發(fā)
1. 觸摸事件的分發(fā)流程
解答:基礎技術,這里就不過多贅述
2. 觸發(fā)事件如何攔截,如ViewGroup如何攔截事件傳遞給子View
參考:Android進階——Android事件分發(fā)機制之dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent
其他
1. 如果全局定義控件主題,OPPO如果統(tǒng)一頁面風格
解答:主題(theme)配置style,或控件指定style
2. 多線程如何共享內存
解答:全局變量?
面試官:如果確保線程安全?
解答:線程安全的數據結構,加鎖,讀寫鎖?
面試官:還有嗎?
解答:寫入到文件里?(其他沒明白,真正要考察什么內容,如果是進程間通信還有點難度)
面試后感:
1. 沒問性能相關的,內存優(yōu)化,功耗;沒有問三方SDK的源碼分析;
2. 可以多主動一下,引導面試自己擅長的領域;
3. 整體面試難度一般。