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