亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

安卓面試總結(jié)

時(shí)間:2022-04-18 11:44:11 招聘與面試 我要投稿
  • 相關(guān)推薦

安卓面試總結(jié)

Android面試總結(jié)

安卓面試總結(jié)

1. Activity和Task的啟動(dòng)模式有哪些 ?

在android里,有4種activity的啟動(dòng)模式分別為:

1. standard(默認(rèn))

“standard”對(duì)于每一個(gè)啟動(dòng)Intent都會(huì)生成一個(gè)activity的新實(shí)例,每個(gè)Instance處理一個(gè)單個(gè)的Intent。

2. singleTop

“singleTop”的activity如果在目標(biāo)task的棧頂?shù)脑,則不生成新的該activity的實(shí)例,直接使用棧頂?shù)膶?shí)例,否則,生成該activity的實(shí)例。

3. singleTask

"singleTask"的 activity 允許別的 activities 位于其所在的task中。該activity位于活動(dòng)棧stack根部,其他activity并且可以在這個(gè)棧中運(yùn)行。

4. singleInstance

"singleInstance"的activity不允許其它的activitise成為其所在的 task的一部分。無(wú)論在什么情況下“singleInstance”都會(huì)獨(dú)占一個(gè)task。

2. Intent的幾種有關(guān)Activity啟動(dòng)的方式有哪些,你了解每個(gè)含義嗎?

FLAG_ACTIVITY_MULTIPLE_TASK

FLAG_ACTIVITY_SINGLE_TOP FLAG_ACTIVITY_NEW_TASK

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,你可以看下http://m.emrowgh.com的包含關(guān)系就清楚了。 可以沒(méi)有Activity但是必須有Application。

5. Android都有哪些XML解析器,都熟練掌握嗎

XML解析有三種方式,SAX,DOM,PULL。常規(guī)在PC上開發(fā)我們使用DOM相對(duì)輕松些,DOM方式的解析會(huì)把整個(gè)XML加載到內(nèi)存中進(jìn)行解析。但一些性能敏感的數(shù)據(jù)庫(kù)或者手機(jī)主要采用SAX方式,SAX讀取是單向的,優(yōu)點(diǎn)是不占內(nèi)存空間、解析屬性方便,但對(duì)于嵌套多個(gè)分支來(lái)處理很不方便。PULL常常用在J2ME對(duì)于節(jié)點(diǎn)處理比較好,類似SAX方式,同樣很節(jié)省內(nèi)存。

6. SQLite支持事務(wù)嗎 添加刪除如何提高性能

SQLite支持事務(wù)。SQLite作為輕量級(jí)的數(shù)據(jù)庫(kù),比MySQL還小,但支持SQL語(yǔ)句查詢,提高性能可以考慮通過(guò)原始經(jīng)過(guò)優(yōu)化的SQL查詢語(yǔ)句方式處理。

7. 談?wù)剬?duì)Binder的理解

8. 你用過(guò)哪款A(yù)ndroid手機(jī),有哪些優(yōu)點(diǎn)和不足,相對(duì)于iPhone或Symbian又有哪些優(yōu)缺點(diǎn)

1. 請(qǐng)描述下Activity的生命周期。

創(chuàng)建 oncreate -啟動(dòng)onstart – 恢復(fù) onResume – 暫停 onPause – 結(jié)束 onStop – 銷毀onDestroy

2. 如果后臺(tái)的Activity由于某原因被系統(tǒng)回收了,如何在被系統(tǒng)回收之前保存當(dāng)前狀態(tài)?

在系統(tǒng)回收或者用戶調(diào)用finish方法,都會(huì)銷毀Activity,此時(shí)會(huì)調(diào)用onDestroy方法,利用onDestroy方法保存Activity狀態(tài).

3. 如何將一個(gè)Activity設(shè)置成窗口的樣式。

在Mainfest文件中配置android:theme = “@android:style/http://m.emrowgh.com”

4. 如何退出Activity?如何安全退出已調(diào)用多個(gè)Activity的Application?

單個(gè)的Activity,調(diào)用finish、killProcess()、http://m.emrowgh.com()方法退出。 多個(gè)Activity,在2.2中調(diào)用新的方法,killBackgroundProcesses(),需要權(quán)限 http://m.emrowgh.com

5. 請(qǐng)介紹下Android中常用的五種布局。

LinearLayout: 線性布局(常用)

將組件按照屬性設(shè)置的水平或者垂直方向順序排序。

FrameLayout: 層疊布局

將組件顯示屏幕的左上角,后面的組件覆蓋前面的組件。

RelativeLayout: 表格布局

組件的位置是相對(duì)于它所依賴的組件的位置。

TableLayout: 表格布局

TableRow指定一行,每個(gè)組件表示一列。

AbsoluteLayout: 坐標(biāo)布局

組件相對(duì)于左上角的位置而定 x=”?px” y=”?px”

6. 請(qǐng)介紹下Android的數(shù)據(jù)存儲(chǔ)方式。

有四種存儲(chǔ)方式:SharedPreferences、NetWork網(wǎng)絡(luò)存儲(chǔ)、文件、SQLite數(shù)據(jù)庫(kù)。

http://m.emrowgh.com一種輕量級(jí)的鍵值存儲(chǔ)方式,其存儲(chǔ)的數(shù)據(jù)必須是基本數(shù)據(jù)類型.存儲(chǔ)的數(shù)據(jù)以XML的形式存在,存儲(chǔ)在/data/data/包名/shared_prefs目錄下。

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>

<map>

<string name="gender">男性</string> <string name="name">jadde</string>

</map>

http://m.emrowgh.com網(wǎng)絡(luò)存儲(chǔ)

http://m.emrowgh.com上的文件存儲(chǔ)可以存儲(chǔ)在手機(jī)的內(nèi)存或者外部的存儲(chǔ)卡上。文件存儲(chǔ)的操作和java中對(duì)文件存儲(chǔ)的操作差不多。默認(rèn)情況下,在/data/data/<包名>/files/目錄下創(chuàng)建文件,且生成一個(gè)文件輸出流(FileOutputStream)對(duì)象。openFileOutput(String name,int mode)方法對(duì)文件進(jìn)行讀寫。name表示文件名,mode表示對(duì)文件的操作。

4.SQLite輕型數(shù)據(jù)庫(kù)是android平臺(tái)內(nèi)置的一個(gè)嵌入式數(shù)據(jù)庫(kù)?梢愿咝实奶幚頂(shù)據(jù)較為復(fù)雜的關(guān)系型數(shù)據(jù),應(yīng)用程序創(chuàng)建的數(shù)據(jù)庫(kù)文件存儲(chǔ)在/data/data/包名/database目錄下,應(yīng)用程序之間不能相互訪問(wèn)。

7. 請(qǐng)介紹下ContentProvider是如何實(shí)現(xiàn)數(shù)據(jù)共享的。

一個(gè)程序可以通過(guò)實(shí)現(xiàn)一個(gè)ContentProvider的抽象接口將自己的數(shù)據(jù)完全暴露出去,而且ContentProviders是以類似數(shù)據(jù)庫(kù)中表 的方式將數(shù)據(jù)暴露,也就是說(shuō)ContentProvider就像一個(gè)“數(shù)據(jù)庫(kù)”。那么外界獲取其提供的數(shù)據(jù),也就應(yīng)該與從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)的操作基本一 樣,只不過(guò)是采用URI來(lái)表示外界需要訪問(wèn)的“數(shù)據(jù)庫(kù)”。 ContentProvider負(fù)責(zé):組織應(yīng)用程序的數(shù)據(jù)、向其他應(yīng)用程序提供數(shù)據(jù); ContentResolver負(fù)責(zé):獲取ContentProvider提供的數(shù)據(jù)的增刪改查等。

8. 如何啟用Service,如何停用Service。

Service的啟動(dòng)分兩種:http://m.emrowgh.com(應(yīng)用停,服務(wù)不停)和http://m.emrowgh.com(應(yīng)用停,服務(wù)停)。啟動(dòng)了Service后運(yùn)行onCreate,之后調(diào)用onStartCommand(處理Intent),最后調(diào)用stopService或stopSelf停止service.

9. 注冊(cè)廣播有幾種方式,這些方式有何優(yōu)缺點(diǎn)?請(qǐng)談?wù)凙ndroid引入廣播機(jī)制的用意。

1.動(dòng)態(tài)注冊(cè):調(diào)用方法http://m.emrowgh.com()

IntentFilter intentFilter = new IntentFilter();

http://m.emrowgh.com(action);

registerReceiver(BroadcastReceiver,intentFilter);

2.靜態(tài)注冊(cè):在http://m.emrowgh.com的<receiver>標(biāo)簽

<receiver android:name=”BootReceiver”>

<intent-filter>

指明接收哪種廣播---這里是開機(jī)啟動(dòng)的廣播

<action android:name=”http://m.emrowgh.com”/> </intent-filter>

</receiver>

動(dòng)態(tài)注冊(cè)的廣播優(yōu)點(diǎn)靈活,手機(jī)處于關(guān)機(jī)狀態(tài)時(shí),不在監(jiān)聽廣播。靜態(tài)注冊(cè)的廣播的優(yōu)點(diǎn)是比較方便和易讀。

引入BroadcastReceiver的用意:

第一從MVC的角度考慮(應(yīng)用程序內(nèi)),就是為了實(shí)現(xiàn)移動(dòng)或者說(shuō)嵌入式設(shè)備上的MVC架構(gòu),它們之間有時(shí)候是一 種相互依存的關(guān)系,有時(shí)候又是一種補(bǔ)充關(guān)系,引入廣播機(jī)制可以方便幾大組件的信息和數(shù)據(jù)交互。

第二:程序間互通消息(例如在自己的應(yīng)用程序內(nèi)監(jiān)聽系統(tǒng)來(lái)電)

第三:效率上(參考UDP的廣播協(xié)議在局域網(wǎng)的方便性)

第四:設(shè)計(jì)模式上(反轉(zhuǎn)控制的一種應(yīng)用,類似監(jiān)聽者模式)。

10. 請(qǐng)解釋下在單線程模型中Message、Handler、Message Queue、Looper之間的關(guān)系。 Message:消息,其中包含了消息ID,消息處理對(duì)象以及處理的數(shù)據(jù)等,由MessageQueue統(tǒng)一列隊(duì),終由Handler處理。

Handler:處理者,負(fù)責(zé)Message發(fā)送和處理,使用Handler時(shí),需要實(shí)現(xiàn)handlerMessage(Message msg)進(jìn)行特定的處理,例如更新UI等。

Message Queue:消息隊(duì)列,用來(lái)存放Handler發(fā)送過(guò)來(lái)的消息,并按照FIFO規(guī)則執(zhí)行。當(dāng)然,存放Message(不是真正的保存),而是將Message以鏈表的方式串起來(lái)的,等待Looper的抽取。

Looper:消息泵,不斷地從MessageQueue中抽取Message執(zhí)行,因此一個(gè)MessageQueue需要一個(gè)Looper.

他們的關(guān)系:

Looper和MessageQueue 是一一對(duì)應(yīng)的關(guān)系,創(chuàng)建一個(gè)Looper的同時(shí),會(huì)創(chuàng)建一個(gè)MessageQueue。Handler和他們只是簡(jiǎn)單的集聚關(guān)系,即Handler里面會(huì)引用當(dāng)前線程里特定的Looper和MessageQueue.多個(gè)handler可以共享同一個(gè)Looper和MessageQueue了,這些Handler運(yùn)行在同一個(gè)線程里。

11. AIDL的全稱是什么?如何工作?能處理哪些類型的數(shù)據(jù)?

AIDL的全稱是Android Interf-ace Define Language

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)??jī)?yōu)缺點(diǎn)。

優(yōu)點(diǎn):1、學(xué)習(xí)的開源性;2、軟件兼容比較好;3、軟件發(fā)展迅速;4、界面布局好 缺點(diǎn):1、版本過(guò)多;2、現(xiàn)有軟件少;3、上午性能差

1、 什么是ANR 如何避免它?

ANR(Application Not Responding): 應(yīng)用程序有一段時(shí)間響應(yīng)不夠靈敏,系統(tǒng)會(huì)向用戶顯示一個(gè)對(duì)話框,這個(gè)對(duì)話框稱作應(yīng)用程序無(wú)響應(yīng)的對(duì)話框.

避免ANR:Android應(yīng)用程序通常運(yùn)行在一個(gè)單獨(dú)的線程里面,稱為主線程,所以在主線程里面少做一些耗時(shí)長(zhǎng)的程序,而是利用子線程來(lái)操作一些繁瑣的事情,用Handler把子線程處理的消息返回給主線程。

2、什么情況會(huì)導(dǎo)致Force Close ?如何避免?能否捕獲導(dǎo)致其的異常?

3、Android本身的api并未聲明會(huì)拋出異常,則其在運(yùn)行時(shí)有無(wú)可能拋出runtime異常,你遇到過(guò)嗎?諾有的話會(huì)導(dǎo)致什么問(wèn)題?如何解決?

4、簡(jiǎn)要解釋一下activity、 intent 、intent filter、service、Broadcast、BroadcaseReceiver

5、IntentService有何優(yōu)點(diǎn)

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)畫有哪幾種?

動(dòng)畫分為兩種類型的動(dòng)畫:漸變動(dòng)畫(Tweened Animations)和逐幀播放動(dòng)畫(Frame_by_Frame Animations)。

漸變動(dòng)畫里主要有:Alpha淡入淡出、Scale縮放效果、Rotate旋轉(zhuǎn)效果、Translate移動(dòng)效果,還可以利用AnimationSet 進(jìn)行多動(dòng)畫的組合。

逐幀播放動(dòng)畫的制作步驟:

1. 在xml中配置<animation-list „>

<item android:drawable=”..” android:duration=”500”/>

</animation-list>

2. 在ImageView設(shè)置背景資源 .setBackgroundResource(http://m.emrowgh.com)

3. 通過(guò)ImageView得到AnimationDrawable

4. .star()執(zhí)行動(dòng)畫

5. 對(duì)Intent、Activity、BroadcastReceiver、Service等的理解。

Intent是一個(gè)將執(zhí)行動(dòng)作抽象的描述,由Intent來(lái)協(xié)助完成android各個(gè)組件之間的通訊好比Activity之間的橋梁。Intent的成員有:

Action : ACTION_VIEW, ACTION_EDIT, ACTION_MAIN

Data : 封裝的數(shù)據(jù),以Uri格式表示

Category : 標(biāo)志動(dòng)作執(zhí)行的分類,例如CATEGORY_LAUNCHER

Type : MINI

Component : 標(biāo)明Intent指向的class

Extras : 用于在Intent中攜帶一些 鍵-值數(shù)據(jù)對(duì) 信息

5. 隱式、顯式Intent的區(qū)別

Intent解析機(jī)制主要是通過(guò)查找已注冊(cè)在http://m.emrowgh.com中的所有IntentFilter及其中定義的Intent,最終找到匹配的Intent。在這個(gè)解析過(guò)程中,Android是通過(guò)Intent的action、type、category這三個(gè)屬性來(lái)進(jìn)行判斷的,判斷方法如下:如果Intent指明定了action,則目標(biāo)組件的IntentFilter的action列表中就必須包含有這個(gè)action,否則不能匹配;如果Intent沒(méi)有提供type,系統(tǒng)將從data中得到數(shù)據(jù)類型。和action一樣,目標(biāo)組件的數(shù)據(jù)類型列表中必須包含Intent的數(shù)據(jù)類型,否則不能匹配。

顯式解析,調(diào)用setComponent(Component)或setClass(Context,Class)設(shè)置Intent指定的運(yùn)行類。

Intent intent = new Intent(this, http://m.emrowgh.com);

http://m.emrowgh.com("name", peoples[position]);

startActivity(intent);

隱式解析,未直接標(biāo)注組件,但是需要提供足夠的信息以便系統(tǒng)能夠確定運(yùn)行哪個(gè)class。

Intent intent = new Intent();

http://m.emrowgh.com(http://m.emrowgh.com);

http://m.emrowgh.com(http://m.emrowgh.com);

startActivity(intent);

【安卓面試總結(jié)】相關(guān)文章:

安卓崗位職責(zé)04-20

安卓工程師崗位職責(zé)05-18

安質(zhì)部個(gè)人總結(jié)05-10

安防員工作總結(jié)04-19

質(zhì)安部工作總結(jié)04-09

安環(huán)部工作總結(jié)03-29

安防業(yè)務(wù)出差報(bào)告總結(jié)05-18

國(guó)-家-安-全小組總結(jié)05-19

國(guó)-家-安-全宣傳總結(jié)05-19

國(guó)-家-安-全防范總結(jié)05-19