【Android面试】Android面试题集锦 (陆续更新)
【Android面試】Android面試題集錦 (陸續(xù)更新)
分類:?【雜七雜八】2011-05-11 17:58?2064人閱讀?評(píng)論(0)?收藏?舉報(bào)?
一些常見(jiàn)的Android面試基礎(chǔ)題做下總結(jié),看看你能做出多少道?
?
??1. Intent的幾種有關(guān)Activity啟動(dòng)的方式有哪些,你了解每個(gè)含義嗎?
?
?
?? ?這里Android123提示大家,Intent的一些標(biāo)記有FLAG_ACTIVITY_BROUGHT_TO_FRONT 、FLAG_ACTIVITY_CLEAR_TOP、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET、FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS、FLAG_ACTIVITY_MULTIPLE_TASK和FLAG_ACTIVITY_NEW_TASK 等。每種含義大家看SDK文檔和具體跑下這樣你的記憶會(huì)更深刻些。
?
?
??2. Activity和Task的啟動(dòng)模式有哪些? 每種含義是什么?
?
?
?? 有關(guān)在AndroidManifest.xml中的android:launchMode定義,主要有standard、singleTop、singleTask和singleInstance,同時(shí)對(duì)于android:taskAffinity這些問(wèn)題大家也要了解,Android開(kāi)發(fā)網(wǎng)在以前的文章中講過(guò),不過(guò)很多開(kāi)發(fā)者仍然不是很清楚,這些基礎(chǔ)問(wèn)題我們以后仍然會(huì)再次總結(jié)。
?
?? 關(guān)于Activity的啟動(dòng)模式,參考:?http://blog.csdn.net/feng88724/archive/2011/05/11/6412638.aspx
?
??3. 通過(guò)Intent傳遞一些二進(jìn)制數(shù)據(jù)的方法有哪些?
?
?
?? 1). 使用Serializable接口實(shí)現(xiàn)序列化,這是Java常用的方法。
?? 2). 實(shí)現(xiàn)Parcelable接口,這里Android的部分類比如Bitmap類就已經(jīng)實(shí)現(xiàn)了,同時(shí)Parcelable在Android AIDL中交換數(shù)據(jù)也很常見(jiàn)的。
?
?
??4. 能說(shuō)下Android應(yīng)用的入口點(diǎn)嗎?
?
?
??真正的Android入口點(diǎn)是application的main,你可以看下androidmanifest.xml的包含關(guān)系就清楚了。 可以沒(méi)有Activity但是必須有Application
?
?
?
??5. Android都有哪些XML解析器,都熟練掌握嗎?
?
?
??這里XmlPull、SAX和DOM相信做過(guò)Web開(kāi)發(fā)的都已經(jīng)滾瓜爛熟了。
?
?
?
??6. SQLite支持事務(wù)嗎? 添加刪除如何提高性能?
?
?
??SQLite作為輕量級(jí)的數(shù)據(jù)庫(kù),比MySQL還小,但支持SQL語(yǔ)句查詢,提高性能可以考慮通過(guò)原始經(jīng)過(guò)優(yōu)化的SQL查詢語(yǔ)句方式處理。
?
?
?
??7. Android Service和Binder、AIDL你都熟練嗎?
?
?
??作為Android重要的后臺(tái)服務(wù),這些每個(gè)Android開(kāi)發(fā)者都應(yīng)該掌握,這也算是和Java SE最大的不同了,具體的實(shí)例大家可以查看Android音樂(lè)播放器的源代碼Music.git中的,這里不再贅述。
?
?
??8. 你用過(guò)哪款A(yù)ndroid手機(jī),有哪些優(yōu)點(diǎn)和不足,相對(duì)于iPhone或Symbian又有哪些優(yōu)缺點(diǎn)?
?
?
?? 把這個(gè)作為面試題也是考察下,可以大概了解到它對(duì)Android的了解程度,多移動(dòng)開(kāi)發(fā)的認(rèn)識(shí)。
?
?
【2011-5-12 補(bǔ)充】
?
1.????請(qǐng)描述下Activity的生命周期。
???創(chuàng)建?oncreate -??啟動(dòng)onstart –?恢復(fù)?onResume –?暫停?onPause –?結(jié)束?onEnd –?銷毀onDestroy
?
2.????如果后臺(tái)的Activity由于某原因被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當(dāng)前狀態(tài)?
?? ?在”暫停?onPause”?狀態(tài)將數(shù)據(jù)保存。
?
3.????如何將一個(gè)Activity設(shè)置成窗口的樣式。
???設(shè)置Theme。
?
?
4.????如何退出Activity?如何安全退出已調(diào)用多個(gè)Activity的Application?
?? ?
5.????請(qǐng)介紹下Android中常用的五種布局。
?? ?線性布局LinearLayout, 相對(duì)布局?RelativeLayout
????表單布局?TableLayout,??絕對(duì)布局AbsLayout(已淘汰)
????幀布局FrameLayout
?
6.????請(qǐng)介紹下Android的數(shù)據(jù)存儲(chǔ)方式。
?? ?Preference,文件,數(shù)據(jù)庫(kù)SQlite,網(wǎng)絡(luò)存儲(chǔ)
?
?
7.????請(qǐng)介紹下ContentProvider是如何實(shí)現(xiàn)數(shù)據(jù)共享的。
??
8.????如何啟用Service,如何停用Service。
?? ??啟動(dòng):?Context.startService()?and?Context.bindService().
?? ? ?關(guān)閉:?Context.stopService().
?? ? ? ? ? Service.stopSelf()?or?Service.stopSelfResult()
?
9.????注冊(cè)廣播有幾種方式,這些方式有何優(yōu)缺點(diǎn)?請(qǐng)談?wù)凙ndroid引入廣播機(jī)制的用意。
?
10.????請(qǐng)解釋下在單線程模型中Message、Handler、Message Queue、Looper之間的關(guān)系。
???
11.??? AIDL的全稱是什么?如何工作?能處理哪些類型的數(shù)據(jù)?
???
12.????請(qǐng)解釋下Android程序運(yùn)行時(shí)權(quán)限與文件系統(tǒng)權(quán)限的區(qū)別。(Edited by Sodino)
???
13.????系統(tǒng)上安裝了多種瀏覽器,能否指定某瀏覽器訪問(wèn)指定頁(yè)面?請(qǐng)說(shuō)明原由。
???
14.????有一個(gè)一維整型數(shù)組int[]data保存的是一張寬為width,高為height的圖片像素值信息。請(qǐng)寫一個(gè)算法,將該圖片所有的白色不透明(0xffffffff)像素點(diǎn)的透明度調(diào)整為50%。
???
15.????你如何評(píng)價(jià)Android系統(tǒng)?優(yōu)缺點(diǎn)。 (這一題重復(fù)了)
?? ? ? ?優(yōu)勢(shì):??一、開(kāi)放性 三、豐富的硬件選擇 五、無(wú)縫結(jié)合的Google應(yīng)用支持
?
?? ? ? ?缺點(diǎn): ?一、安全和隱私??二,開(kāi)發(fā)商自定義,不夠統(tǒng)一 四、同類機(jī)型用戶減少
?
?
?
?
【2011-5-12 補(bǔ)充】
?
1、什么是ANR?如何避免它?
?
?http://blog.csdn.net/Zengyangtech/archive/2010/11/21/6025671.aspx
?
2、什么情況會(huì)導(dǎo)致Force Close??如何避免?能否捕獲導(dǎo)致其的異常?
?
?
3、Android本身的api并未聲明會(huì)拋出異常,則其在運(yùn)行時(shí)有無(wú)可能拋出runtime異常,你遇到過(guò)嗎?諾有的話會(huì)導(dǎo)致什么問(wèn)題?如何解決?
?
???????會(huì)有運(yùn)行時(shí)異常, 運(yùn)行時(shí)異常無(wú)需捕捉
?
?
4、簡(jiǎn)要解釋一下activity、?intent?、intent filter、service、Broadcast、BroadcaseReceiver
?
?? ? ? 這個(gè)問(wèn)題問(wèn)的很普遍,自己多看看吧。在此不多說(shuō)了!
?
5、IntentService有何優(yōu)點(diǎn)?
?? ? ?
?
【2011-5-12 補(bǔ)充】
1.?android:paddingLeft與android:layout_marginLeft的區(qū)別
當(dāng)按鈕分別設(shè)置以上兩個(gè)屬性時(shí),得到的效果是不一樣的。
android:paddingLeft="30px"
按鈕上設(shè)置的內(nèi)容(例如圖片)離按鈕左邊邊界30個(gè)像素
android:layout_marginLeft="30px"
整個(gè)按鈕離左邊設(shè)置的內(nèi)容30個(gè)像素
?
2. Android?動(dòng)畫(huà)有哪幾種??描述一下
???????兩種。?Tween動(dòng)畫(huà)和Frame動(dòng)畫(huà)。?Tween動(dòng)畫(huà)主要是透明度、尺寸伸縮、旋轉(zhuǎn)、位移等效果。
Frame動(dòng)畫(huà)可以理解成gif, 一幀一幀的顯示圖片。比較常用的有滾動(dòng)條效果。
?
3.?對(duì)Intent、Activity、廣播、Service等的理解。
?
4.?哪些情況下會(huì)發(fā)生ANR ??怎么對(duì)應(yīng) ? (這個(gè)問(wèn)題也重復(fù)了)
?????? Application Not Response。
??????
5.?隱式、顯式Intent的區(qū)別
·???顯式意圖??通過(guò)名字指明目標(biāo)組件(這個(gè)組件名字字段component name field,?前面提到過(guò),?有一個(gè)數(shù)值集)。既然組件名稱通常不為其他應(yīng)用程序的開(kāi)發(fā)者所了解,顯式意圖典型的被用作應(yīng)用程序的內(nèi)部消息-例如一個(gè)活動(dòng)啟動(dòng)一個(gè)附屬服務(wù)或姊妹活動(dòng)。
?? 隱式意圖??不命名目標(biāo)組件(組件名稱字段為空)。隱式意圖經(jīng)常用來(lái)激活其他應(yīng)用程序的組件。?
?? ?這一塊參考Intent說(shuō)明,可以同時(shí)看一下Notepad的例子, 幫助理解,個(gè)人感覺(jué)很重要!
?
(上面幾個(gè)問(wèn)題感覺(jué)都不錯(cuò),各位自己查漏補(bǔ)缺吧! 有些還沒(méi)有寫答案的, 各位有空可以回答一下~ 我會(huì)將你的答案填充上去)
?
轉(zhuǎn)載于:https://www.cnblogs.com/tanqiantot/archive/2012/11/27/3126834.html
總結(jié)
以上是生活随笔為你收集整理的【Android面试】Android面试题集锦 (陆续更新)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 手把手玩转win8开发系列课程(2)
- 下一篇: 代码生成那点事