現在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 ,PicassoGlide Fresco Picasso 都能使用OkHTTP進行網路請求。JSON轉換:
Gson Jackson alibaba/fastjson · GitHub
少量數據轉換 Gson 足已,體積更小。Jackson光jar包就 2M左右。JSON快速生成實體Java類:
Jsonschema2pojoAndroidStudio插件 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. 緩存:DiskLruCache2.圖片載入: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
fastJsonUILVolley+okhttp 不要問為什麼ormlitev4 v7看需求選用common-lang3
看開okhttp是大家網路請求的共同選擇啊~
用過fresco , okhttp ,facebook的一些庫,圖片載入的還有universalimageloader
UI:AndroidDesign Support Library fragmentDagger 2 Hybird
xUtils+UIL+Gson
推薦閱讀:
※如何評價技德科技(JIDE)推出的 Remix Android 平板電腦?
※Google已退出大陸市場,Google Play 如何入華?
※2016年,Android和iOS相比差距多大?
※為什麼阿里雲 OS 2.0 要稱作自主開發呢?阿里雲 OS 和 Android 是什麼關係?
※ART和JIT的除了編譯的時機區別以外,對於編譯的方式有什麼區別嗎?