GithubHelp home page GithubHelp logo

13767004362 / hookdemo Goto Github PK

View Code? Open in Web Editor NEW
168.0 3.0 58.0 17.78 MB

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

Java 100.00%
plugin-architecture plugin-system android-development

hookdemo's Introduction

前言

开源盛行的插件化框架有很多,实现方式也有很多种。本项目是介绍如何加载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。


资源参考

hookdemo's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

hookdemo's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.