一個(gè)apk從開(kāi)始安裝啟動(dòng),系統(tǒng)做了哪些事情?請(qǐng)從AMS,WMS,PMS的角度考慮,以及進(jìn)程是如何啟動(dòng)的?


? ? ?應(yīng)用安裝是智能機(jī)的主要特點(diǎn),即用戶(hù)可以把各種應(yīng)用(如游戲等)安裝到手機(jī)上,并可以對(duì)其進(jìn)行卸載等管理操作。APK是AndroidPackage的縮寫(xiě),即Android安裝包。APK是類(lèi)似Symbian Sis或Sisx的文件格式。通過(guò)將APK文件直接傳到Android模擬器或Android手機(jī)中執(zhí)行即可安裝。

Android應(yīng)用安裝有如下四種方式

1.系統(tǒng)應(yīng)用安裝――開(kāi)機(jī)時(shí)完成,沒(méi)有安裝界面

2.網(wǎng)絡(luò)下載應(yīng)用安裝――通過(guò)market應(yīng)用完成,沒(méi)有安裝界面

3.ADB工具安裝――沒(méi)有安裝界面。

4.第三方應(yīng)用安裝――通過(guò)SD卡里的APK文件安裝,有安裝界面,由packageinstaller.apk應(yīng)用處理安裝及卸載過(guò)程的界面。

應(yīng)用安裝的流程及路徑 ? 應(yīng)用安裝涉及到如下幾個(gè)目錄:

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

data/app ? ? ? 用戶(hù)程序安裝的目錄,有刪除權(quán)限。安裝時(shí)把a(bǔ)pk文件復(fù)制到此目錄

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

Data/dalvik-cache ? ? ?將apk中的dex文件安裝到dalvik-cache目錄下(dex文件是dalvik虛擬機(jī)的可執(zhí)行文件,其大小約為原始apk文件大小的四分之 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一)

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

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


AMS,WMS,PMS原理分析

1、AMS:ActivityManagerService

ActivityManagerService?mActivityManagerService=mSystemServiceManager.startService(ActivityManagerService.Lifecycle.class).getService();這是通過(guò)SystemServiceManager這樣一個(gè)模板類(lèi)來(lái)創(chuàng)建運(yùn)行在SystemServer中的Framework服務(wù);并將創(chuàng)建的服務(wù)統(tǒng)一保存在隊(duì)列管理,會(huì)涉及到多用戶(hù)切換。

參考資料詳解:http://www.cnblogs.com/sunkeji/articles/7650482.html

2、PMS:PackageManagerService

? ? ? 了解了Android系統(tǒng)的啟動(dòng)過(guò)程的讀者應(yīng)該知道,Android的所有Java服務(wù)都是通過(guò)SystemServer進(jìn)程啟動(dòng)的,并且駐留在SystemServer進(jìn)程中。SystemServer進(jìn)程在啟動(dòng)時(shí),通過(guò)創(chuàng)建一個(gè)ServerThread線(xiàn)程來(lái)啟動(dòng)所有服務(wù),本文主要介紹Android服務(wù)中PackageManagerService服務(wù)啟動(dòng)過(guò)程。首先介紹一些PackageManagerService服務(wù)下的相關(guān)類(lèi)關(guān)系圖:


參考資料詳解:http://www.cnblogs.com/sunkeji/articles/7651925.html

3、WMS:WindowManagerService

? ? ??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容