当我们构建一个Android应用程序时,Android系统框架为我们提供了很大的灵活性。这种灵活性虽然很有意义但同时也会导致APP中出现庞大的类,不一致的命名和各种架构方式。使得APP的测试,维护和扩展变得困难。
Android架构蓝图是解决这些共性问题的一个典范,在这个项目中我们会通过不同的架构理念和工具来实现一个相似功能的应用程序。
你可以把这些例子作为参考或者直接在它们的基础上开发你的APP,把你的注意力放在它们的代码结构,架构,测试和可维护性上。但是请记住通过这些架构和工具还有许多种方式来构建APP,这取决于你的侧重点,所以这些例子不应该当成一个典范。其中的用户界面是故意保持简单的。
Samples
所有的项目都在它们自己的分支上,你可以通过检出每个项目的readme来了解更多。
Stable samples
- todo-mvp/ - 基础的MVP架构。
- todo-mvp-loaders/ - 基于todo-mvp/使用Loaders加载数据。
- todo-databinding/ - 基于todo-mvp/使用了数据绑定库。
- todo-mvp-clean/ - 基于todo-mvp/ 使用了Clean架构的概念。
- todo-mvp-dagger/ - 基于todo-mvp/ 使用Dagger2 进行依赖注入。
- todo-mvp-contentproviders/ - 基于todo-mvp-loaders/ 使用Loaders和 Content Providers来加载数据。
- todo-mvp-rxjava/ - 基于todo-mvp/, 使用RxJava实现并发和数据层的抽象化。
Samples in progress
- dev-todo-mvp-tablet/ - 基于todo-mvp/, 增加了对平板电脑的主/详细视图。
"New sample" issues 中查看未来将要实现的新的例子。
External samples
这些例子是由社区贡献的,可能无法和分支保持同步 。
- todo-mvp-fragmentless/ -基于todo-mvp/, 使用Views代替Fragments。
What does beta mean?
我们还在进一步构思,这可能会影响到所有的例子,所以在稳定的发布版之前将保持一个较低的初始版数量。
Why a to-do application?
这个APP的目的是为了足够简单和帮助你快速理解,但是也足够复杂来展示不同的设计需求和测试场景,[设计规范](https://github.com/googlesamples/android-architecture/wiki/To-do-app-specification)。
这里有一个类似的工程注意和JavaScript frameworks框架的区别, TodoMVC。
Which sample should I choose for my app?
这是由你来决定:每个例子都有一个README在其中你会发现它的适用范围,你可能会因为APP的大小,你的团队的大小,维护的费用,是否需要支持平板电脑和多平台,代码库的大小等等从而影响你的决定。
Opening a sample in Android Studio
首先检出一个分支,然后打开todoapp目录。
例如:
- git clone git@github.com:googlesamples/android-architecture.git
- git checkout todo-mvp(用你想要检出的项目替换todo-mvp)
- 在Android Studio打开todo-mvp目录.
Who is behind this project?
这个项目是由社区构建并有Google核心人员维护的。
External contributors
David González
Karumi
Natalie Masse
Erik Hellman
Saúl Molinero
Florina Muntenescu
Googlers
Jose Alcérreca
Stephan Linzner
Mustafa Kurtuldu
接下来会对该项目中各个例子进行详细解析,喜欢就请关注吧。
网友评论