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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

PMS 包解析源码流程 - 修改定制应用icon

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PMS 包解析源码流程 - 修改定制应用icon 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

PMS構造方法中任務階段性trace Tag

BOOT_PROGRESS_PMS_START

BOOT_PROGRESS_PMS_SYSTEM_SCAN_START

BOOT_PROGRESS_PMS_DATA_SCAN_START

BOOT_PROGRESS_PMS_SCAN_END

BOOT_PROGRESS_PMS_READY

PMS主要工作:包解析、簽名校驗、應用安裝卸載,如下時序圖僅為包解析流程

?首次開機完整流程為未提及cache的路徑,非首次開機,則會涉及到ParsedPackage的cache流程,即當應用被解析完成后會存儲很多配置文件,例如package.xml,package_list等,其中包解析的內容會被存貯在data/system/package_cache/目錄下,當機器重啟后,此類配置文件信息會在PMS構造方法中preparePackageParserCache中構建cache對象。當cache對象存在后,包解析ParsingPackageUtils中的方法就不會再執行,直接從cache文件中構建出parsedPackage包。這也是為啥reboot會比首次開機快一些的一個原因。

??經上述流程,故icon替換就可以在parseBaseApplication方法中去做出來,當前包為定制icon應用時,則將其icon替換,這里要注意,有時我們獲取可能從acitivityInfo信息中獲取icon,所以ParsedActivityUtils.parseActivityOrReceiver中也需要做icon替換。當前項目高通di5 laucnher調用中相冊、智慧充電就存在該情況

? ?

在包解析處做修改優點:

即此時修改應用icon后,不論其他應用如何調用,都能保證獲取到的即為定制后的icon,否則
? ? 1.? 在APPlicationPackageManager接口處做修改,則需要保證應用必須調用此接口,且代碼替換代碼會重復走很多遍。

?2.在PackageInfoWithoutStateUtils中調用generateApplicationInfoUnchecked或generateAcitivtyInfoUnchecked生成ApplicationInfo或ActivityInfo的時候修改,這里比起APMS未限制應用的接口調用,但是依舊走很多遍。

???在包解析處修改的缺點:

當應用icon是根據某個屬性值取不同icon圖片時,則會出現修改persist屬性值重啟后,樣式修改未生效,原因即為上述情況說到的cache,重啟后,cache不為空,解析流程會直接返回不會重新走一次包解析,此時可以考慮執行恢復出廠設置,但是要注意看恢復出廠設置,是否有去清data/system/package_cache目錄,若未做清除,則也是不會生效。如果這里需要做改動,可以考慮修改bootable/recovery/recovery.cpp將此目錄在恢復出廠設置的時候清掉。

???在此處修改的缺點:

當應用icon是根據某個屬性值取不同icon圖片時,則會出現修改persist屬性值重啟后,樣式修改未生效,原因即為上述情況說到的cache,重啟后,cache不為空,解析流程會直接返回不會重新走一次包解析,此時可以考慮執行恢復出廠設置,但是要注意看恢復出廠設置,是否有去清data/system/package_cache目錄,若未做清除,則也是不會生效。如果這里需要做改動,可以考慮修改bootable/recovery/recovery.cpp將此目錄在恢復出廠設置的時候清掉。
https://download.csdn.net/download/kanghongxia_021/85405257https://download.csdn.net/download/kanghongxia_021/85405257

??原圖,可用https://www.diagrams.net/,draw.io該工具打開

總結

以上是生活随笔為你收集整理的PMS 包解析源码流程 - 修改定制应用icon的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。