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

启动未声明的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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值