书籍作者:苍王 | ISBN:9787121336775 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:8569 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书首先介绍Android组件化开发的基础知识,剖析组件化的开发步骤和常见问题,探究组件化编译原理和编译优化措施。其次在项目架构上,介绍如何组织团队来使用组件化开发,并将业务和人力进行解耦。最后深入介绍组件化分发技术及运用,探讨组件化架构的演进及架构的思维。
苍王,欢聚时代 YY高级工程师,具有多年Android研发经验,致力于Android组件化、进程化的研究。活跃于简书、掘金等技术社区,喜欢分享自己的技术经验。
Android走过的十个年头,其技术演进也是有迹可循的,本书作者基于自己在大型App架构的技术演进中成长的经历,将遇到的相关问题进行深入剖析,包括Android 组件化架构、模块化架构、插件化架构等,并对近来国内热门Android架构体系及其研发流程,以及开发中遇到的问题进行深入剖析。
前 言
这是一本关于Android组件化的书籍
这是一本关于Android入门的书籍。
这是一本关于Android进阶的书籍。
这是一本关于Android编程原理的书籍。
这是一本关于Android架构的书籍。
我更愿意将这本书看作一本关于思维哲学的书籍。
书的用途,因人而异,有人用来垫书桌,有人将其作为工具,有人将其细细品味……
你用什么角度和什么态度来看待图书,它就会以什么形态展现在你眼前。
? 当你将它作为一本Android工具书时,它会指导你对Android的进阶学习。
? 当你将它作为一本软件架构书籍时,它会将工具和人的思想关联来调整你对架构的认知。
? 当你将它作为一本思维哲学书籍时,你有可能对Android开发有新的认识。
本书概要
第1章:组件化基础。
本章重点介绍组件化中开发的基础概念。首先介绍组件化中的依赖和解耦,然后介绍组件化中AndroidManifest的合成差异,最后深度认识Application的重要作用。
第2章:组件化编程。
本章介绍组件化中相关的开发编程技术,包括组件化通信、组件化存储、跨模块跳转、资源冲突解决、多模块渠道、资源混淆、数据库运用、签名相关的运用及原理剖析。
第3章:组件化优化。
本章介绍如何使用Gradle对组件化中多种使用方式的优化,以及对编译适配的优化。随后介绍使用Git仓库来组织多人进行组件化开发,以及多人开发的项目解耦。
第4章:组件化编译。
本章介绍如何在组件化项目中缩短编译时间。首先介绍Gradle的打包流程,以及Gradle构建基础。随后介绍Instant Run的使用和适用场景。最后介绍Freeline增量编译,以及部分原理剖析。
第5章:组件化分发。
本章介绍如何在单页面中处理复杂的业务逻辑。首先介绍Activity、Fragment、View的生命周期,以及组件化分发架构的嵌入。随后介绍依赖倒置型的设计和层级问题的解决方法,其中插叙了编译期注解的高效生成代码的形式。最后介绍动态加载配置的形式。
第6章:组件化流通。
本章介绍如何在组件化中工程封装工具SDK。首先介绍Maven基础和组件化中的缓存策略,随后介绍组件化中SDK的合成方式,最后介绍如何将SDK发布到流通平台中。
第7章:架构模板。
本章介绍如何制定组件化多人开发规范。首先介绍自定义Android Studio的模板及组件化模板的制作,随后介绍注解提示的使用。
第8章:架构演进。
本章介绍Android工程架构的演进,包括线程工程架构、组件化基础架构、模块化架构、多模板架构,以及进程化架构的原理基础。让读者能对Android架构有更加深入的了解。
读者对象
本书适合以下学习阶段的读者阅读:
? Android进阶学习阶段;
? Android组件化学习阶段;
? Android架构初级学习阶段
? 移动端开发思维哲学学习阶段。
致谢
感谢父母对我的思想启蒙的培育;感谢我的妻子丸子对我写作的鼓励和生活的照顾;感谢我曾经就职的广州三星和现在在职的欢聚时代。感谢Android组件化架构QQ群中的映客科技King、搜狐56夜闪冰、RetroX、亚伦,以及各位同学对我出版书籍内容上的建议。
勘误和互动
如果读者发现本书中文字、代码和图片的信息存在错误或者纰漏,欢迎反馈给我。若是对书中内容或者Android组件化架构存在疑问,可以在我的简书、掘金、QQ群中与我互动,届时会在这些平台发布勘误的信息,并欢迎各位读者的提问和建议。
QQ群:316556016
简书:http://www.jianshu.com/u/cd0fe10b01d2
掘金:https://juejin.im/user/565c6d3100b0acaad47e9050
GitHub:https://github.com/cangwang
苍王
第1章 组件化基础
1.1 你知道组件化吗
1.2 基础组件化架构介绍
1.2.1 依赖
1.2.2 聚合和解耦
1.3 重新认识AndroidManifest
1.3.1 AndroidManifest属性汇总
1.3.2 AndroidManifest属性变更
1.4 你所不知道的Application
1.4.1 Applicaton的基础和作用
1.4.2 组件化Application
1.5 小结
第2章 组件化编程
2.1 本地广播
2.1.1 本地广播基础介绍
2.1.2 使用方法
2.1.3 本地广播源码分析
2.2 组件间通信机制
2.2.1 组件化层级障碍
2.2.2 事件总线
2.2.3 组件化事件总线的考量
2.3 组件间跳转
2.3.1 隐式跳转
2.3.2 ARouter路由跳转
2.3.3 Android路由原理
2.3.4 组件化最佳路由
2.3.5 空类索引
2.4 动态创建
2.4.1 反射基础
2.4.2 反射进阶
2.4.3 反射简化jOOR
2.4.4 动态创建Fragment
2.4.5 动态配置Application
2.5 数据存储
2.5.1 数据的存储方式
2.5.2 组件化存储
2.5.3 组件化数据库
2.6 权限管理
2.6.1 权限机制
2.6.2 组件化权限
2.6.3 动态权限框架
2.6.4 路由拦截
2.7 静态常量
2.7.1 资源限制
2.7.2 组件化的静态变量
2.7.3 R2.java的秘密
2.8 资源冲突
2.8.1 组件化的资源汇合
2.8.2 组件化资源冲突
2.9 组件化混淆
2.9.1 混淆基础
2.9.2 资源混淆
2.9.3 组件化混淆
2.10 多渠道模块
2.10.1 多渠道基础
2.10.2 批量打包
2.10.3 多渠道模块配置
2.11 小结
第3章 组件化优化
3.1 Gradle优化
3.1.1 Gradle基础
3.1.2 版本参数优化
3.1.3 调试优化
3.1.4 资源引用配置
3.1.5 Gradle 4.1依赖特性
3.2 Git组件化部署
3.2.1 submodule子模块
3.2.2 subtree
3.3 小结
第4章 组件化编译
4.1 Gradle编译
4.1.1 Android基础编译流程
4.1.2 Instant Run
4.1.3 更优的Gradle构建策略
4.2 极速增量编译
4.2.1 Freeline的使用
4.2.2 Freeline运行介绍
4.3 小结
第5章 组件化分发
5.1 Activity分发
5.1.1 Activity的生命周期
5.1.2 Acitity分发技术
5.2 Fragment分发
5.2.1 Fragment的生命周期
5.2.2 Fragment分发技术
5.3 View分发
5.3.1 View的生命周期
5.3.2 View分发技术
5.4 依赖倒置
5.4.1 依赖倒置原则
5.4.2 依赖倒置分发
5.5 组件化列表配置
5.5.1 Javapoet语法基础
5.5.2 编译时注解配置
5.5.3 集成配置列表
5.6 加载优化
5.6.1 线程加载
5.6.2 模块懒加载
5.7 层级限制
5.8 多模板设计
5.8.1 多模板注解
5.8.2 脚本配置
5.8.3 动态配置
5.9 小结
第6章 组件化流通
6.1 内部流通
6.1.1 Maven基础
6.1.2 本地缓存
6.1.3 远程仓库
6.2 组件化SDK
6.2.1 SDK基础知识
6.2.2 Python脚本合并
6.2.3 fat-aar脚本合并
6.3 JCenter共享
6.4 小结
第7章 架构模板
7.1 组件化模板
7.1.1 模板基础
7.1.2 模板制作
7.1.3 实时模板
7.1.4 头部注释模板
7.2 注解检测
7.3 小结
第8章 架构演化
8.1 基础架构
8.2 基础组件化
8.3 模块化
8.4 多模板化
8.5 插件化
8.6 进程化
8.7 小结
附录A 思维与架构