![Android面試題總結(jié)強(qiáng)勁版(一)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/13cf1f97-4e77-4061-9bc5-47771bcb680b/13cf1f97-4e77-4061-9bc5-47771bcb680b1.gif)
![Android面試題總結(jié)強(qiáng)勁版(一)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/13cf1f97-4e77-4061-9bc5-47771bcb680b/13cf1f97-4e77-4061-9bc5-47771bcb680b2.gif)
![Android面試題總結(jié)強(qiáng)勁版(一)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/13cf1f97-4e77-4061-9bc5-47771bcb680b/13cf1f97-4e77-4061-9bc5-47771bcb680b3.gif)
![Android面試題總結(jié)強(qiáng)勁版(一)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/13cf1f97-4e77-4061-9bc5-47771bcb680b/13cf1f97-4e77-4061-9bc5-47771bcb680b4.gif)
![Android面試題總結(jié)強(qiáng)勁版(一)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/6/13cf1f97-4e77-4061-9bc5-47771bcb680b/13cf1f97-4e77-4061-9bc5-47771bcb680b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、android面試題總結(jié)加強(qiáng)版(一)自己總結(jié)的最強(qiáng)android應(yīng)用面試題集1.activity的生命周期。方法描述可被殺死下一個(gè)onCreate()在activity第一次被創(chuàng)建的時(shí)候調(diào)用。這里是你做所有初始化設(shè)置的地方創(chuàng)建視圖、綁定數(shù)據(jù)至列表等。如果曾經(jīng)有狀態(tài)記錄(參閱后述Saving Activity State。),則調(diào)用此方法時(shí)會傳入一個(gè)包含著此activity以前狀態(tài)的包對象做為參數(shù)。 總繼之以onStart()。否onStart() onRestart()在activity停止后,在再次啟動之前被調(diào)用。&
2、#160;總繼之以onStart()。否onStart()onStart()當(dāng)activity正要變得為用戶所見時(shí)被調(diào)用。 當(dāng)activity轉(zhuǎn)向前臺時(shí)繼以onResume(),在activity變?yōu)殡[藏時(shí)繼以onStop()。否onResume() oronStop() onResume()在activity開始與用戶進(jìn)行交互之前被調(diào)用。此時(shí)activity位于堆棧頂部,并接受用戶輸入。 繼之以onPause()。否onPause()onPause()當(dāng)系統(tǒng)將要啟動另一個(gè)activity時(shí)調(diào)用。此方法主要用來將未保存
3、的變化進(jìn)行持久化,停止類似動畫這樣耗費(fèi)CPU的動作等。這一切動作應(yīng)該在短時(shí)間內(nèi)完成,因?yàn)橄乱粋€(gè)activity必須等到此方法返回后才會繼續(xù)。 當(dāng)activity重新回到前臺是繼以onResume()。當(dāng)activity變?yōu)橛脩舨豢梢姇r(shí)繼以onStop()。是onResume() oronStop()onStop()當(dāng)activity不再為用戶可見時(shí)調(diào)用此方法。這可能發(fā)生在它被銷毀或者另一個(gè)activity(可能是現(xiàn)存的或者是新的)回到運(yùn)行狀態(tài)并覆蓋了它。 如果activity再次回到前臺跟用戶交互則繼以onRestart(),如果關(guān)閉activity則繼以onDe
4、stroy()。是onRestart() oronDestroy()onDestroy()在activity銷毀前調(diào)用。這是activity接收的最后一個(gè)調(diào)用。這可能發(fā)生在activity結(jié)束(調(diào)用了它的 finish() 方法)或者因?yàn)橄到y(tǒng)需要空間所以臨時(shí)的銷毀了此acitivity的實(shí)例時(shí)。你可以用isFinishing() 方法來區(qū)分這兩種情況。是nothing2.橫豎屏切換時(shí)候activity的生命周期1.不設(shè)置Activity的android:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期,切橫屏?xí)r會執(zhí)行一次,切豎屏?xí)r會執(zhí)行兩次.
5、160;2.設(shè)置Activity的android:configChanges="orientation"時(shí),切屏還是會重新調(diào)用各個(gè)生命周期,切橫、豎屏?xí)r只會執(zhí)行一次. 3.設(shè)置Activity的android:configChanges="orientation|keyboardHidden"時(shí),切屏不會重新調(diào)用各個(gè)生命周期,只會執(zhí)行onConfigurationChanged方法.4. 一條最長的短信息約占多少byte? 中文70(包括標(biāo)點(diǎn)),英文160個(gè)字節(jié)。5.handler機(jī)制的原理andriod提供了 H
6、andler 和 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)
7、60;Message Queue(消息隊(duì)列):用來存放線程放入的消息。4)線程:UI thread 通常就是main thread,而Android啟動程序時(shí)會替它建立一個(gè)Message Queue。 6.什么是嵌入式實(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è)備、&
8、#160;航空航天等領(lǐng)域?qū)ο到y(tǒng)的響應(yīng)時(shí)間有苛刻的要求,這就需要使用實(shí)時(shí)系統(tǒng)。又可分為軟實(shí)時(shí)和硬實(shí)時(shí)兩種,而android是基于linux內(nèi)核的,因此屬于軟實(shí)時(shí)。7.android中線程與線程,進(jìn)程與進(jìn)程之間如何通信1、一個(gè) Android 程序開始運(yùn)行時(shí),會單獨(dú)啟動一個(gè)Process。 默認(rèn)情況下,所有這個(gè)程序中的Activity或者Service都會跑在這個(gè)Process。 默認(rèn)情況下,一個(gè)Android程序也只有一個(gè)Process,但一個(gè)Process下卻可以有許多個(gè)Thread。2、一個(gè) A
9、ndroid 程序開始運(yùn)行時(shí),就有一個(gè)主線程Main Thread被創(chuàng)建。該線程主要負(fù)責(zé)UI界面的顯示、更新和控件交互,所以又叫UI Thread。 一個(gè)Android程序創(chuàng)建之初,一個(gè)Process呈現(xiàn)的是單線程模型-即Main Thread,所有的任務(wù)都在一個(gè)線程中運(yùn)行。所以,Main Thread所調(diào)用的每一個(gè)函數(shù),其耗時(shí)應(yīng)該越短越好。而對于比較費(fèi)時(shí)的工作,應(yīng)該設(shè)法交給子線程去做,以避免阻塞主線程(主線程被阻塞,會導(dǎo)致程序假死 現(xiàn)象)。 3、Android單線程模型:Android
10、160;UI操作并不是線程安全的并且這些操作必須在UI線程中執(zhí)行。如果在子線程中直接修改UI,會導(dǎo)致異常。8.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è)概念。 9.sim卡的EF 文件有何作用 sim卡的文件系統(tǒng)有自己規(guī)范,主要是為了和手機(jī)通訊,sim本 身可以有自己的操作系統(tǒng),EF就是作
11、存儲并和手機(jī)通訊用的 11.讓Activity變成一個(gè)窗口:Activity屬性設(shè)定 講點(diǎn)輕松的吧,可能有人希望做出來的應(yīng)用程序是一個(gè)漂浮在手機(jī)主界面的東西,那么很 簡單你只需要設(shè)置 一下Activity的主題就可以了在AndroidManifest.xml 中定義 Activity的 地方一句話: Xml代碼 1. android :theme="android:style/Theme.Dialog" 這就使你的應(yīng)用程序變成對話框的形式彈出來了,或者
12、160;Xml代碼 1. android:theme="android:style/Theme.Translucent" 就變成半透明的,友情提示-.-類似的這種activity的屬性可以在android.R.styleable 類的AndroidManifestActivity 方法中看到,AndroidManifest.xml中所有元素的屬性的介紹都可以參考這個(gè)類android.R.styleable 上面說的是屬性名稱,具體有什么值是在android.R.style中 可以看到,比如這個(gè)"
13、android:style/Theme.Dialog" 就對應(yīng)于android.R.style.Theme_Dialog ,('_'換成'.' < -注意:這個(gè)是文章內(nèi)容不是笑臉)就可以用在描述文件 中了,找找類定義和描述文件中的對應(yīng)關(guān)系就都明白了。 12.如何將SQLite數(shù)據(jù)庫(dictionary.db文件)與apk文件一起發(fā)布? 解答:可以將dictionary.db文件復(fù)制到Eclipse Android工程中的res aw目錄中。所有在res
14、160;aw目錄中的文件不會被壓縮,這樣可以直接提取該目錄中的文件。可以將dictionary.db文件復(fù)制到res aw目錄中 13.如何將打開res aw目錄中的數(shù)據(jù)庫文件? 解答:在Android中不能直接打開res aw目錄中的數(shù)據(jù)庫文件,而需要在程序第一次啟動時(shí)將該文件復(fù)制到手機(jī)內(nèi)存或SD卡的某個(gè)目錄中,然后再打開該數(shù)據(jù)庫文件。復(fù)制的基本方法是使用getResources().openRawResource方法獲得res aw目錄中資源的 InputStream對象,然后將該InputStream對象中的數(shù)據(jù)寫入其
15、他的目錄中相應(yīng)文件中。在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法來打開任意目錄中的SQLite數(shù)據(jù)庫文件。 14.在android中mvc的具體體現(xiàn)Android 的官方建議應(yīng)用程序的開發(fā)采用MVC 模式。何謂MVC?先看看下圖MVC 是Model,View,Controller 的縮寫,從上圖可以看出MVC 包含三個(gè)部分:. 模型(Model)對象:是應(yīng)用程序的主體部分,所有的業(yè)務(wù)邏輯都應(yīng)該寫在該層。. 視圖(View)對象:是應(yīng)用程序中
16、負(fù)責(zé)生成用戶界面的部分。也是在整個(gè)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)行界面的描述,使用的時(shí)候可以非常方便的引入,當(dāng)然,如何你對android了解的比較的多了話,就一定可 以想到在an
17、droid中也可以使用javascript+html等的方式作為view層,當(dāng)然這里需要進(jìn)行java和javascript之間的通 信,幸運(yùn)的是,android提供了它們之間非常方便的通信實(shí)現(xiàn)。2)控制層(controller):android的控制層的重 任通常落在了眾多的acitvity的肩上,這句話也就暗含了不要在acitivity中寫代碼,要通過activity交割model業(yè)務(wù)邏輯層處理, 這樣做的另外一個(gè)原因是android中的acitivity的響應(yīng)時(shí)間是5s,如果耗時(shí)的操作放在這里,程序就很容易被回收掉。3)模型層(model):對數(shù)據(jù)庫的操作、對
18、網(wǎng)絡(luò)等的操作都應(yīng)該在model里面處理,當(dāng)然對業(yè)務(wù)計(jì)算等操作也是必須放在的該層的。15.Android系統(tǒng)的架構(gòu)android的系統(tǒng)架構(gòu)和其操作系統(tǒng)一樣,采用了分層的架構(gòu)。從架構(gòu)圖看,android分為四個(gè)層,從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和linux核心層。1.應(yīng)用程序Android會同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。2.應(yīng)用程序框架開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個(gè)應(yīng)用
19、程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng), 其中包括;* 豐富而又可擴(kuò)展的視圖(Views),可以用來構(gòu)建應(yīng)用程序, 它包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons), 甚至可嵌入的web瀏覽器。* 內(nèi)容提供器(Content Providers)使得應(yīng)用程序可以訪問另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),
20、;或者共享它們自己的數(shù)據(jù)* 資源管理器(Resource Manager)提供 非代碼資源的訪問,如本地字符串,圖形,和布局文件( layout files )。* 通知管理器 (Notification Manager) 使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。* 活動管理器( Activity Manager) 用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。有關(guān)更多的細(xì)節(jié)和怎樣從頭寫一個(gè)應(yīng)用程序,請參考 如何編寫一個(gè) A
21、ndroid 應(yīng)用程序.3.系統(tǒng)運(yùn)行庫1)程序庫Android 包含一些C/C+庫,這些庫能被Android系統(tǒng)中不同的組件使用。它們通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些核心庫:* 系統(tǒng) C 庫 - 一個(gè)從 BSD 繼承來的標(biāo)準(zhǔn) C 系統(tǒng)函數(shù)庫( libc ), 它是專門為基于 embedded linux 的設(shè)備定制的。* 媒體庫 - 基于 PacketVideo OpenCORE;該庫支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。* Surface Manager - 對顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提 供了2D和3D圖層的無縫融合。* LibWebCore - 一個(gè)最新的web瀏覽
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度城市供水排水工程承包合同書范本
- 2025年度國際食品飲料代理銷售合同
- 2025年度公路施工質(zhì)量檢測合同范本
- 2019-2025年中國勞動保護(hù)服行業(yè)市場調(diào)研分析及投資戰(zhàn)略咨詢報(bào)告
- 2025年度建筑廢棄物綜合利用合同范本-@-2
- 2025年度合同終止重簽協(xié)議:環(huán)境治理與污染修復(fù)合同
- 2025年陶瓷生產(chǎn)成套設(shè)備項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度餐飲行業(yè)廣告招商代理全面合作協(xié)議
- 2025年度家電產(chǎn)品進(jìn)出口貿(mào)易合同-@-2
- 2025年度租賃車輛保險(xiǎn)及保養(yǎng)服務(wù)合同
- 政府資金項(xiàng)目(榮譽(yù))申報(bào)獎勵辦法
- JJF 1069-2012 法定計(jì)量檢定機(jī)構(gòu)考核規(guī)范(培訓(xùn)講稿)
- 最新如何進(jìn)行隔代教育專業(yè)知識講座課件
- 當(dāng)前警察職務(wù)犯罪的特征、原因及防范,司法制度論文
- 計(jì)算機(jī)文化基礎(chǔ)單元設(shè)計(jì)-windows
- 創(chuàng)建動物保護(hù)家園-完整精講版課件
- 廣東省保安服務(wù)監(jiān)管信息系統(tǒng)用戶手冊(操作手冊)
- DNA 親子鑒定手冊 模板
- DB33T 1233-2021 基坑工程地下連續(xù)墻技術(shù)規(guī)程
- 天津 建設(shè)工程委托監(jiān)理合同(示范文本)
- 部編一年級語文下冊教材分析
評論
0/150
提交評論