Android插件开发 —— 基础入门篇
1. 插件开发的三个角色
宿主App(PluginHost)
用户已经安装在手机上的应用,通过宿主可以加载插件,实现动态加载。插件(Plugin)
用户尚未安装的应用,通过宿主进行加载。插件接口(PluginSDK)
宿主和插件共用的接口。
2. 如何加载未安装的apk?
使用DexClassLoader可以加载一个未安装的apk中的类
1. 关于PathClassLoader
- PathClassLoader是系统默认的类加载器。它只能加载已经安装的apk。继承了CLassLoader类。
2. 关于DexClassLoader
- DexClassLoader可以加载任何路径下的apk、dex、jar文件。
- DexCLassLoader的构造方法
public DexClassLoader (String dexPath, String optimizedDirectory,
String libraryPath, ClassLoader parent)
- dexPath:要加载的apk、dex、jar包的绝对路径
- optimizedDirectory:生成的dex文件所保存的目录
- libraryPath:native方法所在的库文件目录
- parent:父加载器
3. 简单的例子
在Android Studio下新建一个工程,名为Plugin。
1. 创建Plugin的接口Module,名为PluginSDK
注意:创建时选择Android Library。
该Module定义了一个接口,代码如下:
package zhp.android.plugin.sdk;
/**
* @author 郑海鹏
*