




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
應(yīng)用安裝過(guò)程以及默認(rèn)安裝路徑分類:一:安裝過(guò)程是類似 或的文件格式。通過(guò)將文件直接傳到模擬器或手機(jī)中執(zhí)行即可安裝。應(yīng)用安裝有如下四種方式系統(tǒng)應(yīng)用安裝――開(kāi)機(jī)時(shí)完成,沒(méi)有安裝界面網(wǎng)絡(luò)下載應(yīng)用安裝――通過(guò)應(yīng)用完成,沒(méi)有安裝界面工具安裝――沒(méi)有安裝界面。第三方應(yīng)用安裝――通過(guò)卡里的文件安裝,有安裝界面,由應(yīng)用處理安裝及卸載過(guò)程的界面。應(yīng)用安裝的流程及路徑應(yīng)用安裝涉及到如下幾個(gè)目錄:系統(tǒng)自帶的應(yīng)用程序,無(wú)法刪除用戶程序安裝的目錄,有刪除權(quán)限。1/27安裝時(shí)把文件復(fù)制到此目錄存放應(yīng)用程序的數(shù)據(jù)將中的文件安裝到目錄下 (文件是虛擬機(jī)的可執(zhí)行文件 ,其大小約為原始文件大小的四分之)安裝過(guò)程:復(fù)制安裝包到目錄下,解壓并掃描安裝包,把文件 (字節(jié)碼)保存到目錄,并目錄下創(chuàng)建對(duì)應(yīng)的應(yīng)用數(shù)據(jù)目錄。卸載過(guò)程:刪除安裝過(guò)程中在上述三個(gè)目錄下創(chuàng)建的文件及目錄。一、系統(tǒng)應(yīng)用安裝:處理各種應(yīng)用的安裝,卸載,管理等工作,開(kāi)機(jī)時(shí)由啟動(dòng)此服務(wù)(源文件路徑:\\\\\\\\)服務(wù)啟動(dòng)的流程:首先掃描安裝“”目錄下的包2/271.(,|);2.第二步掃描安裝 “”目錄下的各個(gè)系統(tǒng)應(yīng)用(,);3.第三步掃描“”目錄,即用戶安裝的第三方應(yīng)用(,0,);4.第四步掃描"\"目錄,即安裝保護(hù)的文件(目前沒(méi)有遇到過(guò)此類的應(yīng)用)。(,0, |);安裝應(yīng)用的過(guò)程1(, , )遍歷安裝指定目錄下的文件3/272(,,, ,) 安裝文件3(, ,,,, )通過(guò)解析安裝包獲取到安裝包的信息結(jié)構(gòu)4(,); 實(shí)現(xiàn)文件復(fù)制的安裝過(guò)程(源文件路徑: )二、從上下載應(yīng)用:4/27應(yīng)用需要使用賬戶登錄才可以使用,選擇某一應(yīng)用后,開(kāi)始下載安裝包,此過(guò)程中,在手機(jī)的信號(hào)區(qū)有進(jìn)度條提示,下載完成后,會(huì)自動(dòng)調(diào)用的接口安裝,調(diào)用接口如下:( , ):文件下載完成后保存的路徑:處理返回的安裝結(jié)果:安裝的參數(shù),從上下載的應(yīng)用,安裝參數(shù)為 ()接口函數(shù)的安裝過(guò)程:1(, , ,):安裝完成后此名稱保存在里,一般為 ,不是關(guān)鍵參數(shù)2=(,);把文件復(fù)制到臨時(shí)目錄下的臨時(shí)文件5/273(,, ,)解析臨時(shí)文件,獲取應(yīng)用包名 =((),0);4.判斷如果帶有參數(shù),則調(diào)用 (,,,,,,,)5.如果沒(méi)有,則調(diào)用 (,6/27,,,,,,);6(, ,,,, )以后的流程,與開(kāi)機(jī)時(shí)的應(yīng)用安裝流程相同。三、從工具安裝()是自帶的管理設(shè)備的工具,通過(guò)命令行的方式也可以為手機(jī)或模擬器安裝應(yīng)用,其入口函數(shù)源文件為(源文件路徑:\\\\\\\\\\)命令行的形式為 <>,還可以帶安裝參數(shù)如: """"""""7/27函數(shù)()中判斷參數(shù)――""————""——我們常用的參數(shù)為, 表示覆蓋安裝手機(jī)上已安裝的同名應(yīng)用。 從上下載的應(yīng)用, 也是直接傳入這個(gè)參數(shù)安裝的。與調(diào)用同樣的接口完成應(yīng)用安裝。( , )四、第三方應(yīng)用安裝 ――通過(guò)卡里的文件安裝把安裝包保存在卡中,從手機(jī)里訪問(wèn)卡中的安裝包,點(diǎn)擊就可以啟動(dòng)安裝界面,系統(tǒng)應(yīng)用處理這種方式下的安裝及卸載界面流程,如下圖:負(fù)責(zé)解析包,判斷是否是可用的文件8/27創(chuàng)建臨時(shí)安裝文件并啟動(dòng)安裝確認(rèn)界面,列出解析得到的該應(yīng)用基本信息。如果手機(jī)上已安裝有同名應(yīng)用,則需要用戶確認(rèn)是否要替換安裝。確認(rèn)安裝后,啟動(dòng),調(diào)用安裝接口完成安裝。(,);其它:的內(nèi)部類實(shí)現(xiàn)了監(jiān)聽(tīng)目錄的功能:當(dāng)把某個(gè)拖到目錄下時(shí),可以直接調(diào)用完成安裝。2.手機(jī)數(shù)據(jù)區(qū)目錄 “”文件中,包含了手機(jī)上所有已安裝應(yīng)用的基本信息,如安裝路徑,申請(qǐng)的等信息。二:更改默認(rèn)安裝路徑如果你是一個(gè)應(yīng)用開(kāi)發(fā)者,沒(méi)用系統(tǒng)全套代碼,你只想更改你的的默認(rèn)安裝路徑的話,可以按下面方法來(lái)更改:在文件標(biāo)簽中添加屬性這個(gè)屬性設(shè)置的是默認(rèn)安裝位置,共有三個(gè)有效值,、、對(duì)應(yīng)表表示自動(dòng),由系統(tǒng)決定安裝位置,如果系統(tǒng)手機(jī)內(nèi)存足夠,默認(rèn)安裝在手機(jī)內(nèi)存里,如果手機(jī)內(nèi)在不夠,則會(huì)安裝在T卡內(nèi)安裝在手機(jī)內(nèi)存安裝在外部存儲(chǔ)中012 , .<""""9/27"""1""1.0" >如果你是一個(gè)手機(jī)方案開(kāi)發(fā)者 ,能改層的代碼 ,你希望下載到手機(jī)里的都默認(rèn)優(yōu)先安裝到 T卡的話,可以按下面方法更改 :在文件里,將 這個(gè)值,改為,就可以了.默認(rèn)下載就會(huì)下到 T卡里卡不存在或者滿了時(shí) ,才會(huì)下到手機(jī)內(nèi)部.或者如果在應(yīng)用的里,指定了屬性為手機(jī)內(nèi)部存儲(chǔ)的話,是會(huì)存在手機(jī)內(nèi)部的.沒(méi)指這定的話這個(gè)值指定什么,就下到哪里安裝在T卡里的應(yīng)用,有幾個(gè)缺點(diǎn):因?yàn)檠b載T卡是在系統(tǒng)啟動(dòng)完成后,才開(kāi)始裝載的.所以如果應(yīng)用裝在T卡里的話,那么它是收不到開(kāi)機(jī)啟動(dòng)完成的這個(gè)廣播的2:如果T卡損壞或者 T卡撥出來(lái)了,那么裝在 T卡里的應(yīng)用是啟動(dòng)不了的 .系統(tǒng)應(yīng)用安裝的詳細(xì)過(guò)程 ,老羅有篇文章寫(xiě)得很透徹 ,這里引用下:系統(tǒng)在啟動(dòng)的過(guò)程中, 會(huì)啟動(dòng)一個(gè)應(yīng)用程序管理服務(wù), 這個(gè)服務(wù)負(fù)責(zé)掃描系統(tǒng)中特定的目錄, 找到里面的應(yīng)用程序文件, 即以為后綴的文件, 然后對(duì)這些文件進(jìn)解析, 得到應(yīng)用程序的相關(guān)信息,完成應(yīng)用程序的安裝過(guò)程,本文將詳細(xì)分析這個(gè)過(guò)程。應(yīng)用程序管理服務(wù)安裝應(yīng)用程序的過(guò)程, 其實(shí)就是解析析應(yīng)用程序配置文件的過(guò)程, 并從里面得到得到應(yīng)用程序的相關(guān)信息, 例如得到應(yīng)用程序的組件、 、和等信息,有了這些信息后,通過(guò)這個(gè)服務(wù),我們就可以在系統(tǒng)中正常地使用這些應(yīng)用程序了。應(yīng)用程序管理服務(wù)是系統(tǒng)啟動(dòng)的時(shí)候由組件啟動(dòng)的,啟后它就會(huì)執(zhí)行應(yīng)用程序安裝的過(guò)程,因此,本文將從啟動(dòng)服務(wù)的過(guò)程開(kāi)始分析系統(tǒng)中的應(yīng)用程序安裝的過(guò)程。應(yīng)用程序管理服務(wù)從啟動(dòng)到安裝應(yīng)用程序的過(guò)程如下圖所示:10/27下面我們具體分析每一個(gè)步驟。1.這個(gè)函數(shù)定義在文件中:[]1.{11/273.......4.1([]);......([]){......1();......}17. ......18. }組件是由進(jìn)程負(fù)責(zé)啟動(dòng)的,啟動(dòng)的時(shí)候就會(huì)調(diào)用它的函數(shù),這個(gè)函數(shù)主要調(diào)用了方法 1來(lái)做一些系統(tǒng)初始化的工作。2.1這個(gè)函數(shù)是一個(gè)方法,實(shí)現(xiàn)在 文件中:[]{"C"();1(*,){();}9./**.*/[]={/*,,*/15. { "1", "([;)V" ,(*)1},};(*){20. (, "",,());12/27}24. };這個(gè)函數(shù)很簡(jiǎn)單,只是調(diào)用了函數(shù)來(lái)進(jìn)一步執(zhí)行操作。3.函數(shù)實(shí)現(xiàn)在庫(kù)中,源代碼位于文件中:[]"C"(){3.("()");4.<>(());<>=();8.(":\n",());9.<>=();>()->(,(),0);[];14.("",,"1");15.((,"1")0){16.();}19.20.();,'t24. ,(>()){26.27.();29.30.();();13/2736.();}..'s(),.46.(":.\n");47.*=();50.(":.\n");51.>("","2");52.53.,54..,55..(>()){57. ( ": .\n" );()->();()->();60. ( ": .\n" );};}這個(gè)函數(shù)首先會(huì)初始化、、、、和這幾個(gè)服務(wù),然后就通過(guò)系統(tǒng)全局唯一的實(shí)例變量的來(lái)調(diào)用的2函數(shù)了。關(guān)于這個(gè)實(shí)例變量的相關(guān)資料,可能參考前面一篇文章 應(yīng)用程序進(jìn)程啟動(dòng)過(guò)程的源代碼分析一文。4.這個(gè)函數(shù)定義在文件中:[]/*2. *a .*/(*,*){*;14/27;;=();();=(,);(){16. ( ": ''\n" ,);;}19. =>(,, "()V" );(){21. ( ": \n" ,,);;}>(,);;}這個(gè)函數(shù)調(diào)用由參數(shù)指定的類的靜態(tài)成員函數(shù), 這個(gè)靜態(tài)成員函數(shù)是由參數(shù)指定的。 上面?zhèn)鬟M(jìn)來(lái)的參數(shù)的值為 "",而參數(shù)的值為 "2",因此,接下來(lái)就會(huì)調(diào)用類的 2函數(shù)了。5.2這個(gè)函數(shù)定義在文件中:[]1.{3. ......4.2(){6. (, " !" );=();8. ( "");();}}15/27這個(gè)函數(shù)創(chuàng)建了一個(gè)線程,服務(wù)就是這個(gè)線程中啟動(dòng)的了。這里調(diào)用了實(shí)例的函數(shù)之后,下面就會(huì)執(zhí)行這個(gè)實(shí)例的函數(shù)了。6.這個(gè)函數(shù)定義在文件中:[]{2. ......3.4.(){......=;.........{14.......15.16.(,"");=(,18.);19.20.......}(e){22. ( "", " " ,e);}24.25.......}......29. }這個(gè)函數(shù)除了啟動(dòng)服務(wù)之外, 還啟動(dòng)了其它很多的服務(wù), 例如在前面學(xué)習(xí)和的幾篇文章中經(jīng)??吹降姆?wù),有興趣的讀者可以自己研究一下。7.這個(gè)函數(shù)定義在文件中:[]{16/272. ......3.(,){m=(,);6. ( "",m);m;}9.10. ......11. }這個(gè)函數(shù)創(chuàng)建了一個(gè)服務(wù)實(shí)例, 然后把這個(gè)服務(wù)添加到中去, 是系統(tǒng)進(jìn)程間通信機(jī)制的守護(hù)進(jìn)程,負(fù)責(zé)管理系統(tǒng)中的對(duì)象,具體可以參考 淺談 成為進(jìn)程間通信()機(jī)制守護(hù)進(jìn)程之路 一文。在創(chuàng)建這個(gè)服務(wù)實(shí)例時(shí),會(huì)在類的構(gòu)造函數(shù)中開(kāi)始執(zhí)行安裝應(yīng)用程序的過(guò)程:[]{2.......3.(,){......6.(){8.(){9.......10.11.=();12.=(,"");13.=(,"");14.=(,"");15.16.......17.18.=((),"");19.=(,"");20.21.......22.23.().24.=(25.(),,);26.();27.(,17/2728.|,29.|,0);30.31..32.=((),"");33.=(34.(),,);35.();36.(,37.|,,0);38.39..40.=("");41.=(42.(),,);43.();44.(,45.|,,0);46.47.48.=(49.(),,);50.();51.(,0,,0);52.53.=(54.(),,);55.();56.(,,57.,0);58.59.......}}}63.64.......65.}這里會(huì)調(diào)用函數(shù)來(lái)掃描移動(dòng)設(shè)備上的下面這五個(gè)目錄中的文件:18/278.這個(gè)函數(shù)定義在文件中:[]{2.......3.(,,,){[]=();......i;9. ( 0;i<;){=(,[i]);(([i])){12.'s13.;}=(,16.,,);17.'t.18.((&)019.){20.21.(,""+);22.();}}}26.27.28.......29.}對(duì)于目錄中的每一個(gè)文件,如果是以后作為后綴名,那么就調(diào)用函數(shù)來(lái)對(duì)它進(jìn)行解析和安裝。9.這個(gè)函數(shù)定義在文件中:[]{19/272.......3.(,5.,,){6.......7.=();;=();11.12.......13.=(,,,);16.17.......18.(,,|,);}21.22.......23.}這個(gè)函數(shù)首先會(huì)為這個(gè)文件創(chuàng)建一個(gè)實(shí)例, 接著調(diào)用這個(gè)實(shí)例的函數(shù)來(lái)對(duì)這個(gè)文件進(jìn)行解析。這個(gè)函數(shù)最后還會(huì)調(diào)用另外一個(gè)版本的函數(shù)把來(lái)解析后得到的應(yīng)用程序信息保存在中。10.這個(gè)函數(shù)定義在文件中:[]{2.......3.(,,5.,){6.......7.=();......=;=;=;{20/27=();=();18.(0){19.=(,"");20.=;}{......}}(e){......}......30. []=[ 1];=;=;{34. : .=(,,);=(,,,);}(e){38. ......}40.41.......42.();();=;=;49. =;50. =;=;;}......57. }21/27每一個(gè)文件都是一個(gè)歸檔文件, 它里面包含了應(yīng)用程序的配置文件, 這里主要就是要對(duì)這個(gè)配置文件就行解析了, 從歸檔文件中得到這個(gè)配置文件后, 就調(diào)用另一外版本的函數(shù)對(duì)這個(gè)應(yīng)用程序進(jìn)行解析了:[]{2.......3.(5.,,,[])6.,{7.......8.=(,,,);10.11.......12.=();......;......=(,);24.......25.((())(()>)){28.(){29.;30.}31.32.=();33.(("")){34.......35.36.((,,,,,)){37.;38.}39.}(("")){22/2740.......41.}(("")){42.......43.}(("")){44.......45.}(("")){46.......47.}(("")){48.......49.}(("")){50.......51.}(("")){52.......53.}(("")){54.......55.}(("")){56.......57.}(("")){58.......59.}(("")){60.......61.}(("")){62.......63.}(("")){64.......65.}(("")){66.......67.}(("")){68.......69.}(){70.......71.}{72.......73.}}......;}81. ......82. }23/27這里就是對(duì)文件中的各個(gè)標(biāo)簽進(jìn)行解析了, 各個(gè)標(biāo)簽的含義可以參考官方文檔, 這里我們只簡(jiǎn)單看一下標(biāo)簽的解析,這是通過(guò)調(diào)用函數(shù)來(lái)進(jìn)行的。11.這個(gè)函數(shù)定義在文件中:[]{2.......3.(,,5.,,,[])6.,{=;=;=(,);......14.;((())(()>)){18.(){19.;20.}21.22.=();23.(("")){24.a=(,,,,,,);25.......26.27.(a);28.29.}(("")){30.a=(,,,,,,);31.......32.33.(a);34.}(("")){35.s=(,,,,,);36.......37.38.(s);24/2739.}(("")){40.p=(,,,,,);41.......42.43.(p);44.}(("")){45.a=(,,,,,);46.......47.48.(a);49.}(()("")){50.......51.}(("")){52.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 漢字筆畫(huà)課件演示
- 遼寧省七校協(xié)作體2025-2026學(xué)年高三上學(xué)期開(kāi)學(xué)考試英語(yǔ)模擬試題(含解析)
- 2025年山西省臨汾市中考物理模擬試卷(含答案)
- 3D打印技術(shù)與應(yīng)用知到智慧樹(shù)答案
- 互聯(lián)網(wǎng)醫(yī)療機(jī)構(gòu)經(jīng)營(yíng)模式分析
- 內(nèi)衣行業(yè)市場(chǎng)趨勢(shì)預(yù)測(cè)
- 2025雙方合作經(jīng)營(yíng)教育公司合同范本
- 軍事理論-國(guó)家安全環(huán)境強(qiáng)化版知到智慧樹(shù)見(jiàn)面課答案
- 漢字書(shū)寫(xiě)與鑒賞課件
- 水粉陶罐基礎(chǔ)知識(shí)培訓(xùn)課件
- TCAPC 016-2024 院外呼吸慢病健康管理規(guī)范
- 露天礦山安全知識(shí)培訓(xùn)課件
- 《中小企業(yè)員工激勵(lì)機(jī)制存在的問(wèn)題及完善對(duì)策研究》4000字
- 第1章 汽車4S店概述
- 呼蘭河傳完整版課件
- 醫(yī)療器械監(jiān)管實(shí)務(wù)
- 旅游景區(qū)反恐防爆應(yīng)急預(yù)案
- 實(shí)驗(yàn)室隱患排查培訓(xùn)
- 浪潮iqt在線測(cè)評(píng)題及答案
- 中外運(yùn)社招在線測(cè)評(píng)題
- GB/T 18802.331-2024低壓電涌保護(hù)器元件第331部分:金屬氧化物壓敏電阻(MOV)的性能要求和試驗(yàn)方法
評(píng)論
0/150
提交評(píng)論