淘宝框架atlas集成

本文详细介绍了淘宝的动态组件化框架Atlas,包括其简介、原理、Android打包基础、Gradle基础、接入步骤、Activity跳转关系、问题解答以及调试工具。Atlas是一个用于Android系统的容器化框架,提供工程模块的独立加载、动态更新等功能,支持业务模块的快速迭代和线上故障的动态修复。文章还提供了接入Atlas的实践操作,包括主APK构建、动态部署和远程bundle构建等。
摘要由CSDN通过智能技术生成

淘宝框架atlas

官网
文档
github
视频资料

如有错误请指正!

简介

Atlas是伴随着手机淘宝的不断发展而衍生出来的一个运行于Android系统上的一个容器化框架,我们也叫动态组件化(Dynamic Bundle)框架。它主要提供了解耦化、组件化、动态性的支持。覆盖了工程师的工程编码期、Apk运行期以及后续运维期的各种问题。
atlas是一个组件框架,atlas不是一个多进程的框架,他主要完成的就是在运行环境中按需地去完成各个bundle的安装,加载类和资源。

  • atlas能做什么
    1. 工程模块的独立加载和运行
    2. 及时上线新需求、快速迭代
    3. 业务灰度与技术灰度的快速验证
    4. 动态修复线上故障
    5. 有问题及时回滚

原理—–>具体请参考官方文档

atlas类加载机制---加载顺序:
1. 查找自身内部的class
2. 查找bundle依赖的bundle内的class
3. 查找主apk中的class

类加载机制

Bundle: 类似OSGI规范里面bundle(组件)的概念,每个bundle有自己的classloader,与其他bundle相隔离,同时Atlas框架下bundle有自身的资源段(PackageID,打包时AAPT指定);另外与原有OSGI所定义的service格式不同之处是Atlas里面Bundle透出所有定义在Manifest里面的component,随着service,activity的触发执行bundle的安装,运行。

awb: android wireless bundle的缩写,实际上同AAR类似,是最终构建整包前的中间产物。每个awb最终会打成一个bundle。awb与aar的唯一不同之处是awb与之对应有个packageId的定义。

host: 宿主的概念,所有的bundle可以直接调用host内的代码和资源,所以host常常集合了公共的中间件,UI资源等。host和bundle的依赖关系如下图所示:
host和bundle的依赖关系

Android打包基础(视频课时2)

1.处理资源文件
2.处理aidl文件
3.编译java文件
4.class2dex
5.apk打包
6.签名
7.zipalign对齐
打包基础
参考

gradle基础

Gradle史上最详细解析
Android Gradle 插件中文指南
自定义Gradle插件
官方文档—>英文好的可以去看,我是看不懂- -!

接入

官方demo中文件

module名 意义
activitygroupcompat demo中的工具类
app 客户端代码
databindbundle 使用Google bind框架demo
firstbundle 第一个业务bundle代码
lottie splashScreen依赖的代码
middlewarelibrary 中间键library,会打包到主dex中
publicbundle 共bundle代码,不会打入主dex中
remotebundle 远程bundle,在发布时不会编译进apk,而在客户端使用时,先下载后加载
secondbundle 第二个业务bundle代码
secondbundlelibrary 第二个业务单独依赖的代码
splashScreen 闪屏代码

在工程build.gradle文件中引入

这里写图片描述

 mavenLocal()//如果有GitHub地址就换成git上地址
 classpath "com.taobao.android:atlasplugin:2.3.3.rc1"

在appbuild.gradle文件中引入

  • 应用plugin
apply plugin: 'com.taobao.atlas'//atlas插件()
  • 添加运行库依赖
compile('com.taobao.android:atlas_core:5.0.7.30@aar') {
  //atlas核心库
        transitive = true
    }
    compile 'com.taobao.android:atlasupdate:1.1.4.10@aar'//atlas框架更新功能相关的库
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值