AppCan Android 插件demo
- 插件工程简洁: 插件工程引擎部分内容全部在引擎的
aar
文件里面,插件工程只包含插件部分的内容 - 插件包生成简单: Gradle打包支持
aar
文件,可以把插件包除info.xml
的部分全部打包在aar
文件里面 - 调试插件简单: 前端使用多个插件时,调试只需要把插件包的
aar
文件放入libs
目录即可 - 支持R.XX.XX方式调用资源: 用
aar
生成插件包时,可以直接使用R.id.xxx
- 由于要启动的
Activity
在引擎的aar
里面,IDE目前不能识别,直接run插件工程会不能启动应用,需要手动点击应用或者在IDE指定启动的Activity
aar
只能在Gradle编译环境下使用.建议不支持的企业版打包服务升级.- 由于打包服务器暂时不能连外网,远程依赖不能用,只能把依赖包(
aar
,jar
)下载到本地.╮(╯▽╰)╭ plugin.xml
打包时不能自动merge,需要手动复制到插件包目录下。
- gradle-wrapper.properties中的配置,在当前Demo中推荐使用4.1版本,即:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
- build.gradle中的Android编译用的gradle插件,在当前Demo中推荐使用3.0.1,即:
classpath 'com.android.tools.build:gradle:3.0.1'
- 注意:以上版本仅供参考,代表已经测试并适配过。升级版本也不是不可以,但是如果有报错的话,可以反馈给官方,或者提issue,或者自己解决。解决不了的,就用推荐版本。
由于compile关键词已经废弃,现在AppCanDemo中统一使用implementation
- 依赖指定版本的引擎(4.3+的引擎适配了Android9.0+)
implementation 'org.appcan:engine:4.3.23'
- 依赖最新版本的引擎
implementation 'org.appcan:engine:latest.release'
- 纠正一个之前文档中的错误:+号不代表最新版本,而是本地已经下载过的任意版本,不保险,不推荐使用。
implementation 'org.appcan:engine:+' // 不推荐使用此写法
- 参考Demo工程编写调试好插件
- 将
build.gradle
中的apply plugin: 'com.android.application'
修改成apply plugin: 'com.android.library'
- make插件工程,拷贝
build->outputs->aar->***.aar
至插件包jar
目录下,重命名为插件名称。 - 用压缩工具打开aar,删除
assets/widget
目录,删除AndroidManifest.xml
的minSdkVersion
,删除plugin.xml
文件 - 复制
plugin.xml
文件到插件包目录,填写info.xml
,制作插件包。 - 将
build.gradle
中的apply plugin: 'com.android.library'
修改成apply plugin: 'com.android.application'
如果是封装第三方SDK,需要通过config.xml配置appkey,插件包下面放一份AndroidManifest.xml
,里面只包含需要替换的部分,同时删掉aar里面对应的内容,可以参考融云插件
-
在
build.gradle
最后一行加上:apply from: "https://raw.githubusercontent.com/android-plugin/gradle-plugin/master/buildPlugin.gradle"
-
把插件相关的资源都放到插件文件夹之后执行:
gradle buildPlugin
以上命令执行的操作为:
- 生成插件工程src部分的jar
- 生成dex之后的jar
- 生成插件包(在插件工程根目录下)
或者找到
Gradle(IDE右上角)—>XXX—>Tasks—>other—>buildPlugin
双击即可
以uexQQ为例:(gif 1.7M)