开发者学堂课程【开源 Android 容器化框架 Atlas 开发者指南: atlas 项目介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/392/detail/5017
atlas 项目介绍
Atlas 是阿里巴巴集团开源的一块容器化框架,内容大概分为四个部分。
第一部分:Atlas 的介绍,Atlas 是什么?Atlas 能做什么? Atlas 的开源地址,以及我们的联系方式 。
第二部分:基础知识的准备,我们要学习 Atlas 框架原理,需要一些基础知识的储备 。
第三部分: Atlas Demo 工程的讲解,如何使用 Atlas ,如何配置,运行以及各模块之间的关系。
第四部分: Atlas 原理的介绍。
一:atlas 的介绍
1. Atlas 是什么?
Atlas 是伴随着手机淘宝的不断发展而衍生出的一个运行于 Android 系统上的一个容器化框架,我们也叫动态组件化框架。
它主要提供了解耦化、组件化、动态性的支持。覆盖了工程师的工程编码期、Apk 运行期以及后续运维期的各种问题。为什么会出现 Atlas 框架呢?
随着客户端功能的逐渐丰富,代码量、模块量的上升,经常会遇到由于模块相互依赖、模块编译问题等原因造成的整个应用无法打包,影响开发效率,无法按期上线。
由于功能的快速迭代,版本推送间隔的缩小,频繁提示用户升级的做法,造成不好的用户体验和升级率的降低。
Atlas 框架很好地解决了这两个问题。在工程期,可以实现工程的独立开发,独立调试,不再依赖开发期整个客户端不稳定的代码,做到模块的独立。在运维期,通过动态部署的方式提供快速增量的更新修复能力,快速升级,提升用户体验和版本升级效率。
2. Atlas 能做什么
1) 工程模块的独立加载和运行( Atlas 框架能将模块从整包中解耦)
2) 及时上线新需求、快速迭代 (可以通过动态部署的方式,快速上线需求,并且升级率远高于 apk 版本的推送更新。)
3) 业务灰度与技术灰度的快速验证(一些新功能,新技术的尝试,在开发测试同学验证过后,可以通过独立灰度的方式推送给少量用户进行验证。并且验证后可以版本回滚。但是这个灰度需要平台的支持,开源框架的使用需要配合公司的灰度平台进行二次开发。)
4) 动态修复线上故障 (通过Atlas框架生成补丁推送给用户,在不更新版本的情况下快速修复现场故障。)
5) 有问题及时回滚。(回滚是针对动态部署的版本进行的操作,可以将用户的功能回滚到安装 apk 时的版本。)
以上几点多数是通过动态部署完成的
动态部署的概念
动态部署是将两个 apk 的差量推送给用户,完成功能更新的一个过程。
动态部署与原有的 apk 更新策略相比,是一种相对比较轻量化的更新策略,不需要用户下载整个 apk ,只需要下载差量部分的内容来达到更新的效果。
同时也可以静默地完成更新过程,两者相结合,可以使动态更新的生效率远高于普通的升级策略。
3. Atlas 开源地址,
打开的 github 网站
Atlas 框架是阿里巴巴 group 下面的一个工程,
Atlas-aapt 是基于官方资源打包插件 aapt 进行修改后的版本。主要修改资源段的自定义部分。
Atlas-core 是 Atlas 框架运行时的核心库,负责主件的校验、安装、加载、运行、负责框架运行时的支持以及回滚的知识。
atlas-Demo 这个项目是 Atlas 作者开发的一个 demo ,里面包含了 Alas 的一些基础用法以及配置,这个项目后面会给大家比较详细的介绍。
atlas-docs ,就是文档 atlas-gradle-plug in 这个项目是基于 gradle 的构建插件,也就是我们打包所用的插件,里面包含 apk 打包、动态部署打包以及差量文件生成的逻辑。
atlas-update 这个模块儿是负责将差量文件与原有 apk 安装时的组件进行代码和资源的合并。差量文件的远程下载功能,可以在这个项目里进行二次封装,