Android-Plugin-Framework集成开发
- 项目地址:https://github.com/limpoxe/Android-Plugin-Framework
- 若想要了解插件实现原理,请见项目地址的说明,本文档只是教如何使用APF框架进行插件开发。
插件开发简易流程
宿主程序
引入并编译PluginCore核心库
- 位置:项目根目录:
- 位置:项目根目录:
Application配置。若项目中定义过Application就继承插件的,若没有就定义库中的
- 项目中未定义application,AndroidManifest.xml中Application字段如下:
- 项目中未定义application,AndroidManifest.xml中Application字段如下:
- 检查PluginCore库中的AndroidManifest.xml文件的activity,service等配置(具体配置文件中有说明)
- 资源id分配问题,解决和插件资源id冲突,此处参照PluginMain项目中的代码
- 拷贝Android-Plugin-Framework-master\PluginMain\public.xml文件到宿主应用(:app)根目录(和build.gradle同级)
- 拷贝下面代码到build.gradle下
tasks.whenTaskAdded { task ->
if (task.name.startsWith("merge") && task.name.endsWith("Resources")) {
task.doLast {
copy {
from(project.getProjectDir()) {
include 'public.xml'
}
String dirName = task.name.replace("merge", "").replace("Resources", "");
//这里最好再增加一个buildType判断,而不是写死Debug和Release两种