阿里Atlas淘宝动态组件化框架详细攻略

前言:

  • 在上周了解一些关于插件更新的技术,发现阿里将要开源一款可以用于组件化的Atlas框架。前两天发现已经开源了,真是惊喜无比在这里感谢阿里的开源精神。

提示:

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 />

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 1.框架的选择:本次选择的插件化框架在经过数次比较之后选择了国产大神开发的目前在市场上较为流行的small插件化框...
    凤天凌阅读 3,557评论 8 11
  • 1.步数达1万。为了紧致有型的身材!实际步数:。 2.做早餐,配图上传。 3.一幅摄影作品,配文字上传。 4.写晨...
    在装翅膀的猪阅读 123评论 0 0
  • 最近开始学Python的爬虫,是在这个博客跟着学习的,该博主用的是Python 2.7版本,而我使用的是3.5版本...
    sunhaiyu阅读 9,413评论 10 54
  • 我自认为我不是一个矫情的人,可到了这个时候也忍不住回头看几眼,叹声气,我想一定在这个属于即将毕业的学生来说,是大部...
    LIU大头阅读 266评论 0 0