安卓面試寶典
1.關於記憶體回收機制正確的是:
記憶體回收程式負責釋放無用記憶體。
2.執行時異常有那些:
ArithmeticException(運算條件異常)、illegalArgumentException(不合法引數異常)、NullPointerException(空指標異常)、BufferUderflowException(緩衝區溢位異常)。
3.Math.round(11.5)等於12,Math.round(-11.5)等於11。
4.對一些資源以及狀態的操作儲存,最好時儲存在生命週期的onStart中函式中。
5.intent可以傳遞的資料型別有serializable、charsequence、Parcelable、Bundle。
6.Intent的作用時實現介面間的切換,可以包含動作和動作資料,連線四大元件的紐帶。
7.Sax解析SML檔案的優點:不用事先調入整個文件,佔用資源少。
8.自定義style方式:
<Resources>
<style name="mystyle">
<item name="android:layout_width">
fill_parent
</item>
</Resources>
9.在安卓中使用Menu時可能需要重寫的方法有 onCreateOptionsMenu()、onOptionsitemSelected().
10.使用SqliteOpenHelper這個輔助類時,可以生成一個數據庫,並可以對資料庫的版本進行管理的方法是:getWriteableDatabase()、getReadableDataBase()。
11.Service生命週期的onCreate和onStart方法的生命週期:第一次啟動Service時執行onCreate()和onStart()方法,Service已經啟動則不會執行onCreate方法只會執行onStart方法。
12.GLSurFaceView的特性是:管理一個surface,這個surface就是一塊特殊的記憶體,能直接排版到andorid的檢視View上、管理一個EGL display,它能讓opengl把內容渲染到上述surface上。讓渲染器在獨立的執行緒裡運作和UI執行緒分離。
13.註冊一個Broadcast的方法:
<receiver android:name="NewBroad">
<intent-Filltter>
<action andorid:name="android.provider.action.NewBroad">
</action>
</intent-Filltter>
</receiver>
14.關於ContentValues:他和HashTble比較類似,也是負責儲存一些名值對,但是名為String型別而值都是基本型別。
15.執行緒銷燬方法時onDestroy。
16.Activity退出的方式有finish()、拋異常退出、onStop()
17.安卓的動畫有:Tween和Frame。
18.安卓 dvm程序和linux程序的關係:DVM指的時dalivk虛擬機器,每一個安卓應用程式都在他自己的程序中執行,都有一個Dalvik虛擬機器例項,而每個Dalvik都是Linux中的一個程序,所以可以認為時同一個概念。
19.安卓下的assets目錄是用來放置多媒體等資料檔案的。
20.res/raw中的檔案會原封不動的存放到裝置中不會轉換為二進位制格式。
21.NDK程式設計:NDK時一系列工具的集合、NDK提供了一份穩定、功能有限的API標頭檔案申明、使JAVA加C開發方式成為官方支援的開發方式、NDK將是Andorid平臺支援C開發的開端。
22.安卓中四個常用佈局為:FrameLayout,Linenarlayout , relativelayout , tablelayout.
23.安卓的四大元件時 Activity , Broadcast , contentProvider, Service.
24.Java中的ObjectoutputStream 和 ObjectInputStream主要用於物件的讀寫。
25.安卓中Service的實現方法有:StartService和BIndService.
26.在安卓中會過載7個方法用來維護其生命週期,他們分別是onCreate、onStart()、onResume , onRestart , onpause , on stop , ondestroy.
27.安卓中資料的儲存方式有:Sharepeference 資料庫儲存 檔案儲存 contentProvider 網路.
28. 當啟動一個Activity並且新的Activity執行完後需要返回到啟動的Actitvity來執行的回撥函式時StartActivityForResult.
29.NDK程式設計的步驟。
1.安裝和下載cygwin,下載安卓NDK工具包。
2.在NDK專案中JNI介面的設計。
3.使用C、C++實現本地方法。
4.JNI動態生成連結庫.so檔案。
5.將動態連結庫複製到JAVA工程中,在Java工程中呼叫即可。
30.安卓應用程式的結構
Linux Kernel(Linux核心層)、Libraries(系統執行庫或者是C/C++核心庫)
FrameWork層(開發框架包) Applications(核心應用程式)
31.Sqlite資料庫的建立。
通過SqliteOpenHelper的Oncreate建表,onUpgrade更新資料庫。
32.安卓執行許可權由Dalvik也就是安卓授權,檔案系統由Linux核心授權。
33.安卓系統的優缺點。
1、開放性、掙脫運營商的束縛、豐富的硬體選擇、不任何限制的開發商、無縫結合的谷歌應用。
2、安全和隱私、同類機型使用者減少、缺少標準配置。
34.DDMS時一個程式執行檢視器,在裡面可以檢視執行緒和堆疊等資訊,TraceView時程式效能分析器。