現在android開發都會用到那些快速開發框架或者第三庫?

現在android開發過程中都會用到那些快速開發框架或者第三方庫.比如UI的、網路請求的、資料庫操作的、圖片載入的、動畫等等。


現在開發一個新App,立馬上 ButterKnife + OkHttp + Volley + Gson + Fresco + android-common + 某ORM + LeakCanary..

簡直一整套的View註解、網路請求、圖片載入、工具類、數據存儲、性能檢測等等的基礎框架。

UI 方面,Support Lib + Design Lib + 各種開源 View 控制項。

一款又一款App就出來了。

以上是我的個人套路,一個依賴開源項目的菜鳥(逃

- - - - - - - - - -

2015-11-24 再次更新

剛好過了3個月,有了一些新的愛好,再次來更新下這個答案。

其中 Volley 不再使用,該用 Retrofit 2 代替..

增加一個 Otto 事件匯流排框架..

如果不是主打圖片的應用,Fresco 應排除,安裝包太大,該用 Piccaso Glide..

android-common 不再完整使用,按需求抽取其中的 utils 類..

ORM 個人偏愛 OrmLite..

業餘時間正在開發一個基於 MVP 模式,使用 Square 全家桶 + Dagger 2 的 APP,開發完成後將會開源出來互相交流..(最近在公司趕新項目,業餘時間太少了T.T)

- - - - - - - - - -

2016-03-23 再次更新

卧槽!4個月過去了,沒想到我已經 996 工作4個月了 T.T

目前對這個套路有了新的看法,Retrofit 2 要搭配上 RxJava 那就是如虎添翼了。

現在弄的新項目,我都是把

compile "com.jakewharton:butterknife:7.0.1"
compile "com.squareup:otto:1.3.8"
compile "com.squareup.retrofit2:retrofit:2.0.0" // 會引用 okHttp
compile "com.squareup.retrofit2:converter-gson:2.0.0" // 會引用 Gson
compile "com.squareup.retrofit2:adapter-rxjava:2.0.0" // 會引用 RxJava
compile "io.reactivex:rxandroid:1.1.0"
compile "com.github.bumptech.glide:glide:3.7.0"

往 build.gradle 一粘貼,一種老司機要開車的感覺 23333...

另外對於 ORM,目前有個 SQLite 的替代方案 [Realm](Java Docs - Realm is a mobile database: a replacement for SQLite Core Data),感覺值得嘗試.

扯點題外的,快速開發,調試工具一定要到位,這裡推薦兩個:

1、[Postman](Postman | Supercharge your API workflow)

這個 API 調試工具,主要是用於你拿到後台給的 API 文檔後進行模擬請求時用的,可以說是用於擼代碼之前。

2、[Stetho](Stetho)

這個應該很多人都推薦過,強大的調試功能具體可以點擊去看,這個我主要是用來對接完 API,擼完代碼之後的調試,可以很清楚的看到客戶端與伺服器來往的數據。(注意:開了這調試工具會很卡,調完就關吧)

- - - - - - - - - -

2016-07-15 更新

[知之乎](GitHub - Null-Ouwenjie/zhizhihu: zhihu.com Unofficial Client for Android)

開源一個自己以前寫的一個第三方知乎 Android 客戶端(最早半年前開始寫的了,最近更新了一下),基於 MVP 模式,使用 Retrofit 2 + RxJava 做網路請求,使用 Realm 存儲等,基本上是我上面這個答案的實踐。


UI方面:

減少工作量的 依賴的注入框架 ,比如 ButterKnife

Tab滑頁 、廣告頁 的 PagerSlidingTabStrip 或 ViewPagerIndicator +ViewPager 很常用;

還有查看圖片的 PhotoView ;

方便選擇時間日期 省市地域的 各種改版 WheelView ;

UI遵循Android設計標準的話, 會用到support包里的 SwipeRefreshLayout, DrawerLayout,新出的 recyclerview cardview 等 ,還有toolbar,design ,第三方的材料設計組件 等等;

給Listview 加動效的listviewanimations ;

提高操作性的左滑後退 SwipeBackLayout ;

多標籤流的 flowlayout;

其它的github找或自定義...

網路請求:

volley , 谷歌官方的

OkHTTP, retrofit +OkHTTP 或則 單獨 OkHTTP 或則 其他框架 + OkHTTP,

注意關閉JIT android:vmSafeMode="true" 。

fackbook的stetho 配合OKHTTP方便的進行網路請求調試,進行 db, sharedpref 的查看修改

資料庫:

ormlite greendao

圖片載入:

可以展示動態gif的 Glide ,Fresco

一般的 UniversalImageLoader ,Picasso

Glide Fresco Picasso 都能使用OkHTTP進行網路請求。

JSON轉換:

Gson Jackson alibaba/fastjson · GitHub

少量數據轉換 Gson 足已,體積更小。Jackson光jar包就 2M左右。

JSON快速生成實體Java類:

Jsonschema2pojo

AndroidStudio插件 GsonFormat

事件匯流排:

EventBus otto

日誌列印:

Jake大神的 Timber ,hugo

單元測試:

robolectric

切圖、圖片壓縮:

切圖也是開發的重要一環,cutterman 這個Photoshop的插件值得擁有。

PNG優化工具,能極大減小圖片體積,並保障圖片質量:

windows : PNGGauntlet 。

Mac: ImageOptim 。

web app: http://tinypng.com

以上,個人見解 ,水平有限,請多指教。


square的各種Android庫,Jake大神的各種庫,Facebook的Android庫,support庫。基本上這些中挑出你順手的就可以了


要用第三方庫的話,可以多看看 http://gank.io 這個網站,裡面挺多第三方庫的。


UI:當然是建議多學習material design的設計和控制項,還有一些牛人實現的ui效果。

網路請求:volley,okhttp等

圖片載入:glide,Picasso,fresco等

資料庫:dbflow,greenDAO

依賴注入推薦butterknife

日誌列印orhanobut logger


實名反對說 xUtils 的那個答案。

那玩意只能做出玩具級別的 App,並不能用到成熟的產品上。而且從開發習慣上來說使用這種玩意百害而無一利。


http://gank.io/ 太多你想不到的第三方library盡在乾貨集中營。


這裡給出一些BaaS服務提供商:

後台數據存儲

1. Bmob Bmob後端雲

應用數據分析

1. 友盟 友盟-專業的移動開發者服務平台

2. TalkingData TalkingData-專業的無線互聯網數據服務平台

3. 魔方 魔方-移動應用服務平台

移動終端測試

1.Testin Testin雲測

2.班墨雲測試 全球首款智能雲測試系統

3.DroidPilot Android自動化測試工具DroidPilot

4.摩測 e世博,e世博註冊首選平台

應用發布

1.一鍵雲 關於我們

2.抓貓網 抓貓移動廣告聚合優化平台

消息推送

1. 極光推送 JPush極光推送

2. 個推 個推開放平台

信息識別

1.語義雲 首頁 (自然語義)

2.慧眼開發平台 http://smarkeye.mongtx.com/ (圖像)

3.AngelEyes http://www.angeleyes.it/ (圖像)

4.Face++ Face++ 最好的免費人臉識別雲服務 (人臉)

5.Face-API http://faceapi.cn/ (人臉)

應用內廣告

1.掌淘聯盟 http://appgo.cn/

2.抓貓網 抓貓移動廣告聚合優化平台

未分類

1.簡訊寶 簡訊寶-為中小網站提供專業的簡訊服務 (簡訊開放介面)

2.親加 親加 | 移動應用溝通解決方案 (實時語音)

3.bmob簡訊驗證碼產品-Bmob後端雲


這個博客介紹的比較全

Android流行框架大全

1. 緩存:DiskLruCache

2.圖片載入:

Android Universal Image Loader 一個強大的載入,緩存,展示圖片的庫

Picasso一個強大的圖片下載與緩存的庫

Fresco一個用於管理圖像和他們使用的內存的庫

Glide一個圖片載入和緩存的庫

3. 圖片處理

Picasso-transformations一個為Picasso提供多種圖片變換的庫

..........

4. 網路請求

Android Async HTTP Android非同步HTTP庫

AndroidAsync非同步Socket,HTTP(客戶端+伺服器),WebSocket,和socket.io庫。基於NIO而不是線程。

OkHttp一個Http與Http/2的客戶端

Retrofit類型安全的Http客戶端

VolleyGoogle推出的Android非同步網路請求框架和圖片載入框架


Retrofit我比較喜歡的一個庫,一個基於註解的網路請求庫,能幫你省百分之二十的開發時間


rxjava全家桶+glide+realm2+fresco+glide+okhttp+retrofit+butterknife+dagger2+android design support library+高star的material design


CoreThink是一個開源的開發框架,更是一個互聯網產品解決方案,讓開源核心與硬體、功能模塊、服務等等能完美結合,並且成為10000多位企業用戶及開發者用戶的開發首選框架。目前,已經有超過4000個成熟產品(PC網站、Wap站、iOS APP、Android APP、企業系統、H5產品……)建立在CoreThink的開源核心上,服務於高校、研究機構、城市和企業的方方面面。如果有興趣可以加入我們qq群:130747567


rxAndroid


安利一下自己的開源框架,正在修改中。。。

shinado/jujuj · GitHub


fastJson

UIL

Volley+okhttp 不要問為什麼

ormlite

v4 v7

看需求選用

common-lang3


看開okhttp是大家網路請求的共同選擇啊~


用過fresco , okhttp ,facebook的一些庫,圖片載入的還有universalimageloader


UI:AndroidDesign Support Library fragment

Dagger 2 Hybird


xUtils+UIL+Gson


推薦閱讀:

如何評價技德科技(JIDE)推出的 Remix Android 平板電腦?
Google已退出大陸市場,Google Play 如何入華?
2016年,Android和iOS相比差距多大?
為什麼阿里雲 OS 2.0 要稱作自主開發呢?阿里雲 OS 和 Android 是什麼關係?
ART和JIT的除了編譯的時機區別以外,對於編譯的方式有什麼區別嗎?

TAG:開發框架 | Android開發 | Android |