在android中,請簡述jni的呼叫過程。
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目錄中