BAT Android面試專題深入探究:四大組件+ViewPager+組件化架構+Bitmap

本篇是結合我之前面試別人的經驗,以及跟一些在BAT上班的朋友,討論總結出的一份很深的大公司需要用到的一些高端Android技術。這裏也專門整理了一個文檔,重點和難點都有詳細解析。這些題目有點技術含量,需要好點時間去研究一下的。

在文末有領取,收集整理了更多關於Android面試專題,包括初級,中級,高級不同水平以及不同專題所涉及到的常問範圍,及面試專題和答案和系統學習視頻資料,免費分享給大家,省去網上到處搜索資料的麻煩,文末有領取!





目錄

一.專題講解——Activity組件


二.專題講解——Service組件


三.專題講解——BoradcastReceiver組件


四.專題講解——ContentProvider(內容提供者)組件


五.專題講解——Fragment


六. 專題講解——ViewPager


七. 專題講解——Android的事件傳遞(分發)機制


八.專題講解—— Bitmap的使用及內存優化 


九.專題講解——使用View繪製視圖 


十.專題講解——Android內存泄漏及管理 


十一.專題講解——Android設計模式之MVC


十二.專題講解——JVM運行原理詳解


十三.專題講解——Android平臺的虛擬機Dalvik


十四.專題講解——Java的內存分配


十五.專題講解——Android中的Binder機制


十六.專題講解——Android中的緩存機制


十七.專題講解——Android中的緩存機制


面試題

一.Activity組件


1、在Activity的生命週期中,可以將Activity表現爲3種狀態:


2、Activity生命週期中的7個方法:


3、Activity的四種啓動模式:


4、Activity任務棧:


5、默認Acctivity啓動方式的缺點:


二.Service組件


1、Service組件常被用於實現以下兩種功能(分別對應兩種啓動模式):


2、Service中常用的方法:


3、Service組件的生命週期:


4、Service的啓動模式詳解


三、BoradcastReceiver組件


1、廣播分爲有序廣播和無序廣播


2、註冊廣播接收器的方式:


3、配置文件中靜態註冊:


4、使用代碼動態註冊:


5、配置文件靜態註冊和在代碼中動態註冊兩種方式的區別


四、ContentProvider(內容提供者)組件


1、URI(統一資源標識符):


2、ContentProvider實現對外部程序數據操作的思路:


五、Fragment


1、Fragment的生命週期的方法:


2、Fragment中傳遞數據:


3、事務


4、管理Fragment:


六、ViewPager


1、ViewPager


2、FragmentPageAdapter和FragmentStatePagerAdapter的區別


3、綜合使用ViewPager、Fragment和FragmentPagerAdapter:


4、關於Fragment中的控件的事件的監聽:


5、當實現一個PagerAdapter時,需要重寫相關方法:


七、Android的事件傳遞(分發)機制


1、基礎概念:


2、事件的類型:


3、事件列:


4、事件分發的本質:


5、事件在哪些對象之間傳遞:


6、事件分發過程中協作完成的方法:


7、傳遞過程中的協作方法:


八、Bitmap的使用及內存優化


1、BitmapFactory


2、縮略圖:


3、將大尺寸圖片解析爲控件所指的尺寸的思路:


4、獲取控件寬高屬性的方法:


5、Bitmap的內存優化:


6、捕獲異常:


7、壓縮圖片:


九、使用View繪製視圖


1、View繪製的流程:


2、Canvas類:


3、Android中頁面的橫屏與豎屏操作:


4、獲取手機中屏幕的寬和高的方法:


十、Android內存泄漏及管理


1、內存溢出(out of memory)


2、內存泄漏(Memory Leak):


3、常發性內存泄漏:


4、偶發性內存泄漏:


5、一次性內存泄漏:


6、隱式內存泄漏:


7、常見造成內存泄漏的原因:


8、線程造成內存泄漏:


9、資源對象未關閉造成的內存泄漏:


10、內存泄漏的檢測工具:


十一.專題講解——Android設計模式之MVC


1、MVC


2、Model(模型):


3、View(視圖):


4、Controller(控制器):


十二.專題講解——JVM運行原理詳解


1、JVM簡析:


2、JVM基本概念


3、JVM的體系結構


4、JVM數據運行區詳解(棧管運行,堆管存儲):


十三.專題講解——Android平臺的虛擬機Dalvik


1、Dalvik概述:


2、Dalvik虛擬機(DVM)和Java 虛擬機(JVM)首要差別:


3、寄存器的概念:


4、棧的概念:


5、DVM進程的設計規則:


6、Android 應用程序的編譯:


7、Android ART模式簡介:


十四.專題講解——Java的內存分配


1、Java內存分配主要包括以下幾個區域:


2、Java內存分配中的棧:


3、Java內存分配中的堆:


4、Java內存分配中的常量池 (constant pool):


5、堆與棧:


十五.專題講解——Android中的Binder機制


1、Binder


2、Binder機制的目的


十六.專題講解——Android中的緩存機制


1、移動開發


2、實現原理:


3、Bitmap的緩存:


4、使用內存緩存:


5、使用磁盤緩存:


6、使用SQLite進行緩存:


7、文件緩存:


十七.專題講解——Android中的緩存機制


1、三級緩存:


2、三級緩存策略


3、三級緩存的原理:


4、具體的緩存策略


最後

從事五年的Android開發工程師了,不少人私下問我,2019年Android該怎麼學,現在的面試方向以及更多技巧方法等。關於這些面試題的詳解,以及更多不同水平階段,不同專題的面試題加答案,我這裏都有整理分類的文檔。並且還有系統的進階學習視頻資料,免費分享給大家。希望能幫助到你面試前的複習,且找到一個好的工作,也節省大家在網上搜索資料的時間來學習。




                       



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章