當(dāng)我們構(gòu)建一個(gè)Android應(yīng)用程序時(shí),Android系統(tǒng)框架為我們提供了很大的靈活性。這種靈活性雖然很有意義但同時(shí)也會(huì)導(dǎo)致APP中出現(xiàn)龐大的類罚斗,不一致的命名和各種架構(gòu)方式反浓。使得APP的測(cè)試,維護(hù)和擴(kuò)展變得困難酱床。
Android架構(gòu)藍(lán)圖是解決這些共性問(wèn)題的一個(gè)典范,在這個(gè)項(xiàng)目中我們會(huì)通過(guò)不同的架構(gòu)理念和工具來(lái)實(shí)現(xiàn)一個(gè)相似功能的應(yīng)用程序。
你可以把這些例子作為參考或者直接在它們的基礎(chǔ)上開(kāi)發(fā)你的APP平挑,把你的注意力放在它們的代碼結(jié)構(gòu),架構(gòu)系草,測(cè)試和可維護(hù)性上通熄。但是請(qǐng)記住通過(guò)這些架構(gòu)和工具還有許多種方式來(lái)構(gòu)建APP,這取決于你的側(cè)重點(diǎn)找都,所以這些例子不應(yīng)該當(dāng)成一個(gè)典范唇辨。其中的用戶界面是故意保持簡(jiǎn)單的。
Samples
所有的項(xiàng)目都在它們自己的分支上能耻,你可以通過(guò)檢出每個(gè)項(xiàng)目的readme來(lái)了解更多赏枚。
Stable samples
- todo-mvp/ - 基礎(chǔ)的MVP架構(gòu)。
- todo-mvp-loaders/ - 基于todo-mvp/使用Loaders加載數(shù)據(jù)晓猛。
- todo-databinding/ - 基于todo-mvp/使用了數(shù)據(jù)綁定庫(kù)饿幅。
- todo-mvp-clean/ - 基于todo-mvp/ 使用了Clean架構(gòu)的概念。
- todo-mvp-dagger/ - 基于todo-mvp/ 使用Dagger2 進(jìn)行依賴注入戒职。
- todo-mvp-contentproviders/ - 基于todo-mvp-loaders/ 使用Loaders和 Content Providers來(lái)加載數(shù)據(jù)栗恩。
- todo-mvp-rxjava/ - 基于todo-mvp/, 使用RxJava實(shí)現(xiàn)并發(fā)和數(shù)據(jù)層的抽象化。
Samples in progress
- dev-todo-mvp-tablet/ - 基于todo-mvp/, 增加了對(duì)平板電腦的主/詳細(xì)視圖洪燥。
"New sample" issues 中查看未來(lái)將要實(shí)現(xiàn)的新的例子磕秤。
External samples
這些例子是由社區(qū)貢獻(xiàn)的乳乌,可能無(wú)法和分支保持同步 。
- todo-mvp-fragmentless/ -基于todo-mvp/, 使用Views代替Fragments亲澡。
What does beta mean?
我們還在進(jìn)一步構(gòu)思钦扭,這可能會(huì)影響到所有的例子,所以在穩(wěn)定的發(fā)布版之前將保持一個(gè)較低的初始版數(shù)量床绪。
Why a to-do application?
這個(gè)APP的目的是為了足夠簡(jiǎn)單和幫助你快速理解客情,但是也足夠復(fù)雜來(lái)展示不同的設(shè)計(jì)需求和測(cè)試場(chǎng)景,[設(shè)計(jì)規(guī)范](https://github.com/googlesamples/android-architecture/wiki/To-do-app-specification)癞己。
這里有一個(gè)類似的工程注意和JavaScript frameworks框架的區(qū)別, TodoMVC膀斋。
Which sample should I choose for my app?
這是由你來(lái)決定:每個(gè)例子都有一個(gè)README在其中你會(huì)發(fā)現(xiàn)它的適用范圍,你可能會(huì)因?yàn)锳PP的大小痹雅,你的團(tuán)隊(duì)的大小仰担,維護(hù)的費(fèi)用,是否需要支持平板電腦和多平臺(tái)绩社,代碼庫(kù)的大小等等從而影響你的決定摔蓝。
Opening a sample in Android Studio
首先檢出一個(gè)分支,然后打開(kāi)todoapp目錄愉耙。
例如:
- git clone git@github.com:googlesamples/android-architecture.git
- git checkout todo-mvp(用你想要檢出的項(xiàng)目替換todo-mvp)
- 在Android Studio打開(kāi)todo-mvp目錄.
Who is behind this project?
這個(gè)項(xiàng)目是由社區(qū)構(gòu)建并有Google核心人員維護(hù)的贮尉。
External contributors
David González
Karumi
Natalie Masse
Erik Hellman
Saúl Molinero
Florina Muntenescu
Googlers
Jose Alcérreca
Stephan Linzner
Mustafa Kurtuldu
接下來(lái)會(huì)對(duì)該項(xiàng)目中各個(gè)例子進(jìn)行詳細(xì)解析,喜歡就請(qǐng)關(guān)注吧朴沿。