保定市建设计网站,网站建设加盟代理,平面设计在哪里学,常州网站制作市场在了解了 PMS 的调用流程之后,都有那些用处呢?首先帮助了解 Android 包管理系统原理,还有就是配合 AMS 通过 Hook 技术,实现热更新、插件化等功能。 我们可以通过反射获取到 PackageParser 对象,再反射调用它的 parsePackage() 传入 apk 路径完成解析获取到 Package 对象,… 在了解了 PMS 的调用流程之后,都有那些用处呢?首先帮助了解 Android 包管理系统原理,还有就是配合 AMS 通过 Hook 技术,实现热更新、插件化等功能。
我们可以通过反射获取到 PackageParser 对象,再反射调用它的 parsePackage() 传入 apk 路径完成解析获取到 Package 对象,再反射 PMS 的 activities、providers、receivers、services 变量,将我们解析的数据添加进去,这样就实现了动态加载(不需要 AndroidManifest.xml 文件中添加信息)。
一、Hook技术
1、Hook介绍
Hook 是“钩子”的意思,在 Android 操作系统中系统维护着自己的一套事件分发机制。应用程序,包括应用触发事件和后台逻辑处理,也是根据事件流程一步步地向下执行。而“钩子”的意思,就是在事件传送到终点前截获井监控事件的传输,像个钩子钩上事件一样,并且能够在钩上事件时,处理一些自己特定的事件。 Hook 的这个本领,使它能够将自身的代码“融入”被勾住(Hook)的程序的进程中,成为目标进程的一个部分。在 Android 系统中使用了沙箱机制,普通用户程序的进程空间都是独立的,程序的运行彼此间都不受干扰。根据 Hook 对象与 Hook 后处理的事件方式不同, Hook 还分为