首先PMS有两个非常重要的锁分别是mPackages,mInstallLock
一、mPackages
用于保护所有在内存中解析的软件包详细信息以及其他相关状态。
二、mInstallLock
用于保护所有对installed进程的访问,其操作通常涉及大量移动磁盘上的应用程序数据。
三、 LI 、LIF、LPr、LPw 是什么?
首先L代表Lock,I代表mInstall,P代表mPackages,F代表frozen,r代表读,w代表写。
四、例如
- installPackageLI调用者必须持有mInstallLock这个锁
- installNewPackageLIF调用者必须持有mInstallLock这个锁而且要修改的包装必须冻结
-
addPackageLPw调用者必须持有mPackages这个锁可写的。
-
isDisabledSystemPackageLPr调用者必须持有mPackages这个锁可读的。