美文网首页
android10的PKMS很low的简单研究

android10的PKMS很low的简单研究

作者: nich | 来源:发表于2021-12-27 17:41 被阅读0次

写的超级省超级烂

PKMS简介

pkms叫packageManageserver,主要功能是1.解析AndroidNanifest.xml清单文件,解析清单文件中的所有节点信息2.扫描.apk文件,安装系统应用,安装本地应用等3.管理本地应用,主要有, 安装,卸载,应用信息查询 等

简单启动流程

android手机开机解析init.rc进入init方法启动zygote,然后调用通过fork出进程启动system.run方法启动systemserver方法,然后启动startBootstrapServices();引导服务startCoreServices();核心服务startOtherServices();其他服务,pkms主要先看startBootstrapServices和startOtherServices服务

初始化流程

主要看pkms构造函数:

mSettings =new Settings();//创建 Settings 对象,其内部创建了 packages.xml、packages-backup.xml、 packages.list 等文件,用于存储应用信息

添加SharedUserSetting对象到mSettings中

mSettings.readLPw(sUserManager.getUsers(false))//从packages.xml文件中解析出信息(如果该文件存在),并保存到 Settings相应的字段中

scanDirLI//扫描指定文件目录下的Apk包,解析其内部的Manifest.xml文件,将值赋值给PMS和Settings、Package中;主要包括androidManifest.xml里面activity,application广播啥乱七八糟东西

// 这里扫描用户应用:mAppInstallDir = "/data/app" 

scanDirLI(mAppInstallDir, 0, scanFlags | SCAN_REQUIRE_KNOWN, 0); 

// 这里扫描用户应用:mDrmAppPrivateInstallDir = "/data/app-private" 

scanDirLI(mDrmAppPrivateInstallDir, PackageParser.PARSE_FORWARD_LOCK, scanFlags | SCAN_REQUIRE_KNOWN, 0);一堆代码,最后mSettings.writeLPr(); 重新记录一下

然后启动startotherservices执行performdexoptupdate完成的dex优化(耗时)然后完成磁盘维护performfstrimifneed()然后调用pkms.systemready()准备就绪

androidapp简单安装流程

主要看PackageInstallerActivity类

installingasynctask-》commit然后binder丢给pkms通过handlermessage(INIT_COPUY)-〉执行startcopy

startcopy就是把apk copy到data/app/包名下面,apk中的dex文件安装在data/dalvik-cache下面

相关文章

  • android10的PKMS很low的简单研究

    写的超级省超级烂 PKMS简介 pkms叫packageManageserver,主要功能是1.解析Android...

  • Android Framework中关于PKMS的调用方式简述

    本篇文章主要谈一谈PKMS调用方式。 PKMS概述 PKMS指PackageManagerService服务本身以...

  • 很low很low

    我真的很low,其实我真的没什么好写,可我急躁啊,所以就照瓢画圆了,学的不像,你别笑,当心笑别人就是笑自己,(捂脸...

  • Android Framwork之PKMS源码解析---调用方式

    1、简单介绍 PackageManagerService简称PKMS,Android系统的核心服务之一,是在Sys...

  • 建立我的个人知识管理系统

    目录 1 概述 1.1 PKMS的需求是什么 1.2 PKMS的顶层框架是什么 1.3 细...

  • 没有很low的生活,只有很low的活法

    1. 你对自己现在的生活满意吗?你每天过得忙碌又充实吗?你羡慕别人的生活吗?你有自己的理想吗?你喜欢现在的自己吗?...

  • PKMS

    核心功能 1.解析AndroidNanifest.xml清单文件,解析清单文件中的所有节点信息2.扫描.apk文件...

  • 很low的我

    有的时候会责骂生活,为什么能让我看到很美好的你,有丰富的你,很富贵的你,很逍遥快活的你,自由自在的你,却就是不让我...

  • 很low的律师

    我曾经是一名检察官,多次与律师打交道。我很尊敬的一位老师,是本省很有名的刑辩律师,江湖上称“本省刑辩第一人”。 在...

  • 很low

    小外甥,我二姐的儿子,上次打篮球撕伤小腿肌肉,现在要复查。 我二姐和二姐夫,都在外打工,家里只有孩子爷爷奶奶照顾。...

网友评论

      本文标题:android10的PKMS很low的简单研究

      本文链接:https://www.haomeiwen.com/subject/bbmyqrtx.html