插件化
Justwen26
这个作者很懒,什么都没留下…
展开
-
Android 插件化分析(3)- Activity启动流程
在真正分析插件化技术前,我们必须了解一些必要的关于Android四大组件的相关知识。以Activity为例,我们需要了解Activity启动过程,才能有效的进行Hook实现插件化。以Android 8.1为例我们启动一个Activity通常会使用startActivity方法,但是在Activity内部最终都会调用startActivityForResult方法 publi...原创 2018-11-18 21:52:10 · 226 阅读 · 0 评论 -
Android 插件化分析(4) - 启动一个没有在manifest注册的Activity
Activity必须要在manifest里申明,否则会抛出ActivityNotFoundException。这个是大家再熟悉不多的Android开发规则。但是所谓的插件化就是要在不安装新的apk的情况去修复bug或者增加新的功能,增加一个新的Activity是再正常不过的要求,所以我们就需要利用反射和动态代理去实现这一个要求。之前分析过,要启动一个Activity我们需要把Intent发...原创 2018-11-22 01:58:31 · 1508 阅读 · 1 评论 -
Android 插件化分析(5)- 加载外部dex
Android 插件化能从外部下载apk并加载主要依赖于ClassLoader。ClassLoder是一个抽象类,其中最重要的是BaseDexClassLoader及其子类PathClassLoader和DexClassLoader. public DexClassLoader(String dexPath, String optimizedDirectory, ...原创 2018-11-22 01:31:27 · 493 阅读 · 0 评论 -
Android 插件化分析(1)- 反射
Java中有一个非常强大的技术:反射。通常我们可以使用反射技术去调用一个类的私有方法或者是访问和修改一个私有属性。 1. 如何获取一个类的类型1.1 直接通过一个类的对象获取它的类型。 String reflect = "reflect"; Class clz = reflect.getClass();1.2 通过类的命名空间和类名去获取类型...原创 2018-11-18 00:09:56 · 196 阅读 · 0 评论 -
Android 插件化分析(2)- 动态代理
代理模式是一个非常常用的设计模式,如果一个类的名称带有Proxy,基本就是使用了代理模式。代理模式为其代理的对象提供了访问的控制。UML图如下public interface IObject { void run();}class ObjectImpl implements IObject { @Override public void run(...原创 2018-11-18 20:47:36 · 237 阅读 · 0 评论