/appcan-plugin-demo-android

Android插件基础工程

Primary LanguageJava

AppcanPluginDemo-Gradle

AppCan Android 插件demo

####Gradle打包的优势

  • 插件工程简洁: 插件工程引擎部分内容全部在引擎的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,需要手动复制到插件包目录下。

###aar插件制作步骤(插件中有用到R.xx.xx)

1、 参考Demo工程编写调试好插件
2、 将build.gradle中的apply plugin: 'com.android.application'修改成apply plugin: 'com.android.library'
3、 make插件工程,拷贝build->outputs->aar->***.aar至插件包jar目录下,重命名为插件名称。
4、 用压缩工具打开aar,删除assets/widget目录,删除AndroidManifest.xmlminSdkVersion,删除plugin.xml文件
5、 复制plugin.xml文件到插件包目录,填写info.xml,制作插件包。
6、 将build.gradle中的apply plugin: 'com.android.library'修改成apply plugin: 'com.android.application'

如果是封装第三方SDK,需要通过config.xml配置appkey,插件包下面放一份AndroidManifest.xml,里面只包含需要替换的部分,同时删掉aar里面对应的内容,可以参考融云插件

通用导出插件包方法(基于Gradle,插件中没有使用R.xx.xx)

  1. build.gradle最后一行加上:

    apply from: "https://raw.githubusercontent.com/android-plugin/gradle-plugin/master/buildPlugin.gradle"

  2. 把插件相关的资源都放到插件文件夹之后执行:

    gradle buildPlugin

    以上命令执行的操作为:

    • 生成插件工程src部分的jar
    • 生成dex之后的jar
    • 生成插件包(在插件工程根目录下)

    或者找到 Gradle(IDE右上角)—>XXX—>Tasks—>other—>buildPlugin 双击即可

以uexQQ为例:(gif 1.7M)

buildPlugin