阿里Atlas淘宝动态组件化框架详细攻略
2017-03-17 本文已影响7403人
x小明
前言:
- 在上周了解一些关于插件更新的技术,发现阿里将要开源一款可以用于组件化的Atlas框架。前两天发现已经开源了,真是惊喜无比在这里感谢阿里的开源精神。
- 官方的Demo比较简陋也没有详细的说明文档,在使用中遇到很多坑。这篇文章献给还无从下手的小伙伴们。
GitHub地址:https://github.com/alibaba/atlas
官网地址:http://atlas.taobao.org/
需要了解的知识: http://www.jianshu.com/p/cff4684803f3
提示:
1、最近Atlas官方更新了Demo
2、以下教程只针对老版本Demo
3、新版本的使用教程我就不写了,这里我提供一个我自己写的简化版本Demo,该有的功能都有也都加了注释,可以很方便的运用到项目当中: 组件框架Demo下载
<br />
简介:
先说下功能:
- 插件化开发,宿主与插件独立开发。
- 插件动态更新修复能力,快速升级。
<br />
使用到的项目atlas-demo
最上层 Demo里分为两个项目重要:
- app:相当于宿主(宿主依赖插件的方式暂时是通过maven来进行依赖,compile project本地依赖方式需要等到2.3.0 的版本)。
- FirstBundle:相当于插件(每次修改完成需要提交到maven,再让宿主依赖实现插件独立)。
- 也就是说宿主与插件的依赖方式是通过远程调用来达成的,从而达到组件独立开发。
<br />
注意的事项:
- JDK请使用1.8版本。
- 如果卡在构建界面,查看下是否下载了对应的gradle-2.14.1版本,gradle3.3版本暂时还不支持。
- 更新下最新的Demo,之前的Demo会有找不到dom4j等一些问题。
<br />
操作说明:
一:插件FirstBundle
1、打开FirstBundle提交默认版本到本地maven,比如修改为1.1.4
通过命令 gradlew clean assembleRelease publishMavenPublicationToMavenLocal
2. 修改build.gradle
修改版本号,并修改FirstBundleActivity(暂时不支持新增Activity)
修改版本号
3. 编译提交1.1.5到本地maven
通过命令 gradlew clean assembleRelease publishMavenPublicationToMavenLocal
<br />
二:生成宿主APP
1. 修改版本
对应FirstBundle未做修改的 1.1.4版本。
初始包版本号配置
2. 配置的插件位置
依赖FirstBundle,version需要对应本地maven插件的版本号。
初始包插件修改位置
3. 通过sh buildApk.sh编译
编译出初始版本宿主Apk(宿主里已经包含了FirstBundle),在安装到手机里。
如果不想使用sh命令,可以通过gradlew clean assembleDebug publish编译出初始包。
<br />
三、升级宿主App版本,生成差异补丁
1. 修改版本号
这里的1.1.5就是我修改好后上传maven的FirstBundle项目。
升级版本 修改版本号
2. 通过 sh buildTpatch.sh编译
- 编译出差异包patch-1.1.5@1.1.4.tpatch与更新文件update.json
- 差异包生成位置:atlas-demo\app\build\outputs\tpatch-debug
- 如果不想使用sh命令,可以通过:gradlew clean assembleDebug -DapVersion=1.1.4 -DversionName=1.1.5 编译(apVersion对应之前打的初始包版本号,versionName对应更新后的版本号)。
<br />
四:导入补丁到sd卡
- 宿主Demo里取这两个补丁文件的地址是(SD卡/Android/data/项目名称/cache/目录下)当然也可以自己去修改。
- 把刚才生成的两个文件放入到配置的目录下。
- 打开应用点击动态部署(如果没有意外的话就可以看到请重启App)
<br />
题外话:
- sh命令需要下载Git并配置环境变量
- gradlew命令需要下载对应得gradlew版本
- 我上面的命令操作都是通过Terminal操作的
<br />
总结
刚才开始无从下手,只能通过查看源码慢慢理解。对初学的开发者并不友好,所以写了这篇文章作为操作说明,希望能帮助小伙伴快速入门。
<br /><br />