最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Android 開發(fā)的面經(jīng)總結(jié)_150道高頻面試題答案解析

2023-03-05 22:02 作者:SKY763450633  | 我要投稿

系列專欄:

  • 安卓系統(tǒng)Framework面經(jīng)專欄鏈接:https://blog.nowcoder.net/zhuanlan/Mde2W0

  • 安卓系統(tǒng)Framework面經(jīng)目錄詳情:https://www.nowcoder.com/discuss/456922214454091776

  • 安卓高頻面經(jīng)解析大全專欄鏈接:https://blog.nowcoder.net/zhuanlan/80aJVm

  • 安卓高頻面經(jīng)解析大全目錄詳情:https://www.nowcoder.com/discuss/396383934924292096

  • 嵌入式面經(jīng)解析大全專欄鏈接:https://blog.nowcoder.net/zhuanlan/3m2ONj

  • 嵌入式面經(jīng)解析大全目錄詳情:https://www.nowcoder.com/discuss/419423154676789248 作者:SKY763450633 https://www.bilibili.com/read/cv21488707 出處:bilibili

本人是2020年畢業(yè)于廣東工業(yè)大學(xué)研究生:許喬丹,有國內(nèi)大廠CVTE和世界500強(qiáng)企業(yè)安卓開發(fā)經(jīng)驗(yàn),該專欄整理本人對常見安卓高頻開發(fā)面試題的理解;

網(wǎng)上安卓資料千千萬,筆者將繼續(xù)維護(hù)專欄,一杯奶茶價(jià)格不止提供答案解析,更有專欄內(nèi)容免費(fèi)技術(shù)答疑。助您提高安卓面試準(zhǔn)備效率,為您面試保駕護(hù)航!

目錄

第一部分:四大組件篇

1、Activity

  • 請介紹Activity的生命周期??????

  • 請介紹Activity的4種啟動模式?????

  • 請說下切換橫豎屏?xí)r Activity的生命周期變化?????

2、Service

  • 請介紹Service的啟動方式,啟動方式的區(qū)別???????

  • 請介紹Service的生命周期??????

  • Activity、Service、intent之間的聯(lián)系?????

  • 在Activity和Service中創(chuàng)建Thread的區(qū)別?(進(jìn)階題)???

  • android進(jìn)程的優(yōu)先級?以及如何保證Service不被殺死?(進(jìn)階題)????

3、BroadCast

  • 請介紹Android里廣播的分類?????

  • 程序A能否接收到程序B的廣播????

  • 請列舉廣播注冊的方式,并簡單描述其區(qū)別??????

4、內(nèi)容提供者

  • 什么是內(nèi)容提供者??????

  • 簡單介紹下 ContentProvider 是如何實(shí)現(xiàn)數(shù)據(jù)共享的(原理)?????

  • 說說 ContentProvider、ContentResolver、ContentObserver 之間的關(guān)系?????

  • 說說如何創(chuàng)建自己應(yīng)用的內(nèi)容提供者的使用場景。???

  • 說說ContentProvider的權(quán)限管理。???

  • 為什么要使用通過ContentResolver類從而與ContentProvider類進(jìn)行交互,而不直接訪問ContentProvider類????

  • ContentProvider的底層是采用Android中的Binder機(jī)制,既然已經(jīng)有了binder實(shí)現(xiàn)了進(jìn)程間通信了為什么還會需要contentProvider?????

第二部分:Android基礎(chǔ)知識篇

5、Context

  • 談?wù)勀銓ctivity的Context的認(rèn)識??????

  • Application和Activity,Context的區(qū)別??????

  • getApplication()和getApplicationContext()的區(qū)別?????

  • context錯(cuò)誤用法有哪些????

  • 如何正確使用Context,如何獲取Context?????

  • 一個(gè)應(yīng)用程序有幾個(gè)Context? ????

6、Intent

  • 什么是Intent? ?????

  • 顯式Intent和隱式Intent的區(qū)別?????

  • 在隱式啟動中Intent可以設(shè)置多個(gè)action,多個(gè)category嗎?????

  • 隱式Intent的匹配規(guī)則??????

  • Activity之間傳遞數(shù)據(jù)的方式Intent是否有大小限制,如果傳遞的數(shù)據(jù)量偏大,有哪些方案????

7、8、Handler異步消息機(jī)制

  • 請介紹下Handler消息機(jī)制 ?????

  • Handler 引起的內(nèi)存泄露原因以及最佳解決方案 ?????

  • 為什么我們能在主線程直接使用 Handler,而不需要創(chuàng)建 Looper ? ?????

  • Handler、Thread和HandlerThread的差別 ????

  • 子線程中怎么使用 Handler? ????

  • 為什么在子線程中創(chuàng)建 Handler 會拋異常?????

  • Handler 里藏著的 Callback 能干什么????

  • Handler 的 send 和 post 的區(qū)別?????

  • 創(chuàng)建 Message 實(shí)例的最佳方式 ???

  • Message 的插入以及回收是如何進(jìn)行的,如何實(shí)例化一個(gè) Message 呢????

  • 妙用Looper機(jī)制,或者你知道Handler機(jī)制的其他用途嗎????

  • Looper.loop()死循環(huán)一直運(yùn)行是不是特別消耗CPU資源呢?不會造成應(yīng)用卡死嗎??????

  • MessageQueue 中如何等待消息?為何不使用 Java 中的 wait/notify 來實(shí)現(xiàn)阻塞等待呢???

  • 你知道延時(shí)消息的原理嗎?????

  • handler postDelay這個(gè)延遲是怎么實(shí)現(xiàn)的?????

  • 如何保證在msg.postDelay情況下保證消息次序????

  • 更新UI的方式有哪些 ????

  • 線程、Handler、Looper、MessageQueue 的關(guān)系?????

  • 多個(gè)線程給 MessageQueue 發(fā)消息,如何保證線程安全????

  • View.post 和 Handler.post 的區(qū)別????

  • 你知道 IdleHandler 嗎???

9、HandlerThread

  • HandlerThread是什么??????

  • HandlerThread原理和使用場景?????

10、AsyncTask

  • AsyncTask是什么?能解決什么問題 ????

  • 給我談?wù)凙syncTask的三個(gè)泛型參數(shù)作用以及它的一些方法作用。???

  • 給我說說AsyncTask的原理。???

  • 你覺得AsyncTask有不足之處嗎?有何使用注意事項(xiàng)????

11、IntentService

  • IntentService是什么??????

  • IntentService原理和使用場景?????

  • IntentService和Service的區(qū)別 ?????

12、Fragment

  • Fragment是什么?和Activity的聯(lián)系?生命周期如何???????

  • Activity和Fragment之間如何通訊?Fragment和Fragment之間如何通訊??????

  • Fragment的回退棧了解嗎?????

  • Fragment的使用方式???

  • 你有遇到過哪些關(guān)于Fragment的問題,如何處理的????

13、Binder

  • 請介紹什么是Binder機(jī)制?????

  • 請介紹Binder機(jī)制流程 ????

  • Binder機(jī)制需要多少次內(nèi)存拷貝 ???

  • Android有很多跨進(jìn)程通信方法,為何選擇Binder????

14、AIDL

  • 請介紹什么是AIDL?????

  • 有幾種AIDL文件????

  • 一個(gè)程序AIDL文件的數(shù)量? ??

  • 你有沒有使用過AIDL?談?wù)勀闳绾螌?shí)現(xiàn)的? ????

  • 知道AIDL語法中的定向tag嗎????

  • 你能不能簡單描述AIDL實(shí)現(xiàn)的原理????

15、SharedPreferences

  • SharedPreference是線程安全的嗎????

  • SharedPreference的apply和commit的區(qū)別?commit 一定會在主線程操作嘛??????

  • SharedPreferences 是如何初始化的,它會阻塞主線程嗎????

  • 每次獲取 SP 對象真的會很慢嗎????

  • 在使用時(shí)需要注意哪些問題,以及有什么優(yōu)化點(diǎn)呢?????

16、線程池

  • 線程池的種類?????

  • 線程池的優(yōu)點(diǎn)????

  • 平時(shí)當(dāng)中使用案例????

  • ThreadPoolExecutor類有了解嗎???

第三部分:View相關(guān)篇

17、Activity、Window、DecorView以及ViewRoot層級關(guān)系

  • 請講述Activity、Window、DecorView以及ViewRoot之間的層級關(guān)系?????

  • DecorView什么時(shí)候可見?????

18、觸摸事件分發(fā)機(jī)制

  • 請介紹什么是事件分發(fā)機(jī)制,以及對應(yīng)流程?????

  • 談?wù)勀銓otionEvent的認(rèn)識?Cancel事件是什么情況下觸發(fā)的???

  • OnTouchListener & OnTouchEvent & OnClickListener三者之間的關(guān)系????

19、View繪制流程

  • 請介紹View的三大繪制流程 ?????

  • 你知道View繪制前的準(zhǔn)備流程嗎??

  • 什么是MeasureSpec????

  • 測量模式有哪三種???

  • 為什么有時(shí)候getMeasuredWidth獲取值為0???

  • 繪制的順序是怎么樣???

20、自定義View

  • 自定義View的流程 ?????

  • 自定義View需要重寫哪些函數(shù)?說說你在自定義View時(shí)常常重寫的一些方法? ????

  • 自定義View的種類有哪些?給我說說你之前項(xiàng)目中的案例。????

  • 說說自定義View中如何自定義屬性????

  • 自定義View如何處理padding???

  • 自定義View效率高于xml布局文件嗎???

  • 自定義View什么時(shí)候需要處理wrap_content屬性?怎么處理??

第四部分:Android進(jìn)階篇

21、序列化

  • 序列化是什么?????

  • 序列化的作用?什么時(shí)候需要序列化? ????

  • Android中序列化方式有幾種?說說它們的區(qū)別。?????

  • Bunder傳遞對象為什么需要序列化????

22、JNI/NDK

  • 什么是JNI?它主要用來干什么。 ?????

  • Java 聲明的Native方法如何和Native層的Native函數(shù)進(jìn)行綁定的?(也就是介紹兩種注冊方法)?????

  • JNI如何實(shí)現(xiàn)數(shù)據(jù)傳遞?????

  • 如何全局捕獲Native發(fā)生的異常????

  • JNIEnv與JavaVM的關(guān)系????

  • C和C++的JNIEnv的區(qū)別 ???

  • JNI項(xiàng)目配置和數(shù)據(jù)映射 ??

23、設(shè)計(jì)模式使用案例

  • 說說設(shè)計(jì)模式的六大原則。???

  • 請簡要談一談單例模式??????

  • 請列出幾種常見的工廠模式并說明它們的用法?????

  • 靜態(tài)代理和動態(tài)代理的區(qū)別,什么場景使用??????

  • 談一談責(zé)任鏈模式的使用場景????

  • 請講講你會使用的一些設(shè)計(jì)模式?????

  • 能否給我說說Android中至少3個(gè)用到設(shè)計(jì)模式的例子? ?????

24、APK啟動流程

  • 你知道桌面點(diǎn)擊應(yīng)用圖標(biāo)到應(yīng)用顯示期間系統(tǒng)實(shí)現(xiàn)了什么流程嗎?????

  • 冷啟動和熱啟動的區(qū)別 ??

  • 桌面點(diǎn)擊啟動APP和從另一個(gè)程序跳轉(zhuǎn)過去有什么區(qū)別???

25、MVC、MVP、MVVM

  • 說說你對MVC、MVP、MVVM的理解,他們有什么區(qū)別和聯(lián)系,如何演變的? ?????

  • MVVM的優(yōu)點(diǎn)和缺點(diǎn) ????

  • 為什么Activity旋轉(zhuǎn)屏幕后ViewModel可以恢復(fù)數(shù)據(jù) ??

  • ViewModel 的實(shí)例緩存到哪兒了 ??

  • 什么時(shí)候 ViewModel#onCleared() 會被調(diào)用 ??

26、緩存機(jī)制

  • 你了解Android中的緩存機(jī)制嗎?????

  • LruCache的源碼看過嗎????

  • 還有用過哪些緩存工具?????

27、APK打包流程和反編譯

  • 請講述一下APK打包的流程? ????

  • 使用過哪些反編譯的工具????

28、注解

  • 你是否了解注解??????

  • 你知道元注解嗎????

  • 知道如何使用自定義注解嗎?有哪些實(shí)現(xiàn)方法?????

  • 具體說一下編譯時(shí)注解的實(shí)現(xiàn)思路????

  • 如何使用注解代替枚舉????

  • 你知道哪些常用的注解?????

第五部分:Android性能優(yōu)化篇

29、內(nèi)存優(yōu)化

  • 什么是OOM、內(nèi)存泄漏、內(nèi)存抖動?如何發(fā)生的? ?????

  • Handler導(dǎo)致的內(nèi)存泄露你是如何解決的? ????

  • 知道如何定位內(nèi)存泄漏嗎?有什么工具?????

  • 請至少例舉出5種內(nèi)存泄漏情況。?????

  • 在 Android 中如何避免內(nèi)存泄漏??????

  • 談?wù)勀沩?xiàng)目中內(nèi)存優(yōu)化的一些經(jīng)驗(yàn)(開放題)???

30、卡頓優(yōu)化

  • 造成系統(tǒng)卡頓的根本原因 ???

  • 什么是 ANR ?導(dǎo)致原因有哪些??????

  • 如何避免發(fā)生 ANR ?????

  • 分別說說Activity、BroadcastReceiver、Serice最長可耗時(shí)時(shí)間為多少??????

  • 談?wù)勀沩?xiàng)目中避免ANR的一些經(jīng)驗(yàn)(開放題)??

  • 有什么方法和工具可以分析ANR ???

以上內(nèi)容均提供售后答疑

alt


Android 開發(fā)的面經(jīng)總結(jié)_150道高頻面試題答案解析的評論 (共 條)

分享到微博請遵守國家法律
冷水江市| 宁夏| 乌审旗| 礼泉县| 娄烦县| 祁阳县| 衡阳市| 南阳市| 海林市| 板桥市| 平和县| 翁源县| 明水县| 莱阳市| 梓潼县| 苗栗县| 兴义市| 闽侯县| 张家川| 清新县| 永胜县| 夏邑县| 大厂| 婺源县| 杭州市| 嘉黎县| 始兴县| 拉孜县| 廊坊市| 彭阳县| 宿州市| 文安县| 聂拉木县| 葵青区| 融水| 黎城县| 灵寿县| 贵定县| 大埔县| 桂阳县| 景宁|