Android插件化原理系列(一)启动未声明的Activity

来源:互联网 发布:淘宝详情图怎么上传 编辑:程序博客网 时间:2024/05/29 09:54

启动未声明的Activity的好处

1,插件化启动Activity
2,简化AndroidManifest.xml文件
3,动态部署Activity

原理

说到Activity的启动流程,读过源码的都知道我们都会经由android.app.ActivityThread类在主线程中执行。ActivityThread类有一个成员叫mInstrumentation,它会负责创建Activity等操作。通过篡改mInstrumentation为我们自己的PluginInstrumentation。当mInstrumentation为我们的时候,那就好办了,我们通过在AndroidManifest.xml声明一个占位的 LauncherActivity,并传入我们需要启动的Activity的类名过去。在PluginInstrumentation中,因为LauncherActivity是已经注册过的,我们可以顺利通过系统检测,然后在PluginInstrumentaction中的newActivity中通过Intent的Activity名称,通过反射的形式new 一个我们想要启动的Activity的类,这样我们的Activity虽然没有在AndroidManifest.xml中声明,但是却是被系统所管理的。

这篇文章主要讲解的是启动未声明的Activity的原理,这项技术主要用于动态加载技术。当然了,具体涉及到插件化的还有资源的问题。

技术交流

QQGroup:297798093

email:ibeam@qq.com

0 0
原创粉丝点击