收錄一些常用的面試題目含參考答案(一)

第一部分


1.Android 中的動畫有哪幾類?

兩種:Tween(補間)動畫
Frame(幀)動畫
Tween 動畫可以使視圖組件移動、放大、縮小以及產生透明度的變化;

Frame 動畫通過順序的播放排列好的圖片來實現,類似電影;

2.Handler 機制的原理

Android 提供了Handler 和 Looper 來滿足線程間的通信。

Handler 實行先進先出原則。

Looper 類用來管理特定線程內對象之間的信息交換(Message Exchange)。

1)Looper : 一個線程可以產生一個Looper 對象,又它來管理此線程裏的Message Queue(消息隊列)

2)Handler : 你可以構造Handler 對象來與Looper 溝通,以便push 新消息到Message Queue裏,或者接收Looper 從 Message Queue 取出來的消息。

3)Message Queue(消息隊列): 用來存放線程放入的消息。

4)線程 : UI Thread 通常是 Main Thread , 而 Android 啓動程序時會替它建立一個Message Queue。

3. Activity 生命週期

4. Intent - 通信的使者
1)顯示調用和隱式調用
顯示Intent : 通過指定Intent組件名稱來實現的,它一般用在知道目標組件名稱的前提下,一般是在相同的應用程序內部實現的。
隱式Intent : 通過Intent Filter 來實現的,它一般用在沒有明確指出目標組件名稱的前提下,一般是用在不用應用程序之間

5. ANR是什麼?如何儘量避免?
Application Not Responding , 5秒。
1)儘量避免在主線程做太多耗時的操作
2)如需處理耗時的操作可以新建一個子線程

6. 有哪些情況會導致Force Close?
1) 常見有空指針

7. Android 4大組件是?
Activity 、Service 、BroadcastReceiver 、Content Provider

8. Activity 橫豎屏切換時生命週期調用
1)不設置Activity的android:configChanges時,切屏會重新調用各個生命週期,切橫屏時會執行一次,切豎屏時會執行兩次。
2)設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命週期,切橫、豎屏時只會執行一次。
3)設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命週期,只會執行onConfigurationChanged方法

9. 如何將SQLite數據庫(dictionary.db文件)與APK文件一起發佈?
將dictionary.db文件放到res raw 目錄下。

10. 如何打開res raw 目錄中的數據庫文件?
在Android中不能直接打開res raw目錄中的數據庫文件,而需要在程序第一次啓動時將該文件複製到手機內存或SD 卡的某個目錄下,然後再打開該數據庫文件。
複製的基本方法是使用getResources().openRawResource方法獲得res raw目錄中資源的InputStream對象,然後將該InputStream對象中的數據寫入其他目錄中相應文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDataBase 方法來打開任意目錄中的SQLite數據庫文件。

收錄一些常用的面試題目含參考答案(二)



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