国产精品亚洲综合久久系列,一本大道香蕉青青久久,播放高清的播放器,国产在线观看无码不卡

蜜蜂職場文庫 > 面試技巧 >

android面試題庫

時間: 小龍 面試技巧

  android工程師的面試前的準(zhǔn)備很重要,那么你知道有哪些關(guān)于安卓的面試題嗎?以下是小編幫你們整理的android面試題庫,一起來學(xué)習(xí)啦。

  android面試題篇一

  1.android 中線程與線程,進(jìn)程與進(jìn)程之間如何通信

  1)、一個 Android 程序開始運行時,會單獨啟動一個 Process 。

  默認(rèn)情況下,所有這個程序中的 Activity 或者 Service 都會跑在這個 Process 。

  默認(rèn)情況下,一個 Android 程序也只有一個 Process ,但一個 Process 下卻可以有許多個 Thread。

  2 )、一個 Android 程序開始運行時,就有一個主線程 Main Thread 被創(chuàng)建。該線程主要負(fù)責(zé) UI 界面的顯示、更新和控件交互,所以又叫 UI Thread 。

  一個 Android 程序創(chuàng)建之初,一個 Process 呈現(xiàn)的是單線程模型 — 即 Main Thread ,所有的任務(wù)都在一個線程中運行。所以, Main Thread 所調(diào)用的每一個函數(shù),其耗時應(yīng)該越短越好。而對于比較費時的工作,應(yīng)該設(shè)法交給子線程去做,以避免阻塞主線程(主線程被阻塞,會導(dǎo)致程序假死現(xiàn)象)。

  3 )、 Android 單線程模型: Android UI 操作并不是線程安全的并且這些操作必須在 UI 線程中執(zhí)行。如果在子線程中直接修改 UI ,會導(dǎo)致異常。

  2.Android dvm 的進(jìn)程和 Linux 的進(jìn)程 , 應(yīng)用程序的進(jìn)程是否為同一個概念

  DVM 指 dalivk 的虛擬機。每一個 Android 應(yīng)用程序都在它自己的進(jìn)程中運行,都擁有一個獨立的 Dalvik 虛擬機實例。而每一個 DVM 都是在 Linux 中的一個進(jìn)程,所以說可以認(rèn)為是同一個概念。

  3.sim 卡的 EF 文件有何作用

  sim 卡的文件系統(tǒng)有自己規(guī)范,主要是為了和手機通訊, sim 本身可以有自己的操作系統(tǒng),EF 就是作存儲并和手機通訊用的

  4.android 中的動畫有哪幾類,它們的特點和區(qū)別是什么 ?

  兩種,一種是 Tween 動畫、還有一種是 Frame 動畫。 Tween 動畫,這種實現(xiàn)方式可以使視圖組件移動、放大、縮小以及產(chǎn)生透明度的變化 ; 另一種 Frame 動畫,傳統(tǒng)的動畫方法,通過順序的播放排列好的圖片來實現(xiàn),類似電影。

  5.描述handler 機制的原理

  andriod提供了 Handler 和 Looper 來滿足線程間的通信。

  Handler 先進(jìn)先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)。

  1)Looper: 一個線程可以產(chǎn)生一個Looper對象,由它來管理此線程里的Message Queue(消息隊列)。

  2)Handler: 你可以構(gòu)造Handler對象來與Looper溝通,以便push新消息到Message Queue里;或者接收Looper從Message Queue取出)所送來的消息。

  3)Message Queue(消息隊列):用來存放線程放入的消息。

  4)線程:UI thread 通常就是main thread,而Android啟動程序時會替它建立一個Message Queue。

  android面試題篇二

  1. 如何將 SQLite 數(shù)據(jù)庫 (dictionary.db 文件 ) 與 apk 文件一起發(fā)布 ?

  解答:可以將 dictionary.db 文件復(fù)制到 Eclipse Android 工程中的 res aw 目錄中。所有在 res aw 目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件??梢詫?dictionary.db 文件復(fù)制到 res aw 目錄中

  2. 如何將打開 res aw 目錄中的數(shù)據(jù)庫文件 ?

  解答:在 Android 中不能直接打開 res aw 目錄中的數(shù)據(jù)庫文件,而需要在程序第一次啟動時將該文件復(fù)制到手機內(nèi)存或 SD 卡的某個目錄中,然后再打開該數(shù)據(jù)庫文件。復(fù)制的基本方法是使用getResources().openRawResource 方法獲得 res aw 目錄中資源的 InputStream 對象,然后將該InputStream 對象中的數(shù)據(jù)寫入其他的目錄中相應(yīng)文件中。在 Android SDK 中可以使用SQLiteDatabase.openOrCreateDatabase 方法來打開任意目錄中的 SQLite 數(shù)據(jù)庫文件。

  3. 在 android 中 mvc 的具體體現(xiàn)

  MVC 是 Model,View,Controller 的縮寫,從上圖可以看出 MVC 包含三個部分:

  .. 模型( Model )對象:是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在該層。

  .. 視圖( View )對象:是應(yīng)用程序中負(fù)責(zé)生成用戶界面的部分。也是在整個MVC 架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。

  .. 控制器( Control )對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新 Model 對象狀態(tài)的部分,控制器更重要的一種導(dǎo)航功能,想用用戶出發(fā)的相關(guān)事件,交給 M 哦得了處理。

  Android 鼓勵弱耦合和組件的重用,在 Android 中 MVC 的具體體現(xiàn)如下

  1) 視圖層( view ):一般采用 xml 文件進(jìn)行界面的描述,使用的時候可以非常方便的引入,當(dāng)然,如何你對 android 了解的比較的多了話,就一定可以想到在 android 中也可以使用JavaScript+html 等的方式作為 view 層,當(dāng)然這里需要進(jìn)行 Java 和 JavaScript 之間的通信,幸運的是, android 提供了它們之間非常方便的通信實現(xiàn)。

  2) 控制層( controller ): android 的控制層的重任通常落在了眾多的 acitvity 的肩上,這句話也就暗含了不要在 acitivity 中寫代碼,要通過 activity 交割 model 業(yè)務(wù)邏輯層處理,這樣做的另外一個原因是 android 中的 acitivity 的響應(yīng)時間是 5s ,如果耗時的操作放在這里,程序就很容易被回收掉。

  3) 模型層( model ):對數(shù)據(jù)庫的操作、對網(wǎng)絡(luò)等的操作都應(yīng)該在 model 里面處理,當(dāng)然對業(yè)務(wù)計算等操作也是必須放在的該層的。

  android面試題篇三

  1、Android中五種數(shù)據(jù)存儲方式分別是什么?他們的特點?

  Android提供了五種存取數(shù)據(jù)的方式

  1)SharedPreference,存放較少的五種類型的數(shù)據(jù),只能在同一個包內(nèi)使用,生成XML的格式存放在設(shè)備中;

  2)SQLite數(shù)據(jù)庫,存放各種數(shù)據(jù),是一個輕量級的嵌入式數(shù)據(jù)庫;

  3)File文件,通過讀取寫入方式生成文件存放數(shù)據(jù);

  4)ContentProvider,主要用于讓其他應(yīng)用程序使用保存的數(shù)據(jù);

  5)通過網(wǎng)絡(luò)獲取數(shù)據(jù)和寫入數(shù)據(jù)到網(wǎng)絡(luò)存儲空間。

  2、說說 android 中 mvc 的具體體現(xiàn)

  mvc是model,view,controller的縮寫,mvc包含三個部分:

  模型(model)對象:是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在該層。 視圖(view)對象:是應(yīng)用程序中負(fù)責(zé)生成用戶界面的部分。也是在整個mvc架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。

  控制器(control)對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新model對象狀態(tài)的部分,控制器更重要的一種導(dǎo)航功能,響應(yīng)用戶出發(fā)的相關(guān)事件,交給m層處理。

  android鼓勵弱耦合和組件的重用,在android中mvc的具體體現(xiàn)如下:

  1)視圖(view):一般采用xml文件進(jìn)行界面的描述,使用的時候可以非常方便的引入。

  2)控制層(controller):android的控制層的重任通常落在了眾多的acitvity的肩上,這句話也就暗含了不要在activity中寫過多的代碼,要通過activity交割model業(yè)務(wù)邏輯層處理,這樣做的另外一個原因是android中的activity的響應(yīng)時間是5s,如果耗時的操作放在這里,程序就很容易被回收掉。

  3)模型層(model):對數(shù)據(jù)庫的操作、對網(wǎng)絡(luò)等的操作都應(yīng)該在model里面處理,當(dāng)然對業(yè)務(wù)計算等操作也是必須放在的該層的。

  3、簡述SharedPreferences存儲方式以及SharedPreferences與SQLite數(shù)據(jù)庫的區(qū)別。

  SharedPreferences也是一種輕型的數(shù)據(jù)存儲方式,它的本質(zhì)是基于XML文件存儲key-value鍵值對數(shù)據(jù),通常用來存儲一些簡單的配置信息。其存儲位置在/data/data/<包名>/shared_prefs目錄下。

  SharedPreferences對象本身只能讀取數(shù)據(jù)而不支持寫入數(shù)據(jù),存儲修改是通過Editor對象實現(xiàn)。

  SharedPreferences對象與SQLite數(shù)據(jù)庫相比,免去了創(chuàng)建數(shù)據(jù)庫,創(chuàng)建表,寫SQL語句等諸多操作,相對而言更加方便,簡潔。

  但是SharedPreferences也有其自身缺陷,比如其職能存儲boolean,int,float,long和String五種簡單的數(shù)據(jù)類型,比如其無法進(jìn)行條件查詢等。

  所以不論SharedPreferences的數(shù)據(jù)存儲操作是如何簡單,它也只能是存儲方式的一種補充,而無法完全替代如SQLite數(shù)據(jù)庫這樣的其他數(shù)據(jù)存儲方式。

  
看了“android面試題庫”的人還看過:

1.

2.

3.

4.

5.

50346