Skip to content

android插件化案例,适合零门槛入手。其中包含:1.aapt修改资源前缀,合并宿主和插件资源。2. Hook ClassLoader,合并宿主与插的dex文件。3. Hook 加载动态替换Application、启动插件的Activity、Service、BroadcastReceiver、ContentProvider,以及Fragemnt。4.hook PMS,实现签名拦截

13767004362/HookDemo

Repository files navigation

前言

开源盛行的插件化框架有很多,实现方式也有很多种。本项目是介绍如何加载dex文件(java代码)、so库(c++代码)、资源文件(resource)到虚拟机,围绕Android Framework源码,如何启动插件中Activity、Service、BroadcastReceiver、ContentProvider四大组件,从而了解到插件化中核心知识点。

注意点:若是实际项目中使用,推举使用成熟的插件化框架,存在的bug较少。

插件化教程核心点: 围绕Android 7.0 framewok层讲解相应的源码

备注点:以上插件化核心点的代码已经全部实现,详细介绍正在完善。

项目特别说明

  1. 需要先阅读Android 插件化之aapt修改资源前缀,接着,配置好aapt。
  2. 在导入项目,进行调试。

Android P以上非公开API限制问题

android官方在9.0以上版本,限制反射调用hide隐藏api,给插件化带来一片阴影。

不过,国内大牛厉害,针对该问题已经有过墙梯。详细方案,请阅读另一种绕过 Android P以上非公开API限制的办法, 使用FreeReflection 库便可解决。

目前在android 12 以上机型,存在反射问题。请在android 11以下运行本案例,若有其他crash 问题,欢迎提交Issues。


资源参考

About

android插件化案例,适合零门槛入手。其中包含:1.aapt修改资源前缀,合并宿主和插件资源。2. Hook ClassLoader,合并宿主与插的dex文件。3. Hook 加载动态替换Application、启动插件的Activity、Service、BroadcastReceiver、ContentProvider,以及Fragemnt。4.hook PMS,实现签名拦截

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages