android筆試題及其參考答案
在android中,請簡述jni的調(diào)用過程。
1)安裝和下載Cygwin,下載 Android NDK
2)在ndk項目中JNI接口的設(shè)計
3)使用C/C++實現(xiàn)本地方法
4)JNI生成動態(tài)鏈接庫.so文件
5)將動態(tài)鏈接庫復(fù)制到j(luò)ava工程,在java工程中調(diào)用,運行java工程即可
簡述Android應(yīng)用程序結(jié)構(gòu)是哪些?
Android應(yīng)用程序結(jié)構(gòu)是:
Linux Kernel(Linux內(nèi)核)、Libraries(系統(tǒng)運行庫或者是c/c++核心庫)、Application
Framework(開發(fā)框架包)、Applications (核心應(yīng)用程序)
如果后臺的Activity由于某原因被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當前狀態(tài)?
onSaveInstanceState()
當你的程序中某一個Activity A在運行時,主動或被動地運行另一個新的Activity B,這個時候A會執(zhí)行onSaveInstanceState()。B完成以后又會來找A,這個時候就有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新調(diào)用onCreate()方法,不同于直接啟動的是這回onCreate()里是帶上了參數(shù)savedInstanceState;而沒被收回的就直接執(zhí)行onResume(),跳過onCreate()了。
如何將一個Activity設(shè)置成窗口的樣式。
在AndroidManifest.xml 中定義Activity的地方一句話android:theme="@android:style/Theme.Dialog"或android:theme="@android:style/Theme.Translucent"就變成半透明的
請介紹下Android中常用的五種布局。
FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局)
請介紹下Android的數(shù)據(jù)存儲方式。
一.SharedPreferences方式
二.文件存儲方式
三.SQLite數(shù)據(jù)庫方式
四.內(nèi)容提供器(Content provider)方式
五. 網(wǎng)絡(luò)存儲方式
請介紹下ContentProvider是如何實現(xiàn)數(shù)據(jù)共享的。
創(chuàng)建一個屬于你自己的Content provider或者將你的數(shù)據(jù)添加到一個已經(jīng)存在的Content provider中,前提是有相同數(shù)據(jù)類型并且有寫入Content provider的權(quán)限。
請解釋下Android程序運行時權(quán)限與文件系統(tǒng)權(quán)限的區(qū)別。
運行時權(quán)限D(zhuǎn)alvik( android授權(quán))
文件系統(tǒng) linux 內(nèi)核授權(quán)
系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面面?請說明原由。
通過直接發(fā)送Uri把參數(shù)帶過去,或者通過manifest里的intentfilter里的data屬性
什么情況會導(dǎo)致Force Close ?如何避免?能否捕獲導(dǎo)致其的異常?
答:一般像空指針啊,可以看起logcat,然后對應(yīng)到程序中 來解決錯誤
IntentService有何優(yōu)點?
答:IntentService 的好處
Acitivity的進程,當處理Intent的時候,會產(chǎn)生一個對應(yīng)的Service
Android的進程處理器現(xiàn)在會盡可能的不kill掉你
非常容易使用
橫豎屏切換時候activity的生命周期?
1、不設(shè)置Activity的android:configChanges時,切屏會重新調(diào)用各個生命周期,切橫屏時會執(zhí)行一次,切豎屏時會執(zhí)行兩次
2、設(shè)置Activity的android:configChanges="orientation"時,切屏還是會重新調(diào)用各個生命周期,切橫、豎屏時只會執(zhí)行一次
3、設(shè)置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調(diào)用各個生命周期,只會執(zhí)行onConfigurationChanged方法
如何將SQLite數(shù)據(jù)庫(dictionary.db文件)與apk文件一起發(fā)布?
解答:可以將dictionary.db文件復(fù)制到Eclipse Android工程中的res aw目錄中。所有在res aw目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件?梢詫ictionary.db文件復(fù)制到res aw目錄中