第一次做安卓项目使用的开源框架列表
由于以前沒有安卓開發經驗,雖然Java挺熟悉的,不過到了安卓還是有些不適應,畢竟是另外一套了,想著安卓應該也有許多框架可以幫助我做很多事情了,所以前前后后試了很幾個,最終都不怎么理想。比如最一開始用的是
ThinkAndroid
ThinkAndroid(一個ThinkAndroid教程地址:http://my.oschina.net/u/1046077/blog/127603)雖然有很多使用的功能,如下,很齊全,而且下面這些功能做一個安卓項目都是需要的
-
MVC模塊
-
ioc模塊使用方法:
-
數據庫模塊
-
Http模塊使用方法:
-
異步get方法
-
同步get方法
-
使用http下載文件:
-
緩存模塊 方法
-
打印模塊使用方法
-
下載器模塊
-
下載器后臺運行
-
配置器模塊:
-
網絡狀態檢測模塊:?
不過后來發現,一來這個框架好久沒維護了,二來,因為做的是一個比較麻煩的項目,所以一個肯定要修改很多,這個框架改起來不方便,當時把這個框架的源碼都看了一遍,折騰了近半個月,還是決定放棄了(不是他不好用,只是不夠靈活,比如你要用這個框架,你的Application,Activity都必須繼承這個框架的,不繼承就不能用框架的,因為現在Android多了很多新的Activity,那你要想著按他的TAActivity改也非常麻煩)。
后來又發現了一個比較厲害的集成框架(這里說的意思是功能方面的集大成,類似第一個),叫
DroidParts
(官網:http://droidparts.org)
功能也是非常強大,基本上也涵蓋了上面說的那些功能,而且框架相對靈活一些,作者將自己的Activity也命名為Activity,而且增加的代碼很少,所以,如果你要集成一個特殊的Activity進來,只需要一兩行代碼的改變。他的功能如下:
- DI?- injection of Views, Fragments, Services, anything.:依賴注入
- ORM?- efficient persistence utilizing Cursors & fluent API.:ORM對象關系模型,就是將SQLite轉為面向對象,類似Hibernate
- EventBus?for subscribing to and posting events.:EventBus
- Simple?JSON?(de)serialization capable of handling nested objects.:JSON轉換
- Improved?AsyncTask?&?IntentService?with Exceptions & result reporting support.:同步異步請求
- Logger that figures out tag itself & logs any object.:日志
- RESTClient?for GETting, PUTting, POSTing, DELETing & InputStream-getting, also speaks JSON.:簡單的RESTFUL客戶端
- ImageFetcher?to asynchronously attach images to ImageViews, with caching, cross-fade & transformation support.:圖片加載和緩存
- Numerous?Utils.:其他工具(如一些新的組件)
?這個對我來說已經感覺很好的,框架很靈活,而且自定義也方便,做一般的簡單的項目應該沒有任何問題了,我還因此將官網的文檔完全翻譯了一遍在博客中寫了一個系列,這個框架我前前后后也使用了半個多月的時間,為什么后來又放棄了呢!原因在于,他里面所有的功能基本上是自己的實現,所以,就導致了一個問題就是可定制性不強,整體功能強大,但是每個小功能就比較薄弱了,所以我又放棄了。
后來在GitHub上到處找啊找啊,又找到一個框架(其實也不算是一個框架,應該是一個演示項目),名字叫Android Bootstrap,不過這里要插一點的是,還有另外一個Android Bootstrap,和Web中的Bootstrap算是有一點對應,那個Android Bootstrap是一個安卓組件風格的集合(還有一些文字圖標),這個我在使用DroidParts的使用也繼承了這個工具,后來放棄了(沒有用,因為美工都已經把界面設計好了,我要這個就沒有用了),回到正題說我們的主角了。
?Android Bootstrap
官網:http://www.androidbootstrap.com/
GitHub地址:https://github.com/AndroidBootstrap/android-bootstrap
Android Bootstrap是一個演示項目,他集合了安卓開發中常用的工具集(這些開源工具基本涵蓋了我們上面提到的兩個集大成框架的所有功能點),然后做了一個有幾個最初功能的應用(比如安卓賬戶管理等),基本上把那些開源工具都整合進去使用了一遍,所以,我們就可以把這個項目作為我們的項目的雛形的雛形來進行開發。現在我的程序也做了好長時間了,一個人做起來的確有些慢,不過也算漸漸進入狀態了,后來我又整合了好些個開源工具來實現不同的功能,總體來說,選擇這個項目程序來開發我的app是對的。現在可以列一下我項目中用到的所有的開源工具給大家一個參考(很多工具我都是經過認真的多個中選擇的,除了最初的那幾個基本保留外):
?
?
//這個就不說了,安卓自己的
compile 'com.android.support:support-v4:19.+' :
//這個也不用說吧,安卓自己的
compile 'com.android.support:appcompat-v7:19.+'
//這個工具都應該知道,谷歌開發的JSON工具包,因為我們傳數據都是用的JSON,所以經常要在對象和JSON字符串之間進行轉換,這個工具沒有顯示的用,而是在下面的RETROFIT這個工具中調用的
compile 'com.google.code.gson:gson:2.2.4'
//這個工具是做圖片加載的,大家知道我們的app的圖片肯定實現先顯示占位符,然后再異步加載的,中間涉及到(異步加載,內存,硬盤緩存等)好多事情,這個工具通過簡單的API(一種鏈式API風格,我很喜歡)去實現,中間的事情完全不需要我們操心了,不過聽說另外一個做圖片緩存的工具,比這個功能強大,叫什么忘記了,不過這個工具絕對牛
compile 'com.squareup.picasso:picasso:2.3.2'
//依賴注入:簡單來說就是幫我們統一新建對象的,詳情看我的博文
compile 'com.squareup.dagger:dagger:1.2.1'
//dagger的編譯工具,因為dagger會用到很多注解,這個工具就是說,我們的注解不是通過反射去處理的,而是直接生成代碼,速度快,和下面的幾個注解工具一樣的方式,詳情看我的博文
compile 'com.squareup.dagger:dagger-compiler:1.2.1'
//視圖注入:我們經常會findById了,setOnClickListener了這些方法,很麻煩,而且看著代碼很亂,這個工具就是通過注解去實例化你的View,當然,還有其他功能,詳情看我的博文
compile 'com.jakewharton:butterknife:5.0.0'
//這個工具好像是基于HttpClient的,不過我現在不用這個了,我是完全用的Retrofit
compile 'com.github.kevinsawicki:http-request:3.0'
//這個工具也是大名鼎鼎,是viewpager的指示器的開源工具(Viewpager現在也是一種非常常用的View)
compile 'com.actionbarsherlock:viewpagerindicator:2.4.1@aar'
//pusher:通知框架,目前還沒開始用
compile 'com.github.kevinsawicki:android-pusher:0.6'
//一個工具集吧,比如我現在用的最頻繁的Toaster.showLong|showShort,其實就是安卓自己的Toast類的封裝
compile 'com.github.kevinsawicki:wishlist:0.9'
//EventBus:是用來解耦各個類的,比如我的Fragment和Activity交互,平常是要定義一個接口然后傳入進來操作的,用這個就直接post了,很方便,當然他的功能很強大的,可以參考我的博文(最好是官方的英文文檔,我的博文是個簡單翻譯)
compile 'com.squareup:otto:1.3.4'
//Restful是現在比較流行的一個WEB設計風格吧,我其實也很喜歡這種風格,這個工具絕對帥爆了,寫一個請求只需要寫接口,實現都由工具來幫你搞定了,其實我們發送請求本來也不需要寫邏輯代碼(只需要發送URL,參數,Header等,這些都可以通過注解設置了)
compile 'com.squareup.retrofit:retrofit:1.6.1'
//這個是一個簡單的圖片Slider,支持圖片下面的標題文字
compile 'com.daimajia.slider:library:1.0.7@aar'
//瀑布流,用這個可是費了我好大的功夫,因為他不支持上拉家在更多,我在他和PullToRefresh的整合可是花了不少時間(兩天了)
compile 'com.etsy.android.grid:library:1.0.5'
//圓角圖形工具,可以理解為一個View,這個View可以設置你的組件是圓形的,橢圓的,邊框等,很靈活
compile 'com.makeramen:roundedimageview:1.3.0'
//下拉刷新上拉加載組件,很有名氣,支持很多的組件(如ListView,WebView,ViewPager等等)
compile 'com.mcxiaoke.pulltorefresh:library:2.5.3'
//,可以在3.0以前的系統上使用屬性動畫,是一個向下兼容3.0的新的動畫特性的包
compile 'com.nineoldandroids:library:2.4.0'
//這個是做字段校驗的工具:比如你可以在一個TextView上面使用注解,約束這個TextView的文本必須是郵箱格式
compile ('eu.inmite.android.lib:android-validation-komensky:0.9.2'){
? ? ?exclude module: 'support-v4'
}
?
當然,還有一些必要工具我還沒有列出來,最明顯的如ORM(因為現在還沒有用到呢),日志等
看到沒,這里是不是涵蓋了前面提到的兩個集大成框架中的幾乎所有工具,用這么多工具雖然說學習成本提高了一些,不過每個小功能都十分強大,所以,還是這種策略比較靠譜些!大家覺的用十幾個開源工具會很花時間,其實每個工具都有demo和sample,教程,而且這些工具大都沒有像很多的Java上的工具包那么多的功能,所以他的API非常簡單,學習起來其實是蠻快的!
?
轉載于:https://www.cnblogs.com/leo-lsw/p/Android-project-tools.html
總結
以上是生活随笔為你收集整理的第一次做安卓项目使用的开源框架列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Catalan数推导(转载)
- 下一篇: 我知道的大数据