APP插件化/组件化框架分析
VirtualAPK插件框架简单使用
今天主要讲述的阿里Atlas组件框架的简单使用,如果对插件化和组件化还不了解的,请移步APP插件化/组件化框架分析简单了解下。
项目结构
app 主项目
loadingbundle 远程加载组件 不打包进apk
homebundle 加载组件 打包进apk
commonlib 公共方法库 宿主与组件使用
项目使用流程
使用最新的Android studio开发工具、更新到最新的gradle-3.3-all。
官网地址和gradle各版本下载地址:
官网:http://gradle.org/release-candidate/
各版本下载地址:http://services.gradle.org/distributions-
编译apk包 gradlew assembleDebug 后安装到手机
app的build.gradle的语句"version = getEnvValue("versionName", "1.0.0");"中修改想要生成的app的versionName(默认为1.0.0) 在Terminal中执行gradlew assembleDebug生成apk 安装到手机adb install app/build/outputs/apk/app-debug.apk 把远程bundle推送到手机adb push app/build/outputs/remote-bundles-debug/libcom_liujc_loadingbundle.so /sdcard/Android/data/com.liujc.atlas/cache
发布到本地仓库 gradlew publish将跟apk同目录的ap文件发布到仓库,此时ap的版本是1.0.0。
如:会在本地仓库中生成对应文件信息C:\Users\DFH.m2\repository\com\liujc\atlas\AP-debug\1.0.0\AP-debug-1.0.0.ap-
修改版本号、修改项目内容、打差异包
gradlew clean assembleDebug -DapVersion=apVersion -DversionName=newVersion, 其中apVersion为之前打的完整apk的版本(即当前应用中的app版本),newVersion为此次动态部署要生成的新的版本号, 例如命令 gradlew clean assembleDebug -DapVersion=1.0.0 -DversionName=1.0.1
5、检查build/output/tpatch-debug 目录下文件是否生成,然后执行下面的命令
(根据你手机的当前版本推送对应版本的update-**.json,和对应的tpatch文件)
例如,这时是第1次部署,versionName是1.0.0,所以命令行是:
adb push build/outputs/tpatch-debug/update-1.0.0.json /sdcard/Android/data/com.liujc.atlas/cache/update-1.0.0.json
adb push build/outputs/tpatch-debug/patch-1.0.1@1.0.0.tpatch /sdcard/Android/data/com.liujc.atlas/cache/patch-1.0.1@1.0.0.tpatch
6、后续继续做想要的修改,我们要变成1.0.2 (某个bundle做动态部署的时候请更新版本号(versionName),因为差量会基于版本号对比)
gradlew clean assembleDebug -DapVersion=1.0.0 -DversionName=1.0.2 这时候会生成两个 patch-1.0.2@1.0.0.tpatch patch-1.0.2@1.0.1.tpatch
根据你目前的app版本号,重复5步骤,推送对应版本的update-**.json,和对应的tpatch文件。
例如: 如果这时你app的versionName是1.0.1
你命令行就是:
adb push build/outputs/tpatch-debug/update-1.0.1.json /sdcard/Android/data/com.taobao.demo/cache/update-1.0.1.json
adb push build/outputs/tpatch-debug/patch-1.0.2@1.0.1.tpatch /sdcard/Android/data/com.taobao.demo/cache/patch-1.0.2@1.0.1.tpatch
如果这时你app的versionName是1.0.0,也就是还是基线版本
你的命令行就是:
adb push build/outputs/tpatch-debug/update-1.0.0.json /sdcard/Android/data/com.taobao.demo/cache/update-1.0.0.json
adb push build/outputs/tpatch-debug/patch-1.0.2@1.0.0.tpatch /sdcard/Android/data/com.taobao.demo/cache/patch-1.0.2@1.0.0.tpatch
7、 后续继续做想要的修改,我们要变成1.0.3 (某个bundle做动态部署的时候请更新版本号,因为差量会基于版本号对比)
../gradlew clean assembleDebug -DapVersion=1.0.0 -DversionName=1.0.3 这时候会生成三个 patch-1.0.3@1.0.2.tpatch patch-1.0.3@1.0.1.tpatch patch-1.0.3@1.0.0.tpatch
根据你目前的app版本,重复5步骤,推送对应版本的update-**.json,和对应的tpatch文件。