1. 程式人生 > >Android之常用開發框架

Android之常用開發框架

在網路上閒逛,發現好東西,整理出來分享給大家一起研究。

1、Rajawali
介紹:
安卓的OpenGL ES 2.0/3.0 引擎。可以用於製作普通應用或者動態桌布,當然也可以用於製作遊戲。
專案地址: https://github.com/Rajawali/Rajawali


2、RxAndroid
介紹:
RxAndroid是RxJava的一個針對Android平臺的擴充套件。它包含了一些能夠簡化Android開發的工具。
專案地址: https://github.com/ReactiveX/RxAndroid
3、Paginize
介紹:
Paginize 是一個輕量級的UI框架,使用註解來注入佈局和view,除了使用註解之外,該框架還有兩個特色:1.用Page的概念來取代Fragment,2.切換page時自帶ios風格的動畫效果。


專案地址: https://github.com/neevek/Paginize


4、otto
介紹:
Otto 是square公司出的一個事件庫(pub/sub模式),用來簡化應用程式元件之間的通訊。 Otto 修改自Google的Guava庫,專門為Android平臺進行了優化。
專案地址: https://github.com/square/otto


5 、rebound
介紹:
rebound是facebook的開源動畫庫。可以認為這個動畫庫是獨立於android Framework之外的一種動畫實現。
專案地址: https://github.com/facebook/rebound


6、KJFrameForAndroid
介紹:

KJFrameForAndroid 又叫KJLibrary,是一個幫助快速開發的框架。使用KJFrameForAndroid,你可以只用一行程式碼就完成http請求、網路圖片載入、資料庫資料儲存或讀取。
專案地址: https://github.com/kymjs/KJFrameForAndroid


7、xUtils
介紹:
xUtils 包含了很多實用的android工具。 xUtils 支援大檔案上傳,更全面的http請求協議支援(10種謂詞),擁有更加靈活的ORM,更多的事件註解支援且不受混淆影響... xUitls 最低相容android 2.2 (api level 8)
專案地址: https://github.com/wyouflf/xUtils



目前xUtils主要有四大模組:
DbUtils模組:
android中的orm框架,一行程式碼就可以進行增刪改查;
支援事務,預設關閉;
可通過註解自定義表名,列名,外來鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時候請註解表名和列名);
支援繫結外來鍵,儲存實體時外來鍵關聯實體自動儲存或更新;
自動載入外來鍵關聯實體,支援延時載入;
支援鏈式表達查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。
ViewUtils模組:
android中的ioc框架,完全註解方式就可以進行UI,資源和事件繫結;
新的事件繫結方式,使用混淆工具混淆後仍可正常工作;
目前支援常用的20種事件繫結,參見ViewCommonEventListener類和包com.lidroid.xutils.view.annotation.event。
HttpUtils模組:
支援同步,非同步方式的請求;
支援大檔案上傳,上傳大檔案不會oom;
支援GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請求;
下載支援301/302重定向,支援設定是否根據Content-Disposition重新命名下載的檔案;
返回文字內容的請求(預設只啟用了GET請求)支援快取,可設定預設過期時間和針對當前請求的過期時間。
BitmapUtils模組:
載入bitmap的時候無需考慮bitmap載入過程中出現的oom和android容器快速滑動時候出現的圖片錯位等現象;
支援載入網路圖片和本地圖片;
記憶體管理使用lru演算法,更好的管理bitmap記憶體;
可配置執行緒載入執行緒數量,快取大小,快取路徑,載入顯示動畫等...


8、butterknife-view
注入工具
介紹:
為了減少頻繁的呼叫findViewById(R.id...),可以採用一些注入框架,可以簡化自己的程式碼,讓你更專注於實際的功能開發,butterknife就是這樣的一個框架,他是jakewharton大神的作品,值得一試。
class ExampleActivity extends Activity {
  @InjectView(R.id.title) TextView title;
  @InjectView(R.id.subtitle) TextView subtitle;
  @InjectView(R.id.footer) TextView footer;
  @Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_activity);
    ButterKnife.inject(this);
    // TODO Use "injected" views...
  }
}


這是部落格地址:
http://jakewharton.github.io/butterknife/
專案地址: https://github.com/JakeWharton/butterknife


9、cube-sdk
一淘推出的開發框架
介紹:
cube一個Android開發包, 可極大提高你的開發效率。主要提供了圖片載入以及網路請求方面的api功能。
專案地址: https://github.com/etao-open-source/cube-sdk
他們的網站:http://cube-sdk.liaohuqiu.net/cn/


10、ASimpleCache 
一個簡單的快取框架
介紹:
ASimpleCache 是一個為android制定的 輕量級的 開源快取框架。輕量到只有一個java檔案(由十幾個類精簡而來)。 它可以快取什麼東西?普通的字串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java物件,和 byte資料。
專案地址: https://github.com/yangfuhai/ASimpleCache


11、androidannotations
介紹:
AndroidAnnotations是一個能夠讓你快速進行Android開發的開源框架,它能讓你專注於真正重要的地方。 使程式碼更加精簡,使專案更加容易維護,它的目標就是“Fast Android Development.Easy maintainance”。 通過一段時間的使用發現,相比原生的Android開發,確實能夠讓你少些很多程式碼
專案地址: https://github.com/excilys/androidannotations


12、Event Bus
解耦android模組
介紹:
當一個Android應用功能越來越多的時候,保證應用的各個部分之間高效的通訊將變得越來越困難。如何優雅地解決這個問題?這時候,就需要使用到EventBus。 EventBus是GreenRobot出品的Android系統的一個Event Bus類庫,使用起來和之前我們所介紹的Square的Otto差不多,都是用來簡化應用元件之間的通訊。
專案地址: https://github.com/greenrobot/EventBus


13、BeeFramework_Android
介紹:
BeeFramework Android版主要為Android初級開發人員提供一個基於MVC開發模式的APP DEMO,並提供一套APP內除錯工具,包括 檢視網路資料請求歷史 Crash Log列表 真機WIFI環境下模擬2G\3G網路 檢視APP效能(記憶體佔用,CPU佔用等)
專案地址: https://github.com/BeeFramework/BeeFramework_Android


14、afinal
介紹:
Afinal是一個android的ioc,orm框架,內建了四大模組功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過註解的方式進行繫結ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模組,我們一行程式碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模組,我們可以以ajax形式請求http資料。
Afinal裡面目前包含了四大元件:
FinalHttp:用於請求http資料,直接ajax方式請求,檔案上傳, 斷點續傳下載檔案等
FinalBitmap:用於顯示bitmap圖片,而無需考慮執行緒併發和oom等問題。
FinalActivity:完全可以通過註解方式繫結控制元件和事件,無需編寫程式碼。
FinalDb:android中sqlite的orm框架,一行程式碼搞定增刪改查。


Afinal是一個android的ioc,orm框架,內建了四大模組功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通過finalActivity,我們可以通過註解的方式進行繫結ui和事件。通過finalBitmap,我們可以方便的載入bitmap圖片,而無需考慮oom等問題。通過finalDB模組,我們一行程式碼就可以對android的sqlite資料庫進行增刪改查。通過FinalHttp模組,我們可以以ajax形式請求http資料。詳情請通過以下網址檢視。
專案地址: https://github.com/yangfuhai/afinal


15、Volley(不建議大家使用,Google官方已經放棄維護了,並且在android4.4以上底層使用Okhttp,所以,建議使用OkHttp)
介紹:
在這之前,我們在程式中需要和網路通訊的時候,大體使用的東西莫過於AsyncTaskLoader,HttpURLConnection,AsyncTask,HTTPClient(Apache)等,今年的Google I/O 2013上,Volley釋出了。Volley是Android平臺上的網路通訊庫,能使網路通訊更快,更簡單,更健壯。
專案地址: https://github.com/mcxiaoke/android-volley