插件化
2017-03-20 22:48:45 0 举报
插件化是一种软件开发技术,它允许开发者将一个大型应用程序分解为多个独立的模块或组件,这些模块可以独立开发、测试和部署。这些模块被称为“插件”,它们可以根据需要动态加载到主程序中,从而实现功能的扩展和更新。插件化技术可以大大提高软件的可维护性和可扩展性,使得开发者可以更加灵活地应对需求变化和技术升级。此外,插件化还可以实现模块化开发,降低团队协作的难度,提高开发效率。总之,插件化是一种先进的软件开发方法,它为现代软件开发带来了更高的灵活性和可扩展性。
作者其他创作
大纲/内容
最后调用我们之前写的这些代码,越早越好
等系统检查完了之后,再次通过反射拦截系统创建Activity的方法将原来我们替换的Activity再次替换回来
拿到宿主apk里ClassLoader中的pathList对象和我们自己创建的ClassLoader中的pathList对象
pathList为DexPathList类型,是BaseDexClassLoader类中的属性
在Application里调用也行,在Activity的attachBaseContext方法中也行
使用反射
将新的Elements[]数组设值给宿主pathList对象
反射获取\"android.app.ActivityManagerNative\
代理系统启动Activity的方法,然后将要启动的Activity替换成我们占坑的Activity
拿到宿主pathList对象中的Elements[]和我们创建的ClassLoader中的pathList对象的Elements[]
将两个Elements[]数组合并成一个Elements[]数组
Elements[]数组对应的属性名为dexElements
创建一个DexClassLoader对象去加载我们的插件apk
反射获取\"android.app.ActivityThread\"的currentActivityThread方法,通过执行方法得到ActivityThread对象,获取这个对象的mH属性,该属性的类型为Handler,获取该Handler对象的mCallback属性并将我们自己创建的mCallback赋给它
0 条评论
下一页