PackageManagerService解析

PackageManagerService 应用安装管理流程解析 PackageManagerService(简称PMS)是Android系统中的一个核心服务,主要负责管理设备上安装的应用程序包(APK)。它是Android应用框架中的一个重要组件,为其他应用和系统组件提供了应用程序包的查询、安装、卸载等功能。 阅读详情

1,startService PackageManagerService

2,建立Socket处理安装请求

3,建立uid gid与上层permission的关系

4,启动 AppDirObserver 线程监测/system/framework,/system/app,/data/app,/data/app-private 目录的事件,主要监听 add 和 remove 事件

5,扫描以上的目录将解析的每个 apk 的信息保存到 packages.xml 和 packages.list 文件里,

参考 https://blog.youkuaiyun.com/andy_android/article/details/7245602

参考 https://www.jianshu.com/p/21412a697eb0

参考 https://www.jianshu.com/p/21412a697eb0

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) 阅读详情

相关推荐

APK的安装流程及PackageManagerService源码解析&静默安装

Android APK的安装卸载流程及PackageInstall源码解析&静默安装

你只是看起很努力 7110

PackageManagerService分析

一.概述 PackageManagerService(PKMS)是android系统中的核心服务,也是安卓常用的服务之一;它负责系统中Package的管理,应用的安装,卸载,信息查询等。 二 PKMS的启动分析 2.1 SystemService.startBootstrapServices 与ams一样pkms的启动在”system_service”进程中开启的 [—>S...

福锅的专栏 473

Android开发必知:PackageManagerService如何解析你的AndroidManifest.xml(附源码追踪技巧)

本文深入剖析了Android系统核心服务PackageManagerService如何解析AndroidManifest.xml文件。通过追踪源码,详细介绍了PKMS的启动、初始化流程,以及PackageParser如何将清单文件转化为系统内部数据结构,并提供了实用的源码追踪技巧与常见问题排查方法,帮助中高级开发者深入理解应用安装与识别的底层机制。

weixin_29290379的博客 623

PackageManagerService服务框架详解

PMS的结构图: service-client结构 service:提供代理类proxy给client调用,所有动作的具体实现都是在Service中实现的。 PackageManagerService,( ) client:获得Service的proxy实现调用 PackageManager,ApplicationManager,其余都是Service 客户端: PackageManager实际是一个抽象类,主要是用来调用Service中的方法。以getPackageIn...

weixin_42196034的博客 1372

深入解析Android PackageManagerService:从AndroidManifest.xml解析到应用安装全流程

本文深入解析了Android PackageManagerService(PKMS)的核心工作机制,重点剖析了其如何解析AndroidManifest.xml文件,并详细阐述了从系统启动初始化到用户应用安装的全流程。文章揭示了PKMS作为系统应用“大管家”的角色,帮助开发者理解应用安装、组件注册及权限管理的底层原理,从而更高效地排查相关开发问题。

weixin_29198045的博客 183

Cursor聊天记录迁移工具:实现跨设备AI对话同步与备份

在软件开发中,数据持久化与迁移是常见需求,尤其当工具依赖本地存储时。SQLite作为轻量级关系型数据库,因其嵌入式、零配置特性,常被用于存储应用状态与用户数据。其WAL(预写式日志)模式提升了并发性能,但也增加了数据操作复杂性。通过命令行工具与JSON序列化技术,可以实现结构化数据的提取、转换与安全迁移,这对于保障开发资产的连续性与可移植性具有重要价值。例如,在AI辅助编程场景下,开发者与AI的对话记录包含关键的问题分析、解决方案与决策逻辑,是重要的上下文资产。cursor-chat-transfer工具正

weixin_42551967的博客 533

Android PackageManagerService(PMS) —— APK 安装与解析全流程

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

pbx6666的博客 1155

混合开关电容DCDC变换器技术解析与工程应用指南

在电源设计领域,传统DCDC变换器在高降压比或高升压比场景下,往往面临占空比过窄、开关应力大、效率偏低等瓶颈。开关电容变换器虽能实现固定比例的电压变换,却受限于调节能力。混合开关电容DCDC变换器通过“开关电容网络粗调变比+电感式DCDC细调输出”的策略,兼顾高效率、高功率密度与宽调压范围。本文梳理了其典型拓扑(如2:1/4:1 SC+Buck)、关键对比、控制策略(含软充电)及工程应用中的常见问题,帮助电源工程师在服务器供电、快充、车载电源等场景下快速选型与调试。

weixin_29164185的博客 311

PackageManagerService 源码解析

一.SystemServer创建PackageManagerService     省略 二.PackageManagerService 构造函数  2.1 Settings mSettings = new Settings(mPackages); mSettings.addSharedUserLPw("android.uid.system", Proce...

pirionFordring的博客 752

华为OD机考双机位C卷 - 评委评分 (Java & Python& JS & C/C++ & GO )

华为OD机考双机位C卷 - 评委评分 (OD上机考试双机位C卷)。提供在线OJ刷题。Java、C++、Python、GO语言、C语言、JavaScript题解,并提供完整思路讲解。

算法大师! 1750

华为OD机试真题 新系统 2026-04-22 Python&JS 实现【小学生班长选举增强版】

9 月份开学第一天,小学某班级进行班长选举活动,班级共有 N 个学生,每个学生最多可投 3 票(对同一个人只能投一票),也可以弃权不投票,大家投票时写上对应学生的名字。 假设学生不存在重名。考虑到部分少数民族名字带分隔,且整体较长,同学在投票时为了方便,允许同学写全称,也可以只写其中的部分连续段。 例如班级里只有 2 个少数民族名称带点的同学:

MISAYAONE的博客 316

PackageManagerService包扫描和apk解析过程

ParallelPackageParser中利用线程池处理并发问题,执行多个apk文件的解析,并使用阻塞队列的方式同步线程的数据,在submit提交的任务run()方法中,创建了PackageParser对象并调用parserPackage()方法解析apk,之后将解析的结果封装在ParseResult中,最后添加到mQueue队列中,PMS中在依次调用take()方法从mQueue队列中获取执行的结果;在scanDirTracedLI()方法中,调用scanDirLI()方法进行扫描。

Tec_Xie的博客 1541

STM32入门教程:WiFi通信

第四步:初始化串口 在生成的代码中,您可以找到一个名为 "USARTx_Init" 的函数,其中 "x" 是您选择的串口号。然后,我们使用 "AT+CIPSEND" 命令发送UDP数据,接收到服务器的回复,并在终端上显示收到的数据。在配置向导中,您可以选择启用USART串口功能,并根据您的硬件连接,将串口设置为与WiFi模块连接的串口。在上述代码中,我们使用了 "HAL_UART_Receive" 函数来接收串口数据,并使用 printf 来在终端上显示收到的数据。如果有任何问题,请随时向我提问。

2401_85258012的博客 1073

【Android源码系列】如何解析APK-PackageManagerService

一、惯例BB新的一年又到了,2018也要加油啊~距离写上一篇文章也有一个月了,今天我们就来看看PackageManagerService(以下简称PMS)。 PMS和AMS、WMS一样,也是一个系统服务,他的主要作用就是解析APK信息,并保存下来。我们平时写在Manifest里的信息是如何被解析的呢?没错都是他干的。还记得我在前面一篇文章《 VirtualAPK插件化方案原理探索》里留下了一个坑:

verymrq的博客 919

Android一个APP里面最少有几个线程

Android应用启动时,默认会创建一个进程,该进程中最少包含负责处理用户交互、UI更新等核心操作,所有与界面相关的逻辑必须在此线程执行。若在此线程执行耗时操作(如网络请求),会导致界面卡顿甚至触发ANR(应用无响应)。当对象重写了finalize()方法时,该线程负责将这些对象放入队列并调用其finalize()方法,完成资源释放后再由GC回收。监控的执行效率。如果finalize()方法执行超时(默认10秒),此线程会触发虚拟机退出以防止应用长时间阻塞。

编程进化论 613

PackageManagerService(PackageParser)解析apk的过程

<br />1.apk的资源文件有AssetManager来管理的<br />2.解析AndroidManifest的service的代码流程<br />PackageManagerService.java->installPackage()->handleMessage(INIT_COPY)->handleMessage(MCS_BOUND)-><br />HandlerParams.java->startCopy()->handleReturnCode()<br />PackageManagerServ

无相 2876

C++面试八股文

和静态多态(又称编译期多态,即在系统编译期间就可以确定程序将要执行哪个函数),其中动态多态是通过虚函数实现的,虚函数是类的成员函数,存在存储虚函数指针的表叫做虚函数表,虚函数表是一个存储类成员虚函数的指针,每个指针都指向调用它的地方,当子类调用虚函数时,就会去虚表里面找自己对应的函数指针,从而实现“谁调用、实现谁”从而实现多态。而C++符号表中的符号不是以函数名命名的,称为函数名修饰规则,虽然函数名相同,但是函数参数等其他属性不同,取的符号也不同,所以不会产生查询歧义的问题,使得函数可以重载。

qq_46676829的博客 904

PackageManagerService(2)扫描目录并解析APK

在 PackageManagerService(1)扫描前的准备 文章中,分析了 PKMS ( PackageManagerService ) 在扫描之前的准备工作,这篇文章来分析扫描目录并解析APK的过程。 扫描目录并解析APK这个过程,伴随着大量升级相关的代码,但是我要提醒一句,我们现在分析的目标是系统首次开机,并不会把系统升级的代码混淆在一起分析。 扫描目录,解析APK public PackageManagerService(Context context, Installer instal

不惜留恋_ 1622

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android P包管理机制之PackageManagerService授予权限流程解析

PackageManagerService中默认给系统app授予相关需要的权限。 PackageManagerService中的systemReady是在SystemServer中执行的。 \frameworks\base\services\java\com\android\server\SystemServer.java /** * Starts a miscellaneous grab bag...

Sunxiaolin2016的博客 1706

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android -- PackageManagerService APK扫描流程解析

Android -- PackageManagerService APK扫描流程解析 PackageManagerService(PKMS)构造中触发APK扫描的函数调用是:scanDirTracedLI(),它会遍历我们传入的文件路径,然后循环解析其中存在的APK文件,并将信息解析出来存入PKMS内部,供后续的运行时信息管理。PKMS这一部分的函数调用很深,我们这里只看其中的几个关键函

To be or not to be, it's a question 2128

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

PackageManagerService启动流程源码解析

转载自:http://blog.youkuaiyun.com/u012124438/article/details/54882771PackageManagerService,是Android系统中核心服务之一,管理着所有跟package相关的工作,常见的比如安装、卸载应用。 PKMS服务也是通过binder进行通信,IPackageManager.aidl由工具转换后自动生成binder的服务端IPackag

edc_Wei的博客 809
上一篇: ListView源码解析
下一篇: 算法读书笔记
杨殿生
博客等级 码龄10年 11粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值