Android PMS工作原理

Android PMS(PackageManagerService) 原理 为什么要有 PMS 手机里面的 apk 都会在 data/app 目录下,知道这个 apk 路径很简单,难的地方在于怎么管理 apk 里面的信息,例如怎么提供给 AMS 需要的 Activity 信息等。所以就需要 PMS 提前将 apk 的信息缓存起来。 PMS 缓存信息是在手机开机启动这段时间处理解析的,所以这也是为什么手机开启启动比较慢的原因之一。 PMS 分析 apk 压缩文件 当手机开机时,PMS 会扫描 data/app/package/base.apk,还有 system/app/packag 阅读详情

PMS整体原理如下:
在这里插入图片描述
主要还是通过AIDL来调用系统信息

比如:
在MainActivity中调用

getPackageManager().getPackageInfo("", PackageManager.GET_ACTIVITIES);

具体的流程如下:
在这里插入图片描述
上面只是简单的标记一下,并没有对照具体的代码进行分析,都是通过AIDL来获取系统的信息,如果想自己看的话可以参考上面的进行具体查看。

Android PackageManagerService(PMS)框架深度解析 PackageManagerService(PMS)是Android系统的核心服务之一,负责全系统的应用包管理。缓存机制:使用package.xml(settings.xml)持久化存储元数据。组件(Activity/Service等)注册管理。(Android 6.0+):向用户请求授权。清单文件解析错误(parse error):如从 0(主用户)到 10(新用户)。运行时权限(Android 6.0+)容器化安装(Isolated UID)拆分APK支持(APK Split) 阅读详情

相关推荐

Android PMS(Package Manager Service)源码介绍

PackageManagerService(简称 PMS)是 Android 系统中的核心服务之一,负责应用的安装、卸载、查询和权限管理等。它是 Android 应用生命周期管理和安全机制的基石。1、应用安装与卸载2、静态权限解析与动态权限授予3、应用信息查询4、系统应用的预加载5、数据存储与一致性管理提示:以下是本篇文章正文内容,下面案例可供参考PMS 是 Android 系统中连接应用、用户和系统的桥梁,其源码体现了安装、卸载、权限管理的高效性和安全性。

weixin_44780781的博客 1780

Android系统重要组件PMS

Android PMS(Package Manager Service)是Android系统中的一个重要组件,它管理着Android系统中所有应用程序的安装、卸载、更新等工作。

特立独行的博客 3124

Android——简单易懂说原理之PMS、IMS和Binder

写在前面:这次给大家推荐一个看源码的网站,虽然不能调试,但是看起来很方便。Android OS在线源码 目录一、PMS1.PackageInstaller的初始化与安装APK过程2.PMS对APK安装过程的处理3.PMS的构造方法分析4.App的安装流程整体回顾与其他补充二、IMS三、Binder 一、PMS PackageManagerService(PMS)是包管理机制的核心,负责对包进行管理。AMS总是会使用PMS加载包的信息,将其封装在LoadedApk这个类对象中,然后我们就可以从中取出在Andr

nanquan11的博客 1894

【Android Framework系列】第4章 PMS原理

PMS是包管理系统服务,用来管理所有的包信息,包括应用安装卸载更新以及解析AndroidManifest.xml。手机开机后,它会遍历设备上/data/app/和目录下的所有apk文件,通过解析所有安装应用的,将xml中的数据(应用信息权限四大组件等)信息都缓存到内存中,后续提供给AMS所需要的数据,它是具有保存应用数据的缓存。手机开机,内核进程启动init进程init进程启动SeriviceManager进程和启动Zygote进程Zygote进程启动进程启动AMSPMS。

Yvan 3399

Framework学习(三)之PMS、AMS、WMS

2: WindowManagerService(WMS)讲解博主

hirezy 1万+

简述Android framework之AMS、PMS、WMS

服务端 主要是ActivityManagerService(AMS), WindowManagerService(WMS),PackageM anerService(PMS) AMS 主要用于管理所有应用程序的Activity WMS 管理各个窗口,隐藏,显示等 PMS 用来管理跟踪所有应用APK,安装,解析,控制权限等. 还有用来处理触摸消息的两个类KeyInputQueue和Input...

qq601517284的博客 5980

PMS

PackageMangerService源码阅读总结 简介 PackageMangerService(简称PMS)是Android系统中负责管理所有Apk的安装、卸载更新等工作,其运行在SystemServer进程,维护管理系统中所有的Apk包管理,那它是如何管理众多APK的呢?它怎么知道系统中有哪些APK应用,这些Apk在什么时候安装、卸载和更新,PMS如何感知?就算它知道了系统中所有APK的存在,如何去建立一个维护呢? 带着以上诸多疑问,从源码的角度,来探寻这些问题,感悟PMS的精髓所在! 浅析自己

jackzhouyu的专栏 1359

AMS,PMS,WMS等简单介绍

其实所谓的AMS,PMS,WMS等都是运行在system_server这个进程中的线程。 sleep是Thread类的静态方法,谁调用谁去睡觉。sleep是占用CPU去睡觉,而wait是放弃CPU去睡觉。 》》》》》》》》AMS》》》》》》》》》 一、ActivityManagerService提供的主要功能: (1)统一调度各应用程序的Activity (2)内存管理 (3)进程管理 二、启动一个Activity的方式有以下几种: (1)在应用程序中调用startActivity启动指定的

m0_49491001的博客 2038

PMS介绍

一眨眼,一年又过去了。不知道小伙伴是否对旧的一年进行过总结:这一年我收获了什么?我想了想,发现去年还真没有什么很大的突破。自从开通这个个人公众号以来,才发现一个人很好的运行这个公众号还是挺难的。由于工作较忙,闲暇时间也要做些其他事情,导致了不能做到每天更新。不管怎样,我都会尽量去维护好的。     好了,今天我们将介绍PMS基础知识。了解PMS的基础知识是每一个做性能优化小伙伴们的必备知

zhouzhengting1的专栏 5195

小米资深Android面经:组件化架构设计、WorkManager的原理、PMS包管理服务的工作原理

本文总结了小米资深Android面试的核心考点,涵盖组件化架构、WorkManager、PMS、ANR排查、依赖注入、ConstraintLayout及VSync机制等7大技术方向。重点解析了组件化与插件化的差异、WorkManager的任务调度原理、ANR的监控方法、Hilt依赖注入实现等高频问题,并提供了代码示例和面试追问点。内容聚焦MIUI系统定制和IoT设备开发等小米特色技术栈,适合准备大厂Android高级职位面试的开发者参考。

郑伟强dev的专栏 179

【数据挖掘】心跳信号分类预测 之 特征工程 —— 学习笔记(三)

三、特征工程 3.1 看书 常言道,“巧妇难为无米之炊”。在 ML 中,数据和特征将作“米”,模型和算法则为“妇”。若无数量充足的数据、良好表示的特征,再强大的模型也难以得到满意的结果 (garbage in,garbage out)。对于 ML 问题,数据和特征往往决定了结果的上限,而模型、算法的选择及优化则是在逐步接近该上限。 特征工程,顾名思义,是对原始数据进行一系列工程处理,将其提炼为特征,作为输入供算法和模型使用。在本质上,特征工程是一个表示和展现数据的过程。在实际中,特征工程旨在去除...

闻韶 3358

Android 系统启动到 APP 运行原理 —— 中级安卓开发工程师进阶必看

Android系统架构分为五层:应用层、框架层、本地库层、HAL层和内核层。系统启动流程包括Bootloader加载内核、Init进程启动Zygote、SystemServer初始化核心服务,最终启动Launcher。应用启动时,AMS通过Zygote孵化新进程,完成Activity初始化和界面渲染。系统运行时包含1个Binder驱动、1个ServiceManager进程,以及Zygote、SystemServer等核心进程。AIDL通过自动生成Stub和Proxy类实现跨进程通信,客户端通过transac

da_ma_dai的博客 1419

从原理到应用:深入解析双编码器在机器人关节力矩感知中的实现

本文深入解析了双编码器方案在机器人关节力矩感知中的实现原理与应用。该方案通过在电机侧和输出侧分别安装编码器,利用两者位置差异间接高精度计算外力,克服了传统电流环精度不足和扭矩传感器成本高昂的缺点。它为实现协作机器人的丝滑拖动示教、灵敏碰撞检测以及足式机器人的动态平衡与柔顺控制提供了关键技术支撑,是目前高性能机器人力控的主流选择。

t8u9v0w1x的博客 658

安卓入门六十九 Framework-PMS

当用户安装应用程序的时候,Android PMS会负责将APK包解析成对应的Java对象,并将相关信息存储到系统目录下的data/data/packageManager.xml文件中,同时将APK包保存到系统目录下的data/app文件夹中。当用户卸载应用程序的时候,Android PMS会负责将系统目录下的data/data/packageManager.xml文件中对应该应用程序的信息删除,并将data/app文件夹下的该应用程序的APK包删除,同时删除该应用程序的数据和缓存。

weixin_52735932的博客 787

Cygwin安装教程

简介 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件 Cygwin就是一个windows软件,该软件就是在windows上仿真linux操作系统 简言之,cygwin是一个在windows平台上运行的 linux模拟环境,使用一个Dll(动态链接库)来实现 这样,我们可以开发出Cygwin下的UNIX工具,使用这个DLL运行在W...

Errol's Blog 13万+

用 Coze 打造纯自动化 AI 情报助手

本文将引导您逐步构建一个简易的AI情报助手,从提示词到工作流,再到卡片消息,详细讲解了如何利用Coze平台开发自动化工具。过程简单易懂,何不亲自动手一试?如果您对此类内容感兴趣,敬请关注本作者。未来,我将带来更多精彩的AI工具教程,助您迅速掌握各类AI应用。在这个AI时代,让您领先一步。t=O83A2AGI.NET AI 教程 震撼!用 Coze 打造纯自动化 AI 情报助手震撼!

xinzhaobuxuan的博客 2530

深入解析 Android PMS —— APK 安装与解析全流程

在 Android 系统中,PackageManagerService(简称 PMS)是负责管理应用程序的核心服务。无论是应用安装、卸载,还是权限分配,PMS 都扮演着至关重要的角色。本篇文章将带你深入探讨 PMS 的幕后机制,特别是 APK 安装与解析的详细流程。这篇文章的内容概述了 Android 系统中包管理服务(PMS)的工作原理,涉及从应用安装到卸载以及相关的持久化机制。介绍了系统启动时,SystemServer 启动 PMS 的过程,并通过 main 方法初始化 PMS。

weixin_44780781的博客 2993

最终篇——SWAT模型的建立

同理,Soil Data也是同样的方法导入,在Soil Database Options的选项中,选择UserSiol,用同样的方法导入土壤类型,进行重分类。打开窗口后,只定义HRU Thresholdes,其余两个不用设置,设定各数据单元的计算率,这里的10%的意思是计算精度,即分成级HRU计算单元太小,小于平均计算单元的10%,我们就不对这HRU单元进行计算(也就是说太破碎的计算单元不进行计算),若选择0%意味着全部进行计算,需要耗费大量的内存和时间,对计算机要求较高,不建议。

m0_72556434的博客 5620

Android PackageManagerService分析一:PMS的启动

从这一章开始,我们来分析Android的PackageManagerService,后面简称P

lilian0118的专栏 2万+

Star CCM+中衍生零部件下的阈值应用与区域内删除目标网格

同样的在绘制网格结束后,有时出现负体积网格或质量差的网格,为了节约时间成本,可能会选择将负体积的网格或质量差的网格删除。弹出相应的窗口,在窗口中选择相应的区域①,选择标量函数②(此处以网格体积变化为例),选择模型③,设置阈值④,选择No Dispalyer,会根据需求选择显示,最后点击Create⑥完成创建。此处以温度为例,若出现温度异常点,首先在①栏中勾选Function,然后在下面点击⑤Select,在弹出的Function窗口中选择温度场函数,再点击④Identify,查找温度异常网格数量。

2201_75375391的博客 2222

TPAMI 2024 | 基于外观的深度学习凝视估计:综述与基准测试

人类目光提供了关于人类焦点和意图的有价值信息,使其成为研究的关键领域。最近,深度学习彻底改变了基于外观的眼神估计。然而,由于眼神估计研究的独特特征,如2D眼神位置和3D眼神向量之间的不公平比较以及不同的预处理和后处理方法,缺乏开发基于深度学习的眼神估计算法的明确指导方针。在本文中,我们系统回顾了使用深度学习的眼神估计方法。首先,我们沿着典型的眼神估计流程调查现有的算法:深度特征提取、深度学习模型设计、个人校准和平台。

小白学视觉 341

PMS服务(安卓)

PWS(Package Manager Service)它是 Android 系统中负责应用的核心。

qq_61923884的博客 575

5.30华为OD机试真题 新系统 - 链表数字游戏 (Java/Py/C/C++/Js/Go)

5.30华为OD机试真题 新系统 - 链表数字游戏 (Java/Py/C/C++/Js/Go)

算法大师! 1113

Android源码分析-PackageManagerService(PMS)源码分析(一)PMS的初始化以及PackageManager的使用

PackageManagerService(简称PMS),顾名思义,用于进行Android包的管理。利用PackageManagerService服务,可以查询应用程序等信息,以及安装包(package)信息,以及该应用activity,service,权限等组件的信息。PackageManagerService是Android系统中的一个系统服务。Android系统中,提供了PackageManager类来对外(应用程序)提供API接口,对内(Android系统)与PMS进行IPC通信,最终通过PMS

记录和分享程序人生的点点滴滴 3131

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android Framework之PMS

PMS(PackageManagerService)是 Android 提供的包管理系统服务,它用来管理所有的包信息,包括应用安装、卸载、更新以及解析 AndroidManifest.xml。通常情况下我们不会把 PMS 单独的拆分出来讲解,因为 PMS 最主要的是提供给 AMS(ActivityManagerService)服务。

weixin_50358291的博客 525

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

安卓PMS、AMS介绍原理分析,App启动流程分析等大杂烩

PackageManagerService和ActivityManagerService都是Zygote进程fork出来的,我之前敲了一段文字介绍Zygote进程的,有兴趣的朋友可以先看看:初识Zygote进程 。 另外有位简书大佬写的文章,内容很全, 值得推荐:APK安装流程详解 PMS 什么是PMS? PMS类关系图 有界面安装 Packagelnstaller 无界面安装 APK安装原理 AMS 什么是AMS AMS的通信方式介绍 Activity跨进程跳转 App启动流程 A

让技术为我所用 1057

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: Android AMS原理分析
下一篇: Android application生命周期
明天的增加
博客等级 码龄11年 22粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值