亚洲v欧美v国产v在线成_制服丝袜中文字幕丝袜专区_一区二区三区韩国电影_激情欧美一区二区中文字幕

我要投稿 投訴建議

經(jīng)典android面試題

時間:2021-02-05 10:06:05 面試試題 我要投稿

經(jīng)典android面試題精選

  1、談談Android的IPC(進程間通信)機制

經(jīng)典android面試題精選

  答:  Android系統(tǒng)中,每一個應用程序都是由一些Activity和Service組成的,這些Activity和Service有可能運行在同一個進程中,也有可能運行在不同的進程中,android的IPC機制也就是Binder機制,Android系統(tǒng)是基于Linux內(nèi)核的,而Linux內(nèi)核繼承和兼容了豐富的Unix系統(tǒng)進程間通信(IPC)機制, 但是,Android系統(tǒng)沒有采用上述提到的各種進程間通信機制,而是采用Binder機制,Binder是一種進程間通信機制,它是一種類似于COM和CORBA分布式組件架構,通俗一點,其實是提供遠程過程調(diào)用(RPC)功能。從英文字面上意思看,Binder具有粘結劑的意思,那么它把什么東西粘結在一起呢?在Android系統(tǒng)的Binder機制中,由一系統(tǒng)組件組成,分別是Client、Server、Service Manager和Binder驅動程序,其中Client、Server和Service Manager運行在用戶空間,Binder驅動程序運行內(nèi)核空間。Binder就是一種把這四個組件粘合在一起的粘結劑了,其中,核心組件便是Binder驅動程序了,Service Manager提供了輔助管理的功能,Client和Server正是在Binder驅動和ServiceManager提供的`基礎設施上,進行Client-Server之間的通信;

  1. Client、Server和Service Manager實現(xiàn)在用戶空間中,Binder驅動程序實現(xiàn)在內(nèi)核空間中

  2. Binder驅動程序和Service Manager在Android平臺中已經(jīng)實現(xiàn),開發(fā)者只需要在用戶空間實現(xiàn)自己的Client和Server

  3.Binder驅動程序提供設備文件/dev/binder與用戶空間交互,Client、Server和Service Manager通過open和ioctl文件操作函數(shù)與Binder驅動程序進行通信

  4. Client和Server之間的進程間通信通過Binder驅動程序間接實現(xiàn)

  5. Service Manager是一個守護進程,用來管理Server,并向Client提供查詢Server接口的能力

  2、apk安裝卸載的原理

  答:  APK安裝可以通過以下四種方式:

  1. 系統(tǒng)應用安裝,開機時完成系統(tǒng)應用的檢查,沒安裝就安裝,安裝就跳過,無安裝界面。

  2. 網(wǎng)絡下載應用安裝,通過market應用完成,無安裝界面。

  3. ADB工具安裝,無安裝界面

  4. 通過SD卡來安裝apk,有安裝界面,由packageinstaller.apk應用處理安裝及卸載過程的界面。

  應用安裝涉及到如下幾個目錄:

  system/app 系統(tǒng)自帶的應用程序,無法刪除

  data/app 用戶程序安裝的目錄,有刪除權限

  data/data 存放應用程序的數(shù)據(jù)

  Data/dalvik-cache 將apk中的dex文件安裝到dalvik-cache目錄下

  (dex文件是dalvik虛擬機的可執(zhí)行文件,其大小約為原始apk文件大小的四分之一)

  安裝過程:復制APK安裝包到data/app目錄下,解壓并掃描安裝包,把dex文件(Dalvik字節(jié)碼)保存到dalvik-cache目錄,并data/data目錄下創(chuàng)建對應的應用數(shù)據(jù)目錄。

  卸載過程:刪除安裝過程中在上述三個目錄下創(chuàng)建的文件及目錄。

  3、如何做適配

  1)android有H、L、M、X、XX四個不同的文件夾存放不同分辨率的圖片,系統(tǒng)會自動加載

  2) 偏移量d的設置可以在values-hpdi,values-mdpi,values-ldpi三種文件夾中的dimens.xml文件進行設置

  值得一提的是:

  40dp

  -14dp

  這里的負數(shù)是完全起作用的,系統(tǒng)會認為它是一個負值

  3)各大手機廠商對于Android操作系統(tǒng)都有或多或少的改動,當然這些改動會對我們應用程序產(chǎn)生某些影響

  比如:

  (1)系統(tǒng)源代碼中連接music服務的aidl文件所在包名:com.android.music

  (2)LG則可能將該aidl文件修改所在的包(例如修改為 com.android.music.player),并且修改其中的文件內(nèi)容(增加一個方法,或者減少幾個方法,或者修改方法名稱)那么我們的應用要想在LG的手機上發(fā)布,那么我們就必須改變所要連接的aidl文件,必須跟LG廠商修改的完全一致。

【經(jīng)典android面試題精選】相關文章:

android面試題及答案精選11-12

最新android面試題及答案11-07

經(jīng)典情景面試題05-25

求職IBM經(jīng)典面試題03-28

經(jīng)典c++面試題06-03

HRM職位經(jīng)典面試題05-12

財務人員經(jīng)典面試題10-10

經(jīng)典面試題和回答思路09-23

經(jīng)典面試題和答題技巧03-03

銀行校招經(jīng)典面試題03-03