日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

Android之面试题总结加强版(一)

發(fā)布時(shí)間:2023/12/4 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android之面试题总结加强版(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載:http://blog.csdn.net/itachi85/article/details/7426451

自己總結(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í)會(huì)傳入一個(gè)包含著此activity以前狀態(tài)的包對(duì)象做為參數(shù)。?

總繼之以onStart()。

onStart()

????

onRestart()

activity停止后,在再次啟動(dòng)之前被調(diào)用。?

總繼之以onStart()。

onStart()

onStart()

當(dāng)activity正要變得為用戶所見(jiàn)時(shí)被調(diào)用。?

當(dāng)activity轉(zhuǎn)向前臺(tái)時(shí)繼以onResume(),在activity變?yōu)殡[藏時(shí)繼以onStop()。

onResume()?
or
onStop()

????

onResume()

activity開(kāi)始與用戶進(jìn)行交互之前被調(diào)用。此時(shí)activity位于堆棧頂部,并接受用戶輸入。?

繼之以onPause()。

onPause()

onPause()

當(dāng)系統(tǒng)將要啟動(dòng)另一個(gè)activity時(shí)調(diào)用。此方法主要用來(lái)將未保存的變化進(jìn)行持久化,停止類(lèi)似動(dòng)畫(huà)這樣耗費(fèi)CPU的動(dòng)作等。這一切動(dòng)作應(yīng)該在短時(shí)間內(nèi)完成,因?yàn)橄乱粋€(gè)activity必須等到此方法返回后才會(huì)繼續(xù)。?

當(dāng)activity重新回到前臺(tái)是繼以onResume()。當(dāng)activity變?yōu)橛脩舨豢梢?jiàn)時(shí)繼以onStop()。

onResume()?
or
onStop()

onStop()

當(dāng)activity不再為用戶可見(jiàn)時(shí)調(diào)用此方法。這可能發(fā)生在它被銷(xiāo)毀或者另一個(gè)activity(可能是現(xiàn)存的或者是新的)回到運(yùn)行狀態(tài)并覆蓋了它。?

如果activity再次回到前臺(tái)跟用戶交互則繼以onRestart(),如果關(guān)閉activity則繼以onDestroy()。

onRestart()?
or
onDestroy()

onDestroy()

activity銷(xiāo)毀前調(diào)用。這是activity接收的最后一個(gè)調(diào)用。這可能發(fā)生在activity結(jié)束(調(diào)用了它的?finish()?方法)或者因?yàn)橄到y(tǒng)需要空間所以臨時(shí)的銷(xiāo)毀了此acitivity的實(shí)例時(shí)。你可以用isFinishing()?方法來(lái)區(qū)分這兩種情況。

nothing

2.橫豎屏切換時(shí)候activity的生命周期

1.不設(shè)置Activityandroid:configChanges時(shí),切屏?xí)匦抡{(diào)用各個(gè)生命周期,切橫屏?xí)r會(huì)執(zhí)行一次,切豎屏?xí)r會(huì)執(zhí)行兩次.?

2.設(shè)置Activityandroid:configChanges="orientation"時(shí),切屏還是會(huì)重新調(diào)用各個(gè)生命周期,切橫、豎屏?xí)r只會(huì)執(zhí)行一次.?

3.設(shè)置Activityandroid:configChanges="orientation|keyboardHidden"時(shí),切屏不會(huì)重新調(diào)用各個(gè)生命周期,只會(huì)執(zhí)行onConfigurationChanged方法.

3.android中的動(dòng)畫(huà)有哪幾類(lèi),它們的特點(diǎn)和區(qū)別是什么?

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

4.?一條最長(zhǎng)的短信息約占多少byte?

?  中文70(包括標(biāo)點(diǎn)),英文160個(gè)字節(jié)。

5.handler機(jī)制的原理

  andriod提供了?Handler?和?Looper?來(lái)滿足線程間的通信。Handler?先進(jìn)先出原則。Looper類(lèi)用來(lái)管理特定線程內(nèi)對(duì)象之間的消息交換(Message?Exchange)

  1)Looper:?一個(gè)線程可以產(chǎn)生一個(gè)Looper對(duì)象,由它來(lái)管理此線程里的Message?Queue(消息隊(duì)列)

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

  3)?Message?Queue(消息隊(duì)列):用來(lái)存放線程放入的消息。

  4)線程:UI?thread?通常就是main?thread,而Android啟動(dòng)程序時(shí)會(huì)替它建立一個(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)來(lái)控制生產(chǎn)過(guò)程或?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í)。

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

1、一個(gè)?Android?程序開(kāi)始運(yùn)行時(shí),會(huì)單獨(dú)啟動(dòng)一個(gè)Process
???默認(rèn)情況下,所有這個(gè)程序中的Activity或者Service都會(huì)跑在這個(gè)Process
???默認(rèn)情況下,一個(gè)Android程序也只有一個(gè)Process,但一個(gè)Process下卻可以有許多個(gè)Thread
2、一個(gè)?Android?程序開(kāi)始運(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)該越短越好。而對(duì)于比較費(fèi)時(shí)的工作,應(yīng)該設(shè)法交給子線程去做,以避免阻塞主線程(主線程被阻塞,會(huì)導(dǎo)致程序假死?現(xiàn)象)。?

3Android單線程模型:Android?UI操作并不是線程安全的并且這些操作必須在UI線程中執(zhí)行。如果在子線程中直接修改UI,會(huì)導(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)程,所以說(shuō)可以認(rèn)為是同一個(gè)概念。?

9.sim卡的EF?文件有何作用?

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

10.android中的動(dòng)畫(huà)有哪幾類(lèi),它們的特點(diǎn)和區(qū)別是什么??

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

11.Activity變成一個(gè)窗口:Activity屬性設(shè)定?

  講點(diǎn)輕松的吧,可能有人希望做出來(lái)的應(yīng)用程序是一個(gè)漂浮在手機(jī)主界面的東西,那么很?簡(jiǎn)單你只需要設(shè)置?一下Activity的主題就可以了在AndroidManifest.xml?中定義?Activity的?地方一句話:?

  Xml代碼?

  1.?android?:theme="@android:style/Theme.Dialog"?

  這就使你的應(yīng)用程序變成對(duì)話框的形式彈出來(lái)了,或者?

  Xml代碼?

  1.?android:theme="@android:style/Theme.Translucent"?

  就變成半透明的,[友情提示-.-]類(lèi)似的這種activity的屬性可以在android.R.styleable?類(lèi)的AndroidManifestActivity?方法中看到,AndroidManifest.xml中所有元素的屬性的介紹都可以參考這個(gè)類(lèi)android.R.styleable?

  上面說(shuō)的是屬性名稱(chēng),具體有什么值是在android.R.style中?可以看到,比如這個(gè)"@android:style/Theme.Dialog"?就對(duì)應(yīng)于android.R.style.Theme_Dialog?,('_'換成'.'?<?--注意:這個(gè)是文章內(nèi)容不是笑臉)就可以用在描述文件?中了,找找類(lèi)定義和描述文件中的對(duì)應(yīng)關(guān)系就都明白了。?

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

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

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

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

14.在androidmvc的具體體現(xiàn)

Android?的官方建議應(yīng)用程序的開(kāi)發(fā)采用MVC?模式。何謂MVC?先看看下圖

MVC?Model,View,Controller?的縮寫(xiě),從上圖可以看出MVC?包含三個(gè)部分:

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

層。

..?視圖(View)對(duì)象:是應(yīng)用程序中負(fù)責(zé)生成用戶界面的部分。也是在整個(gè)

MVC?架構(gòu)中用戶唯一可以看到的一層,接收用戶的輸入,顯示處理結(jié)果。

..?控制器(Control)對(duì)象:是根據(jù)用戶的輸入,控制用戶界面數(shù)據(jù)顯示及更新

Model?對(duì)象狀態(tài)的部分,控制器更重要的一種導(dǎo)航功能,想用用戶出發(fā)的相

關(guān)事件,交給M?哦得了處理。

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

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

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

  3)模型層(model):對(duì)數(shù)據(jù)庫(kù)的操作、對(duì)網(wǎng)絡(luò)等的操作都應(yīng)該在model里面處理,當(dāng)然對(duì)業(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)行庫(kù)層和linux核心層。

  1.應(yīng)用程序

  Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語(yǔ)言編寫(xiě)的。

  2.應(yīng)用程序框架

  開(kāi)發(fā)人員也可以完全訪問(wèn)核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡(jiǎn)化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過(guò)得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。

  隱藏在每個(gè)應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),?其中包括;

  *?豐富而又可擴(kuò)展的視圖(Views),可以用來(lái)構(gòu)建應(yīng)用程序,?它包括列表(lists),網(wǎng)格(grids),文本框(text?boxes),按鈕(buttons),?甚至可嵌入的web瀏覽器。

  *?內(nèi)容提供器(Content?Providers)使得應(yīng)用程序可以訪問(wèn)另一個(gè)應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫(kù)),?或者共享它們自己的數(shù)據(jù)

  *?資源管理器(Resource?Manager)提供?非代碼資源的訪問(wèn),如本地字符串,圖形,和布局文件(?layout?files?)

  *?通知管理器?(Notification?Manager)?使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。

  *?活動(dòng)管理器(?Activity?Manager)?用來(lái)管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。

  有關(guān)更多的細(xì)節(jié)和怎樣從頭寫(xiě)一個(gè)應(yīng)用程序,請(qǐng)參考?如何編寫(xiě)一個(gè)?Android?應(yīng)用程序.

  3.系統(tǒng)運(yùn)行庫(kù)

  1)程序庫(kù)

  Android?包含一些C/C++庫(kù),這些庫(kù)能被Android系統(tǒng)中不同的組件使用。它們通過(guò)?Android?應(yīng)用程序框架為開(kāi)發(fā)者提供服務(wù)。以下是一些核心庫(kù):

  *?系統(tǒng)?C?庫(kù)?-?一個(gè)從?BSD?繼承來(lái)的標(biāo)準(zhǔn)?C?系統(tǒng)函數(shù)庫(kù)(?libc?),?它是專(zhuān)門(mén)為基于?embedded?linux?的設(shè)備定制的。

  *?媒體庫(kù)?-?基于?PacketVideo?OpenCORE;該庫(kù)支持多種常用的音頻、視頻格式回放和錄制,同時(shí)支持靜態(tài)圖像文件。編碼格式包括MPEG4,?H.264,?MP3,?AAC,?AMR,?JPG,?PNG?

  *?Surface?Manager?-?對(duì)顯示子系統(tǒng)的管理,并且為多個(gè)應(yīng)用程序提?供了2D3D圖層的無(wú)縫融合。

  *?LibWebCore?-?一個(gè)最新的web瀏覽器引擎用,支持Android瀏覽器和一個(gè)可嵌入的web視圖。

  *?SGL?-?底層的2D圖形引擎

  *?3D?libraries?-?基于OpenGL?ES?1.0?APIs實(shí)現(xiàn);該庫(kù)可以使用硬件?3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。

  *?FreeType?-位圖(bitmap)和矢量(vector)字體顯示。

  *?SQLite?-?一個(gè)對(duì)于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫(kù)引擎。

  2)Android?運(yùn)行庫(kù)

  Android?包括了一個(gè)核心庫(kù),該核心庫(kù)提供了JAVA編程語(yǔ)言核心庫(kù)的大多數(shù)功能。

  每一個(gè)Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個(gè)獨(dú)立的Dalvik虛擬機(jī)實(shí)例。Dalvik被設(shè)計(jì)成一個(gè)設(shè)備可以同時(shí)高效地運(yùn)行多個(gè)虛擬系統(tǒng)。?Dalvik虛擬機(jī)執(zhí)行(.dex)Dalvik可執(zhí)行文件,該格式文件針對(duì)小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類(lèi)都經(jīng)由JAVA編譯器編譯,然后通過(guò)SDK中?的?“dx”?工具轉(zhuǎn)化成.dex格式由虛擬機(jī)執(zhí)行。

  Dalvik虛擬機(jī)依賴(lài)于linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。

  4.Linux?內(nèi)核

Android?的核心系統(tǒng)服務(wù)依賴(lài)于?Linux?2.6?內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,?網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。?Linux?內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。


總結(jié)

以上是生活随笔為你收集整理的Android之面试题总结加强版(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 熟妇高潮一区二区高潮 | 国产精品1区 | 成年人色片 | 亚洲午夜久久久久久久国产 | 免费在线观看黄色av | 综合精品一区 | 欧美激情在线狂野欧美精品 | 在线你懂的视频 | 精品久久久免费 | 四虎影院永久地址 | 精彩视频一区二区三区 | 乱图区| 精品国产一区二区不卡 | a毛片在线观看 | 999国产| 久久成人一区二区 | 91视频色版 | 天天操女人 | 韩国视频一区 | 无码人妻丰满熟妇区毛片蜜桃精品 | 三日本三级少妇三级99 | 久久久久无码精品国产 | 激情婷婷小说 | 欧美激情电影一区二区 | 一级黄色伦理片 | 猛1被调教成公厕尿便失禁网站 | 亚洲激情自拍偷拍 | 国产激情二区 | 91私密视频 | 欧美成人免费看 | 国产中文字幕精品 | 亚洲欧美另类日韩 | 青青伊人国产 | www.自拍| 欧美亚洲综合视频 | 日韩中文字幕精品 | 在线看片你懂的 | 99欧美精品 | 日本成人激情 | 久久亚洲一区 | 亚洲精品91在线 | 性高湖久久久久久久久aaaaa | 黄色免费在线观看视频 | 99久久久无码国产精品免费 | 亚洲精品激情视频 | 免费观看视频一区 | 精品视频大全 | 亚洲综合五月 | 亚洲福利一区二区 | 91麻豆国产在线 | 一级全黄裸体免费视频 | 欧美亚洲一区二区在线观看 | 国产碰碰| 99久久亚洲精品 | 激情综合视频 | 麻豆视频网站在线观看 | 国产精品久久一 | 哺乳喂奶一二三区乳 | 欧美性猛交xxxx乱大交3 | 少妇三级全黄 | 色94色欧美 | 香蕉视频91| 小向美奈子在线观看 | 美女激情av | 久久乐国产精品 | 欧美xxxx胸大 | 曰女同女同中文字幕 | 人人澡超碰碰97碰碰碰 | 黑丝少妇喷水 | 国产成人精品视频在线观看 | 亚洲高清在线 | 息与子五十路翔田千里 | 婷婷综合网 | 调教丰满的已婚少妇在线观看 | 91精品国产综合久久久久 | 国产吧在线 | 免费av的网站| 好吊妞无缓冲视频观看 | 天天干天天做 | 五月婷六月 | 色蜜桃av| 欧美性插视频 | 波多野结衣乳巨码无在线 | 性欧美在线视频 | 北条麻妃一区二区三区 | 少妇久久久久久 | 四虎色| 五月婷在线观看 | 国产精品不卡 | 国产精品久久久久久中文字 | 蜜乳av懂色av粉嫩av | 亚洲av成人精品一区二区三区 | 真实的国产乱xxxx在线91 | 毛茸茸free性熟hd | 先锋影音资源av | 操极品少妇 | 亚洲福利在线观看 | 四虎久久久 | 日本五十路 |