android面試題
android面試者如何才能在面試中又出色的表現(xiàn)呢?面試前做好準(zhǔn)備很有必要,那么你了解相關(guān)面試題目了嗎?以下是小編幫你們整理的android面試題大全,一起來學(xué)習(xí)啦。
android面試題大全篇一
1. Android dvm的進(jìn)程和Linux的進(jìn)程, 應(yīng)用程序的進(jìn)程是否為同一個(gè)概念
DVM 執(zhí)行時(shí),在linux看來就是一應(yīng)用程序進(jìn)程,所以說是同一概念
2. sim卡的EF 文件有何作用
sim卡的文件系統(tǒng)有自己規(guī)范,主要是為了和手機(jī)通訊,sim本 身可以有自己的操作系統(tǒng),EF就是作存儲并和手機(jī)通訊用的
3.嵌入式操作系統(tǒng)內(nèi)存管理有哪幾種, 各有何特性
頁式,段式,段頁,用到了MMU,虛擬空間等技術(shù)
4. 什么是嵌入式實(shí)時(shí)操作系統(tǒng), Android 操作系統(tǒng)屬于實(shí)時(shí)操作系統(tǒng)嗎?
分硬實(shí)時(shí)和軟實(shí)時(shí),android屬于linux內(nèi)核,linux在用戶空間可搶占,內(nèi)核空間在2.4以后可局部搶占,嚴(yán)格來講 Android屬于軟實(shí)時(shí)系統(tǒng)
5、 Android dvm的進(jìn)程和Linux的進(jìn)程, 應(yīng)用程序的進(jìn)程是否為同一個(gè)概念
DVM指dalivk的虛擬機(jī)。每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。而每一個(gè)DVM都是在Linux 中的一個(gè)進(jìn)程,所以說可以認(rèn)為是同一個(gè)概念。
6、sim卡的EF 文件有何作用
sim卡的文件系統(tǒng)有自己規(guī)范,主要是為了和手機(jī)通訊,sim本 身可以有自己的操作系統(tǒng),EF就是作存儲并和手機(jī)通訊用的
7、嵌入式操作系統(tǒng)內(nèi)存管理有哪幾種, 各有何特性
頁式,段式,段頁,用到了MMU,虛擬空間等技術(shù)
8、 什么是嵌入式實(shí)時(shí)操作系統(tǒng), Android 操作系統(tǒng)屬于實(shí)時(shí)操作系統(tǒng)嗎?
嵌入式實(shí)時(shí)操作系統(tǒng)是指當(dāng)外界事件或數(shù)據(jù)產(chǎn)生時(shí),能夠接受并以足夠快的速度予以處理,其處理的結(jié)果又能在規(guī)定的時(shí)間之內(nèi)來控制生產(chǎn)過程或?qū)μ幚硐到y(tǒng)作出快速響應(yīng),并控制所有實(shí)時(shí)任務(wù)協(xié)調(diào)一致運(yùn)行的嵌入式操作系統(tǒng)。主要用于工業(yè)控制、軍事設(shè)備、航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時(shí)間有苛刻的要求,這就需要使用實(shí)時(shí)系統(tǒng)。又可分為軟實(shí)時(shí)和硬實(shí)時(shí)兩種,而android是基于linux內(nèi)核的,因此屬于軟實(shí)時(shí)。
9、一條最長的短信息約占多少byte?
中文70(包括標(biāo)點(diǎn)),英文160,160個(gè)字節(jié)
10、 android中的動(dòng)畫有哪幾類,它們的特點(diǎn)和區(qū)別是什么?
兩種,一種是Tween動(dòng)畫、還有一種是Frame動(dòng)畫。Tween動(dòng)畫,這種實(shí)現(xiàn)方式可以使視圖組件移動(dòng)、放大、縮小以及產(chǎn)生透明度的變化;另一種Frame動(dòng)畫,傳統(tǒng)的動(dòng)畫方法,通過順序的播放排列好的圖片來實(shí)現(xiàn),類似電影。
11、handler機(jī)制的原理
andriod提供了 Handler 和 Looper 來滿足線程間的通信。Handler 先進(jìn)先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)。
1)Looper: 一個(gè)線程可以產(chǎn)生一個(gè)Looper對象,由它來管理此線程里的Message Queue(消息隊(duì)列)。
2)Handler: 你可以構(gòu)造Handler對象來與Looper溝通,以便push新消息到Message Queue里;或者接收Looper從Message Queue取出)所送來的消息。
3) Message Queue(消息隊(duì)列):用來存放線程放入的消息。
4)線程:UI thread 通常就是main thread,而Android啟動(dòng)程序時(shí)會替它建立一個(gè)Message Queue。
android面試題大全篇二
1、Android中五種數(shù)據(jù)存儲方式分別是什么?他們的特點(diǎn)?
Android提供了五種存取數(shù)據(jù)的方式
1)SharedPreference,存放較少的五種類型的數(shù)據(jù),只能在同一個(gè)包內(nèi)使用,生成XML的格式存放在設(shè)備中;
2)SQLite數(shù)據(jù)庫,存放各種數(shù)據(jù),是一個(gè)輕量級的嵌入式數(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包含三個(gè)部分:
模型(model)對象:是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在該層。 視圖(view)對象:是應(yīng)用程序中負(fù)責(zé)生成用戶界面的部分。也是在整個(gè)mvc架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。
控制器(control)對象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新model對象狀態(tài)的部分,控制器更重要的一種導(dǎo)航功能,響應(yīng)用戶出發(fā)的相關(guān)事件,交給m層處理。
android鼓勵(lì)弱耦合和組件的重用,在android中mvc的具體體現(xiàn)如下:
1)視圖(view):一般采用xml文件進(jìn)行界面的描述,使用的時(shí)候可以非常方便的引入。
2)控制層(controller):android的控制層的重任通常落在了眾多的acitvity的肩上,這句話也就暗含了不要在activity中寫過多的代碼,要通過activity交割model業(yè)務(wù)邏輯層處理,這樣做的另外一個(gè)原因是android中的activity的響應(yīng)時(shí)間是5s,如果耗時(shí)的操作放在這里,程序就很容易被回收掉。
3)模型層(model):對數(shù)據(jù)庫的操作、對網(wǎng)絡(luò)等的操作都應(yīng)該在model里面處理,當(dāng)然對業(yè)務(wù)計(jì)算等操作也是必須放在的該層的。
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對象實(shí)現(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ù)存儲操作是如何簡單,它也只能是存儲方式的一種補(bǔ)充,而無法完全替代如SQLite數(shù)據(jù)庫這樣的其他數(shù)據(jù)存儲方式。
4、描述handler 機(jī)制的原理
andriod提供了 Handler 和 Looper 來滿足線程間的通信。
Handler 先進(jìn)先出原則。Looper類用來管理特定線程內(nèi)對象之間的消息交換(Message Exchange)。
1)Looper: 一個(gè)線程可以產(chǎn)生一個(gè)Looper對象,由它來管理此線程里的Message Queue(消息隊(duì)列)。
2)Handler: 你可以構(gòu)造Handler對象來與Looper溝通,以便push新消息到Message Queue里;或者接收Looper從Message Queue取出)所送來的消息。
3)Message Queue(消息隊(duì)列):用來存放線程放入的消息。
4)線程:UI thread 通常就是main thread,而Android啟動(dòng)程序時(shí)會替它建立一個(gè)Message Queue。
android面試題大全篇三
1、顯式intent和隱式intent的區(qū)別是什么(Android)
Intent定義:Intent是一種在不同組件之間傳遞的請求消息,是應(yīng)用程序發(fā)出的請求和意圖。作為一個(gè)完整的消息傳遞機(jī)制,Intent不僅需要發(fā)送端,還需要接收端。
顯式Intent定義:對于明確指出了目標(biāo)組件名稱的Intent,我們稱之為顯式Intent; 隱式Intent定義:對于沒有明確指出目標(biāo)組件名稱的Intent,則稱之為隱式Intent。 說明:Android系統(tǒng)使用IntentFilter 來尋找與隱式Intent相關(guān)的對象。
2、如何優(yōu)化ListView
1)如果自定義適配器,那么在getView方法中要考慮方法傳進(jìn)來的參數(shù)contentView是否為null,如果為null就創(chuàng)建contentView并返回,如果不為null則直接使用。在這個(gè)方法中盡可能少創(chuàng)建view;
2)給contentView設(shè)置tag(setTag()),傳入一個(gè)viewHolder對象,用于緩存要顯示的數(shù)據(jù),可以達(dá)到圖像數(shù)據(jù)異步加載的效果;
3)如果listview需要顯示的item很多,就要考慮分頁加載。比如一共要顯示100條或者更多的時(shí)候,我們可以考慮先加載20條,等用戶拉到列表底部的時(shí)候再去加載接下來的20條。
3、簡述通過contentResolver獲取ContentProvider內(nèi)容的基本步驟
1)得到ContentResolver類對象:ContentResolver cr = getContentResolver();
2)定義要查詢的字段String數(shù)組;
3)使用cr.query();返回一個(gè)Cursor對象;
4)使用while循環(huán)得到Cursor里面的內(nèi)容。
4、描述4 種 activity 的啟動(dòng)模式
1)standard :系統(tǒng)的默認(rèn)模式,一次跳轉(zhuǎn)即會生成一個(gè)新的實(shí)例。假設(shè)有一個(gè)activity命名為MainActivity,執(zhí)行語句:
startActivity(new Intent(MainActivity.this, MainActivity.class))后,MainActivity將跳轉(zhuǎn)到另外一個(gè)MainActivity,也就是現(xiàn)在的Task棧里面有MainActivity的兩個(gè)實(shí)例。按返回鍵后你會發(fā)現(xiàn)仍然是在MainActivity(第一個(gè))里面。
2)singleTop:singleTop 跟standard 模式比較類似。如果已經(jīng)有一個(gè)實(shí)例位于Activity棧的頂部時(shí),就不產(chǎn)生新的實(shí)例,而只是調(diào)用Activity中的newInstance()方法。如果不位于棧頂,會產(chǎn)生一個(gè)新的實(shí)例。例:當(dāng)MainActivity為 singleTop 模式時(shí),執(zhí)行跳轉(zhuǎn)后棧里面依舊只有一個(gè)實(shí)例,如果現(xiàn)在按返回鍵程序?qū)⒅苯油顺觥?/p>
3)singleTask: singleTask模式和后面的singleInstance模式都是只創(chuàng)建一個(gè)實(shí)例的。在這種模式下,無論跳轉(zhuǎn)的對象是不是位于棧頂?shù)腶ctivity,程序都不會生成一個(gè)新的實(shí)例(當(dāng)然前提是棧里面已經(jīng)有這個(gè)實(shí)例)。這種模式相當(dāng)有用,在以后的多activity開發(fā)中,經(jīng)常會因?yàn)樘D(zhuǎn)的關(guān)系導(dǎo)致同個(gè)頁面生成多個(gè)實(shí)例,這個(gè)在用戶體驗(yàn)上始終有點(diǎn)不好,而如果你將對應(yīng)的activity聲明為 singleTask 模式,這種問題將不復(fù)存在。
4)singleInstance: 設(shè)置為 singleInstance 模式的 activity 將獨(dú)占一個(gè)task(感覺task可以理解為進(jìn)程),獨(dú)占一個(gè)task的activity與其說是activity,倒不如說是一個(gè)應(yīng)用,這個(gè)應(yīng)用與其他activity是獨(dú)立的,它有自己的上下文activity。
看了“android面試題大全”的人還看過:
1.
2.
3.
4.
5.