android面試題及答案

學識都 人氣:1.54W

在android中,請簡述jni的調用過程。

android面試題及答案

1)安裝和下載Cygwin,下載 Android NDK

2)在ndk項目中JNI接口的設計

3)使用C/C++實現本地方法

4)JNI生成動態鏈接庫.so文件

5)將動態鏈接庫複製到java工程,在java工程中調用,運行java工程即可

簡述Android應用程序結構是哪些?

Android應用程序結構是:

Linux Kernel(Linux內核)、Libraries(系統運行庫或者是c/c++核心庫)、Application

Framework(開發框架包)、Applications (核心應用程序)

如果後臺的Activity由於某原因被系統回收了,如何在被系統回收之前保存當前狀態?

onSaveInstanceState()

當你的程序中某一個Activity A在運行時,主動或被動地運行另一個新的Activity B,這個時候A會執行onSaveInstanceState()。B完成以後又會來找A,這個時候就有兩種情況:一是A被回收,二是A沒有被回收,被回收的A就要重新調用onCreate()方法,不同於直接啓動的'是這回onCreate()裏是帶上了參數savedInstanceState;而沒被收回的就直接執行onResume(),跳過onCreate()了。

如何將一個Activity設置成窗口的樣式。

在AndroidManifest.xml 中定義Activity的地方一句話android:theme="@android:style/Theme.Dialog"或android:theme="@android:style/Theme.Translucent"就變成半透明的

請介紹下Android中常用的五種佈局。

FrameLayout(框架佈局),LinearLayout (線性佈局),AbsoluteLayout(絕對佈局),RelativeLayout(相對佈局),TableLayout(表格佈局)

請介紹下Android的數據存儲方式。

一.SharedPreferences方式

二.文件存儲方式

三.SQLite數據庫方式

四.內容提供器(Content provider)方式

五. 網絡存儲方式

請介紹下ContentProvider是如何實現數據共享的。

創建一個屬於你自己的Content provider或者將你的數據添加到一個已經存在的Content provider中,前提是有相同數據類型並且有寫入Content provider的權限。

請解釋下Android程序運行時權限與文件系統權限的區別。

運行時權限Dalvik( android授權)

文件系統 linux 內核授權

系統上安裝了多種瀏覽器,能否指定某瀏覽器訪問指定頁面?請說明原由。

通過直接發送Uri把參數帶過去,或者通過manifest裏的intentfilter裏的data屬性

什麼情況會導致Force Close ?如何避免?能否捕獲導致其的異常?

答:一般像空指針啊,可以看起logcat,然後對應到程序中 來解決錯誤

IntentService有何優點?

答:IntentService 的好處

* Acitivity的進程,當處理Intent的時候,會產生一個對應的Service

* Android的進程處理器現在會盡可能的不kill掉你

* 非常容易使用

橫豎屏切換時候activity的生命週期?

1、不設置Activity的android:configChanges時,切屏會重新調用各個生命週期,切橫屏時會執行一次,切豎屏時會執行兩次

2、設置Activity的android:configChanges="orientation"時,切屏還是會重新調用各個生命週期,切橫、豎屏時只會執行一次

3、設置Activity的android:configChanges="orientation|keyboardHidden"時,切屏不會重新調用各個生命週期,只會執行onConfigurationChanged方法

如何將SQLite數據庫(dictionary.db文件)與apk文件一起發佈?

解答:可以將dictionary.db文件複製到Eclipse Android工程中的res aw目錄中。所有在res aw目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件。可以將dictionary.db文件複製到res aw目錄中