背景
近期,无意间从头翻阅了一下 Android 官方文档,发现文章的目录结构有不少改动的当地。我测验从这些改动的当地,一探 Android App 架构的演进方向。当然文档中包括的主题有很多,本文主要从架构相关的主题进行介绍。
官方文档中,中文与英文中的目录结构并不相同,英文版别结构愈加合理,中文文档结构应该是翻译进度问题有所滞后。也正是由于这种滞后的现象,才可以愈加方便的对比出官方关于各项技能的考虑。
下面咱们就看下详细的差异点在什么当地。
杰出架构设计,独立为章节
在中文版别的文档中,架构相关的内容散落在中心主题的各处,而在英文版别中则将架构部分单独抽成一个相对独立的部分。
英文版别中相较于中文版别的改动主要有以下几点:
- 新增
App architecture
章节,并且在中心主题(Core topics
)之上; - 将中心主题中的新版架构攻略、架构组件、导航内容放入架构章节;
- 将最佳实践章节中的依靠注入放入架构章节;
下面会对涉及的改动的部分做一个详细的展开。
架构攻略
攻略这部分在中文版别中无法在目录结构中无法直接索引,英文版别中则可以比较明晰的看到 UI Layer
、Domain Layer
、Data Layer
等内容。
架构组件
架构组件现在看是 Jetpack 系列组件的子集,包括我们日常过程中可能会经常使用到的组件。
中文版别中,这部分是直接罗列;在英文版别中则是对其进行了分类。
UI 相关的组件放到了 UI Layer 中,数据相关的则放到了 Data Layer 中。UI Layer
中对生命周期相关的内容做了个收敛。
App 进口(App Entry points)
App 进口这部分在中文版别中是没有界说的,在英文版别中则是把中心主题的 Activity 内容做了拆分。讲中文中的 Activity 原先内容中抽离出了额定的两部分:Shortcuts 和 App Widgets。Shortcuts调整成和 Activity 平级,都是 App 的进口,App Widgets 则是继续待在中心主题部分。
App 导航
App 导航部分英文版别也是中文版别做了一次整理,逻辑愈加明晰。除了包括 Jetpack 组件中的 Navigation 之外,还有 Fragment 、App Links 以及 ViewPager 等内容。
依靠管理
这部分内容基本上内容没有调整,仅仅是从最佳实践部分移动到App 架构部分。
App Startup
这部分在中文版别中是在架构组件内,英文版别中是和依靠注入、App导航等内容是平级的联系,这也是比较好了解的。
斗胆猜测
依据个人了解,英文版别中的组织结构应该也不是终究版别,也会不断更新的。我个人觉得后面还会有相关的知识点会纳入到 App 架构的章节中。下面便是我个人的斗胆猜测。
- Data Layer 中会新增
Room
库,当然可能不仅仅会新增 Room 库,整个数据及文件部分都有可能移入到 Data Layer 中,现在 Room 库也是在数据及文件部分的。 - App 进口部分参加
App Widgets
/Glance
及 Service 部分,App Widgets
比较好了解,在技能方面他是和App Shortcuts
类似的东西,对外暴露的Service
,也可以作为是 App 的进口,当然这部分也可以作为是代码块调用的进口。
整体结构如下:
总结
经过对比中英版别文档,咱们可以看到官方文档对各个知识点组织方法的演进方向。除了 App 的分层架构之外,还在逐步完善 App 整体架构。
也是希望经过这次对官方文档的整理,可以将 Jetpack 中常用的一些组件库在我们的脑海中建立一个网状联系,知道知识与知识之间的联系及链接,建立自己的知识网络。