2015推薦的Android架構,2015Android架構
一、GuavaGoogle的基於java1.6的類庫集合的擴充項目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 這些高品質的API可以使你的JAVA代碼更加優雅,更加簡潔.
功能模組:
---------------------------------------------------------------------------------------1. 基本工具 [Basic utilities]:讓使用Java語言變得更舒適---------------------------------------------------------------------------------------
2. 集合[Collections]:Guava對JDK集合的擴充,這是Guava最成熟和為人所知的部分---------------------------------------------------------------------------------------
3. 緩衝[Caches]:Guava Cache:本機快取實現,支援多種緩衝到期策略---------------------------------------------------------------------------------------
4. 函數式風格[Functional idioms]:Guava的函數式支援可以顯著簡化代碼,但請謹慎使用它---------------------------------------------------------------------------------------
5. 並發[Concurrency]:強大而簡單的抽象,讓編寫正確的並發代碼更簡單---------------------------------------------------------------------------------------
6. 字串處理[Strings]:非常有用的字串工具,包括分割、串連、填充等操作---------------------------------------------------------------------------------------
7. 原生類型[Primitives]:擴充 JDK 未提供的原生類型(如int、char)操作, 包括某些類型的無符號形式---------------------------------------------------------------------------------------
8. 區間[Ranges]:可比較類型的區間API,包括連續和離散類型---------------------------------------------------------------------------------------
9. I/O:簡化I/O尤其是I/O流和檔案的操作,針對Java5和6版本---------------------------------------------------------------------------------------
10. 散列[Hash]:提供比Object.hashCode()更複雜的散列實現,並提供布魯姆過濾器的實現---------------------------------------------------------------------------------------
11. 事件匯流排[EventBus]:發布-訂閱模式的組件通訊,但組件不需要顯式地註冊到其他組件中---------------------------------------------------------------------------------------
12. 數學運算[Math]:最佳化的、充分測試的數學工具類---------------------------------------------------------------------------------------
13. 反射[Reflection]:Guava 的 Java 反射機制工具類---------------------------------------------------------------------------------------
優點:高效設計良好的API,使代碼簡潔,簡單。
項目地址:
https://code.google.com/p/guava-libraries/
文檔介紹:
https://code.google.com/p/guava-libraries/wiki/GuavaExplained
二、Volley
Google提供的網路通訊庫,能使網路通訊更快,更簡單,更健壯。
功能模組:
1. JSON,映像等的非同步下載---------------------------------------------------------------------------------------
2. 網路請求的排序(scheduling)---------------------------------------------------------------------------------------
3. 網路請求的優先順序處理---------------------------------------------------------------------------------------
4. 緩衝---------------------------------------------------------------------------------------
5. 多層級取消請求---------------------------------------------------------------------------------------
6. 和Activity和生命週期的聯動(Activity結束時同時取消所有網路請求)
優點:Volley特別適合資料量不大但是通訊頻繁的情境。
項目地址:
https://android.googlesource.com/platform/frameworks/volley
Github地址:
https://github.com/mcxiaoke/android-volley
文檔地址:
http://commondatastorage.googleapis.com/io-2013/presentations/110%20-%20Volley-%20Easy,%20Fast%20Networking%20for%20Android.pdf
三、AndroidCommon
包含一組開發 Android 程式常用的庫,包括 ImageCache、DropDownListView、DownloadManager 和靜默安裝 APK 等等。
功能模組:
1. 緩衝(圖片緩衝、預取緩衝、網路緩衝)---------------------------------------------------------------------------------------
2. 公用View(下拉及底部載入更多ListView、底部載入更多ScrollView、滑動一頁Gallery)---------------------------------------------------------------------------------------
3. Android常用工具類(網路、下載、Android資源操作、shell、檔案、Json、隨機數、Collection等等)
優點:Android項目的通用工具類的集合
Github地址:
https://github.com/Trinea/AndroidCommon
Demo地址:
https://play.google.com/store/apps/details?id=cn.trinea.android.demo
文檔介紹:
http://www.trinea.cn/android/android-common-lib/
四、xUtils
xUtils 包含了很多實用的android工具。最初源於Afinal架構,進行了大量重構,使得xUtils支援大檔案上傳,更全面的http請求協議支援(10種謂詞),擁有更加靈活的ORM,更多的事件註解支援且不受混淆影響。
功能模組:
1. DbUtils:android中的orm架構,一行代碼就可以進行增刪改查。---------------------------------------------------------------------------------------2. ViewUtils:android中的ioc架構,完全註解方式就可以進行UI,資源和事件綁定。---------------------------------------------------------------------------------------3. HttpUtils:多種方式的網路請求,大檔案的上傳。---------------------------------------------------------------------------------------
4. BitmapUtils:圖片緩衝載入,無需考慮OOM
優點:支援大檔案上傳,效率較高。
Github地址:
https://github.com/wyouflf/xUtils
五、Afinal
Afinal是一個android的ioc,orm架構,內建了四大模組功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過註解的方式進行綁定ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模組,我們一行代碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模組,我們可以以ajax形式請求http資料
功能模組:
1. FinalHttp:用於請求http資料,直接ajax方式請求,檔案上傳, 斷點續傳下載檔案等---------------------------------------------------------------------------------------
2. FinalBitmap:用於顯示bitmap圖片,而無需考慮線程並發和oom等問題。---------------------------------------------------------------------------------------
3. FinalActivity:完全可以通過註解方式繫結控制項和事件,無需編寫代碼。---------------------------------------------------------------------------------------
4. FinalDb:android中sqlite的orm架構,一行代碼搞定增刪改查。
優點:功能比較全面,文檔完善,代碼效率比較高。
Github地址:
https://github.com/yangfuhai/afinal
官方網站:
http://www.afinal.org
六、ThinkAndroid
ThinkAndroid是一個免費的開源的、簡易的、遵循Apache2開源協議發布的Android開發架構,其開發宗旨是簡單、快速的進行Android應用程式的開發,包含Android mvc、簡易sqlite orm、ioc模組、封裝Android httpclitent的http模組,具有快速構建檔案快取功能,無需考慮快取檔案的格式,都可以非常輕鬆的實現緩衝,它還基於檔案快取模組實現了圖片緩衝功能,在android中載入的圖片的時候,對oom的問題,和對載入圖片錯位的問題都輕易解決。他還包括了一個手機開發中經常應用的工具 + 生產力類,如日誌管理,設定檔管理,android下載器模組,網路切換檢測等等工具。
功能模組:
1. MVC模組:實現視圖與模型的分離。---------------------------------------------------------------------------------------
2. ioc模組:android中的ioc模組,完全註解方式就可以進行UI綁定、res中的資源的讀取、以及對象的初始化。---------------------------------------------------------------------------------------
3. 資料庫模組:android中的orm架構,使用了線程池對sqlite進行操作。---------------------------------------------------------------------------------------
4. http模組:通過httpclient進行封裝http資料請求,支援非同步及同步方式載入。---------------------------------------------------------------------------------------
5. 緩衝模組:通過簡單的配置及設計可以很好的實現緩衝,對緩衝可以隨意的配置。---------------------------------------------------------------------------------------
6. 圖片緩衝模組:imageview載入圖片的時候無需考慮圖片載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象。---------------------------------------------------------------------------------------
7. 配置器模組:可以對簡易的實現配對配置的操作,目前設定檔可以支援Preference、Properties對配置進行存取。---------------------------------------------------------------------------------------
8. 日誌列印模組:可以較快的輕易的是實現日誌列印,支援日誌列印的擴充,目前支援對sdcard寫入本地列印、以及控制台列印。---------------------------------------------------------------------------------------
9. 下載器模組:可以簡單的實現多線程下載、後台下載、斷點續傳、對下載進行控制、如開始、暫停、刪除等等。---------------------------------------------------------------------------------------
10. 網路狀態檢測模組:當網路狀態改變時,對網路狀態進行檢測。
優點:功能比較完善。
Github地址:
https://github.com/white-cat/ThinkAndroid
七、AndroidAnnotations
Android Annotations 是一個開源的架構,用於加速 Android 應用的開發,可以讓你把重點放在功能的實現上,簡化了代碼,提升了可維護性。
功能模組:
1. 使用依賴注入(Dependency Injection)---------------------------------------------------------------------------------------
2. 簡化的執行緒模式(Simplified threading model)---------------------------------------------------------------------------------------
3. 事件綁定(Event binding)---------------------------------------------------------------------------------------
4. REST Client---------------------------------------------------------------------------------------
5. No Magic
優點:完全的註解,使開發起來更加便利,程式員寫的代碼也更少。
Github地址:
https://github.com/excilys/androidannotations
官方網站:
http://androidannotations.org/