本书首先介绍Android组件化开发的基础知识,剖析组件化的开发步骤和常见问题,探究组件化编译原理和编译优化措施。其次在项目架构上,介绍如何组织团队来使用组件化开发,并将业务和人力进行解耦。最后深入介绍组件化分发技术及运用,探讨组件化架构的演进及架构的思维。
这是一本关于Android组件化的书籍
这是一本关于Android入门的书籍。
这是一本关于Android进阶的书籍。
这是一本关于Android编程原理的书籍。
这是一本关于Android架构的书籍。
我更愿意将这本书看作一本关于思维哲学的书籍。
书的用途,因人而异,有人用来垫书桌,有人将其作为工具,有人将其细细品味……
你用什么角度和什么态度来看待图书,它就会以什么形态展现在你眼前。
? 当你将它作为一本Android工具书时,它会指导你对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
苍王
LocalBroadcastManager.getInstance.unregisterReceiver(lbm);
1.getInstance没有参数 this
2.unregisterReceiver 的参数是 BroadcastReceiver 的对象,而不该是 lbm 这个对象
1.
Public class GankApplication extends ...
的 public 首字母应小写。2.
2.5.1
节”数据的存储方式”,SharedPreferences
都写错了,有地方写成SharePreference
,有地方写成SharePreferences