點擊上方的終端研發部,右上角選擇「設為星標」
每日早10點半,技術文章準時送上
公眾號後臺回復「學習」,獲取作者獨家秘制精品資料
往期文章
記五月的一個Android面試經
今日頭條屏幕適配方案落地研究
APK瘦身-是時候給App進行減負了
漫畫:App 防止 Fiddler 抓包小技巧!
淺談final、finally、finalize有什麼不同?
來源:BlueManlove
原文連結:http://www.apkbus.com/blog-985982-80737.html
Activity基礎相關說下Activity生命周期 ?
Activity A 啟動另一個Activity B 會調用哪些方法?如果B是透明主題的又或則是個DialogActivity呢 ?
說下onSaveInstanceState()方法的作用 ? 何時會被調用?
說下 Activity的四種啟動模式、應用場景 ?
了解哪些Activity常用的標記位Flags?
說下 Activity跟window,view之間的關係?
橫豎屏切換的Activity生命周期變化?
如何啟動其他應用的Activity?
Activity的啟動過程?(重點)
Fragment基礎相關談一談Fragment的生命周期 ?與Activity生命周期的不同 ?
談談Activity和Fragment的區別?
Fragment中add與replace的區別(Fragment重疊)
getFragmentManager、getSupportFragmentManager 、getChildFragmentManager之間的區別?
FragmentPagerAdapter與FragmentStatePagerAdapter的區別與使用場景
Service基礎相關Broadcast Receiver基礎相關ContentProvider基礎相關數據存儲相關IPC(重點)Android中進程和線程的關係?區別?
如何開啟多進程 ?應用是否可以開啟N個進程 ?
為何需要IPC?多進程通信可能會出現的問題?
Android中IPC方式、各種方式優缺點,為什麼選擇Binder?
Binder機制的作用和原理?
Binder框架中ServiceManager的作用?
Bundle傳遞對象為什麼需要序列化?Serialzable和Parcelable的區別?
講講AIDL?原理是什麼?如何優化多模塊都使用AIDL的情況?
View相關講下View的繪製流程?
MotionEvent是什麼?包含幾種事件?什麼條件下會產生?
描述一下View事件傳遞分發機制?
如何解決View的事件衝突 ?舉個開發中遇到的例子 ?
scrollTo()和scollBy()的區別?
Scroller是怎麼實現View的彈性滑動?
invalidate()和postInvalidate()的區別 ?
SurfaceView和View的區別?
自定義View如何考慮機型適配 ?
Handler相關談談消息機制Handler ? 作用 ?有哪些要素 ?流程是怎樣的 ?
一個線程能否創建多個Handler,Handler跟Looper之間的對應關係 ?
軟引用跟弱引用的區別
Handler 引起的內存洩露原因以及最佳解決方案
為什麼系統不建議在子線程訪問UI
Looper死循環為什麼不會導致應用卡死
使用Handler的postDealy後消息隊列會有什麼變化 ?
可以在子線程直接new一個Handler嗎 ?怎麼做 ?
Message可以如何創建 ?哪種效果更好 ?為什麼 ?
線程(重點)相關線程池的好處?線程池的幾個參數的理解,四種線程池的使用場景
Android中還了解哪些方便線程切換的類?
講講AsyncTask的原理
IntentService有什麼用 ?
直接在Activity中創建一個thread跟在service中創建一個thread之間的區別
ThreadPoolExecutor的工作策略 ?
Handler、Thread和HandlerThread的差別?
ThreadLocal的原理
多線程是否一定會高效(優缺點)
多線程中,讓你做一個單例,你會怎麼做
除了notify還有什麼方式可以喚醒線程
什麼是ANR ? 什麼情況會出現ANR ?如何避免 ?在不看代碼的情況下如何快速定位出現ANR問題所在 ?
Bitmap相關圖片的三級緩存中,圖片加載到內存中,如果內存快爆了,會發生什麼?怎麼處理?內存中如果加載一張500*500的png高清圖片.應該是佔用多少的內存?Bitmap如何處理大圖,如一張30M的大圖,如何預防OOM內存回收機制與GC算法(各種算法的優缺點以及應用場景);GC原理時機以及GC對象內存洩露和內存溢出的區別 ?AS有什麼工具可以檢測內存洩露性能優化,怎麼保證應用啟動不卡頓? 黑白屏怎麼處理?ListView的adapter是什麼adapter ?LinearLayout、FrameLayout、RelativeLayout性能對比,為什麼?JNI相關如何加載NDK庫 ?如何在JNI中註冊Native函數,有幾種註冊方法 ?你用JNI來實現過什麼功能 ?怎麼實現的 ?(加密處理、影音方面、圖形圖像處理)設計模式相關談談MVC、MVP和MVVM,好在哪裡,不好在哪裡 ?是否能從Android中舉幾個例子說說用到了什麼設計模式 ?實現單例模式有幾種方法 ?懶漢式中雙層鎖的目的是什麼 ?兩次判空的目的又是什麼?用到的一些開源框架,介紹一個看過源碼的,內部實現過程。Fragment如果在Adapter中使用應該如何解耦?Android進階延伸點請例舉Android中常用布局類型,並簡述其用法以及排版效率區別Animation和Animator的用法,概述其原理使用過什麼圖片加載庫 ?Glide的源碼設計哪裡很微妙 ?用過哪些網絡加載庫 ?OkHttp、Retrofit實現原理 ?對於應用更新這塊是如何做的 ?(灰度,強制更新、分區域更新)會用Kotlin、Fultter嗎 ?談談你的理解答篇1、說下Activity生命周期 ?參考解答:在正常情況下,Activity的常用生命周期就只有如下7個onCreate():表示Activity正在被創建,常用來初始化工作,比如調用setContentView加載界面布局資源,初始化Activity所需數據等;onRestart():表示Activity正在重新啟動,一般情況下,當前Acitivty從不可見重新變為可見時,OnRestart就會被調用;onStart():表示Activity正在被啟動,此時Activity可見但不在前臺,還處於後臺,無法與用戶交互;onResume():表示Activity獲得焦點,此時Activity可見且在前臺並開始活動,這是與onStart的區別所在;onPause():表示Activity正在停止,此時可做一些存儲數據、停止動畫等工作,但是不能太耗時,因為這會影響到新Activity的顯示,onPause必須先執行完,新Activity的onResume才會執行;onStop():表示Activity即將停止,可以做一些稍微重量級的回收工作,比如註銷廣播接收器、關閉網絡連接等,同樣不能太耗時;onDestroy():表示Activity即將被銷毀,這是Activity生命周期中的最後一個回調,常做回收工作、資源釋放;延伸:從整個生命周期來看,onCreate和onDestroy是配對的,分別標識著Activity的創建和銷毀,並且只可能有一次調用;從Activity是否可見來說,onStart和onStop是配對的,這兩個方法可能被調用多次;從Activity是否在前臺來說,onResume和onPause是配對的,這兩個方法可能被調用多次;2、談一談Fragment的生命周期?Fragment從創建到銷毀整個生命周期中涉及到的方法依次為:onAttach()→onCreate()→ onCreateView()→onActivityCreated()→onStart()→onResume()→onPause()→onStop()→onDestroyView()→onDestroy()→onDetach(),其中和Activity有不少名稱相同作用相似的方法,而不同的方法有:onAttach():當Fragment和Activity建立關聯時調用;onCreateView():當fragment創建視圖調用,在onCreate之後;onActivityCreated():當與Fragment相關聯的Activity完成onCreate()之後調用;onDestroyView():在Fragment中的布局被移除時調用;onDetach():當Fragment和Activity解除關聯時調用;3、談一談Service的生命周期?onCreate():如果service沒被創建過,調用startService()後會執行onCreate()回調;如果service已處於運行中,調用startService()不會執行onCreate()方法。也就是說,onCreate()只會在第一次創建service時候調用,多次執行startService()不會重複調用onCreate(),此方法適合完成一些初始化工作;onStartComand():服務啟動時調用,此方法適合完成一些數據加載工作,比如會在此處創建一個線程用於下載數據或播放音樂;4、廣播有幾種形式 ? 都有什麼特點 ?普通廣播:開發者自身定義 intent的廣播(最常用),所有的廣播接收器幾乎會在同一時刻接受到此廣播信息,接受的先後順序隨機;有序廣播:發送出去的廣播被廣播接收者按照先後順序接收,同一時刻只會有一個廣播接收器能夠收到這條廣播消息,當這個廣播接收器中的邏輯執行完畢後,廣播才會繼續傳遞,且優先級(priority)高的廣播接收器會先收到廣播消息。有序廣播可以被接收器截斷使得後面的接收器無法收到它;本地廣播:僅在自己的應用內發送接收廣播,也就是只有自己的應用能收到,數據更加安全,效率更高,但只能採用動態註冊的方式;粘性廣播:這種廣播會一直滯留,當有匹配該廣播的接收器被註冊後,該接收器就會收到此條廣播;5、ContentProvider了解多少?ContentProvider作為四大組件之一,其主要負責存儲和共享數據。與文件存儲、SharedPreferences存儲、SQLite資料庫存儲這幾種數據存儲方法不同的是,後者保存下的數據只能被該應用程式使用,而前者可以讓不同應用程式之間進行數據共享,它還可以選擇只對哪一部分數據進行共享,從而保證程序中的隱私數據不會有洩漏風險。說說最近Android的行情最近時不時看到一些風涼話,動不動就說Android涼了,給大家幾個建議哈,首先要耐得住寂寞,不要被外界所幹擾;其次要制定長期系統的學習計劃並持之以恆;最後,注意學習方式,不要休閒式學習,很多人只看書看博客,但是從來不去動手實踐一下,那理解肯定不會太深刻,時間久了就容易忘。閱讀更多
相信自己,沒有做不到的,只有想不到的在這裡獲得的不僅僅是技術!
喜歡就給個「在看」