当前位置: 首页 > news >正文

PKMS核心分析(一)

简单来需知:PKMS AMS 一样,也是Android系统核心服务之一,非常非常的重要,主要完成以下核 心功能:

1.解析AndroidNanifest.xml清单文件,解析清单文件中的所有节点信息

2.扫描.apk文件,安装系统应用,安装本地应用等

3.管理本地应用,主要有, 安装,卸载,应用信息查询 等

自我总结:PKMS是属于Binder机制的服务端角色

PKMS启动过程描述:

SystemServer启动PKMS: 先是在SystemServer.startBootstrapServices()函数中启动PKMS服务,

再调用startOtherServices()函数中对dex优化,磁盘管理功能,让PKMS进入systemReady状态。
七步走,文字不如画图:

第一步 到 第四步:

startBootstrapServices()首先启动Installer服务,也就是安装器,随后判断当前的设备是否处于加密状态,如果是则只是解析核心应用,接着调用PackageManagerService的静态方法main来创建pms对象

第一步 启动Installer服务

第二步:获取设备是否加密(手机设置密码),如果设备加密了,则只解析"core"应用

第三步 调用PKMS main方法初始化PackageManagerService,其中调用PackageManagerService() 构造函数创建了PKMS对象

第四步 如果设备没有加密,操作它。管理A/B OTA dexopting

第五步,第六步,第七步:

startOtherServices

第五步 执行 updatePackagesIfNeeded ,完成dex优化;

第六步 执行 performFstrimIfNeeded ,完成磁盘维护;

第七步 调用systemReady,准备就绪。

第三步细节PKMS.main() main函数主要工作:

  1. 检查Package编译相关系统属性
  2. 调用PackageManagerService构造方法
  3. 启用部分应用服务于多用户场景
  4. ServiceManager中注册”package””package_native”
public static PackageManagerService main(Context context, Installer installer,boolean factoryTest, boolean onlyCore) {// (1)检查Package编译相关系统属性PackageManagerServiceCompilerMapping.checkProperties();//(2)调用PackageManagerService构造方法PackageManagerService m = new PackageManagerService(context, installer,factoryTest, onlyCore);//(3)启用部分应用服务于多用户场景m.enableSystemUserPackages();//(4)往ServiceManager中注册”package”和”package_native”。ServiceManager.addService("package", m);final PackageManagerNative pmn = m.new PackageManagerNative();ServiceManager.addService("package_native", pmn);return m;
}

PKMS构造方法】:

PKMS构造方法,整体描述图:

 PKMS之权限扫描

http://www.dtcms.com/a/459100.html

相关文章:

  • 手机网站和app的区别淄博网站制作优化推广
  • 制作网站的登录界面怎么做保定专业做网站公司
  • 徐州免费网站建设模板网络公司业务
  • 广东seo网站设计价格前端网页设计样例
  • 什么是网站栏目标题网站校园推广案例
  • 引用网站信息怎么做备注北京网址是什么
  • 欧美网站欣赏WordPress谁在用
  • 在线制作图网站网站关键词优化seo
  • 网站建设销售好做嘛揭阳建设局网站
  • 成交型网站培训网站平台怎样做
  • 做电商网站货源郑州哪里有做平台网站的
  • 网站规划内容杭州做网站哪家好
  • 无锡建设主管部门网站wordpress 图片显示不了
  • 做海报挣钱的网站怎么使用电脑是做网站
  • 购物网站建设情况汇报四级作文模板万能
  • 秸秆还田下土壤有机质的激发效应
  • 个人做电子商务网站.net网站吃内存
  • 盐城那里做网站好点能做wordpress的网站
  • C# 泛型(Generic)
  • 从winlogon!SignalManagerWaitForSignal来看神秘的状态机的状态数组结构
  • 海门建设局网站能查个人信息的网站
  • 西安企业网站建设公司创办个人网站
  • 开锁公司网站建设o2o的网站有哪些
  • 郑州营销网站建设公司营销型网站建站步骤是什么意思
  • 免费下载ppt模板网站有哪些安徽质量工程建设网站
  • 龙岩e网站个人建什么样的网站好
  • 商城网站前置审批网站建设 验证码
  • C++十进制转二进制
  • 企业文化简介网站怎么做十大微商推广平台
  • 岱岳区网站设计手机可填写简历模板免费