2017年android常用的框架介紹
一.榜單介紹
排行榜包括四大類:
單一框架:僅提供路由、網路層、UI層、通訊層或其他單一功能的框架
混合開發框架:提供開發hybrid app、h5與webview結合能力、web app能力的框架
企業級開源專案:可以獨立執行的app,有極高的學習價值、思路借鑑意義
書籍類開源專案:類似Open-sourc-project這樣的導航類專案;大型公司的Android課程的學習目錄 tips
榜單排序依據:
1.專案開源
2.github上該專案的star個數
3.開發團隊、作者的實力
為了保證榜單內容的多樣性,榜單上儘可能的不重複同類型框架(比如多款listview增強框架)
適用讀者範圍:
- 正在入門Android的新手~~~Android初級開發工程師 初出茅廬
熟讀《書籍導航類專案排行榜》,勤加練習進步會更大;編譯執行並動腦思考《企業級開源專案》中的案例,可以提升開發完整專案的能力;;略讀《框架百大排行榜》,最大的作用是的是拓展視野,可以看到很多時下流行的名詞概念術語
- Android初級開發工程師~~~中級開發工程師 知其然知其所以然
熟練、快速、高效的默寫出《企業級開源專案》中的(自己感興趣)典型案例,對提高書寫程式碼的自信,提升專案功能整體設計能力;深究《框架百大排行榜》排名靠前框架的原理,會讓自己在與家人、同事、同學聚會之時多了一些炫耀的資本;如果你能熟練運用《框架百大排行榜》裡所提到的框架,在遇到某種需求的時候,立刻會拿出“最優秀的框架”
- 中級、高階、資深工程師 知其然知其不可然
《框架百大排行榜》裡所提到的流行詞、流行術語——使用能力、融會貫通其原理、講解框架能力的高低,將讓你不斷的在這三個級別徘徊;
會有意識的合併榜單裡多款同類型框架,來彌補單一框架的某些缺陷,比如將同為網路請求框架的Volley和Okhttp封裝到一起應對不同場面的需求;
會有意識的二次開發、修改原始碼來擴充套件榜單所提到的大型框架;
能夠在開發團隊裡推動、部署某些框架的能力——比如要在一個新加入的陌生團隊說服leader和專案成員使用熱更新、外掛化、元件化、hybrid 開發等多種開發模式,你是否有這個實力?
框架名次越靠前,值得使用的優先順序就越高、研究原理得到的收穫會更多、對讀者啟發的價值就越大
二.百大框架排行榜
快速索引
框架名稱 | 上榜關鍵字 |
1.Retrofit | 網路 |
2.okhttp | 網路 |
3.Butter Knife | 程式碼模板 |
4.MPAndroidChart | 圖表 |
5.glide | 圖片 |
6.leakcanary | 記憶體 |
7.Android-Universal-Image-Loader | 圖片 |
8.EventBus | 事件訊息 |
9.zxing | 條碼掃描 |
10.picasso | 圖片 |
11.lottie-android | 動畫 |
12.fresco | 圖片 |
13.RxAndroid | 非同步 |
14.SlidingMenu | 選單 |
15.PhotoView | 圖片 |
16.material-dialogs | UI |
17.droid-async-http | 網路 |
18.androidannotations | 註解 |
19.fastjson | json |
20.Material-Animations | 動畫 |
21.tinker | 熱修復 |
22.ViewPagerIndicator | UI |
23.Android-CleanArchitecture | 架構 |
24.Android-PullToRefresh | 重新整理 |
25.flexbox-layout | UI |
26.AndroidSwipeLayout | UI |
27.realm-java | 資料庫 |
28.greenDAO | 資料 |
29.stetho | 除錯 |
30.BaseRecyclerViewAdapterHelper | UI |
31.AndroidViewAnimations | 動畫 |
32.MaterialDrawer | 選單 |
33.Android-ObservableScrollView | UI |
34.CircleImageView | 圖片 |
35.logger | 除錯 |
36.agera | 非同步 |
37.BottmBar | 選單 |
38.Calligraphy | 字型 |
39.AndroidSlidingUpPanel | UI |
40.AppIntro | UI |
41.recyclerview-animators | 動畫 |
42.dagger | 依賴注入 |
43.Android-Bootstarp | UI |
44.RxBinding | 響應式 |
45.ListViewAnimations | 動畫 |
46.UItimateRecyclerView | UI |
47.uCrop | 圖片 |
48.RxJava-Android-Samples | 用例 |
49.AndroidAutoLayout | 適配 |
50.EffectiveAndroidUI | 效能 |
51.Luban | 圖片 |
52.DroidPlugin | 外掛化 |
53.otto | 響應式 |
54.u2020 | 用例 |
55.buck | 構建 |
56.PermissionsDispatcher | 許可權 |
57.android-gif-drawable | GIF |
58.Apktool | 反編譯 |
59.dynamic-load-apk | 外掛化 |
60.atlas | 外掛化 |
61.volley | 網路 |
62.androidmvp | 用例 |
63.SwipeBackLayout | 手勢 |
64.FlycoTabLayout | UI |
65.android-testing | 測試 |
66.FileDownloader | 下載 |
67.JieCaoVideoPlayer | 多媒體 |
68.glide-transformations | 圖片 |
69.android-gpuimage | 圖片 |
70.RxPermissions | 許可權 |
71.freeline | 編譯 |
72.RxLifecycle | 生命週期 |
73.classyshark | 反編譯 |
74.acra | 崩潰日誌 |
75.DiskLruCache | 檔案 |
76.dexposed | 熱修復 |
77.Litho | 效能 |
78.mosby | MVP |
79.AndResGuard | 混淆 |
80.StatusBarUtil | 狀態列 |
81.robolectric | 測試 |
82.Fragmentation | 巢狀 |
83.Small | 外掛化 |
84.JsBridge | hybrid |
85.richeditor-android | UI |
86.Transitions-Everywhere | 動畫 |
87.android-viewbadger | 勳章 |
88.AndroidWiFiADB | 除錯 |
89.emojicon | 表情包 |
90.packer-ng-plugin | 多渠道 |
91.android-priority-jobqueue | 多執行緒 |
92.Android-Debug-Database | 除錯 |
93.conceal | 加密 |
94.ARouter | 頁面路由 |
95.MagicaSakura | 多主題 |
96.CustomActivityOnCrash | 崩潰 |
97.XhsEmoticonsKeyboard | 鍵盤 |
1. Retrofit
一句話介紹:Retrofit是一款型別安全的網路框架,基於HTTP協議,服務於Android和java語言
上榜理由:Retrofit以21.8k的stars量雄踞github中android子標題榜首,第一當之無愧。
作者:square團隊
使用:
compile 'com.squareup.retrofit2:retrofit:2.3.0'
2.okhttp
一句話介紹:okhttp是一款基於HTTP和HTTP2.0協議的網路框架,服務於java和android客戶端
上榜理由,okhttp以20.4k的stars量雄踞github中android子標題第二名。大型公司比如淘寶也封裝的是okhttp。Retrofit2.0開始內建okhttp框架,Retrofit專注封裝介面完成業務需求,okhttp專注網路請求的安全高效,筆者將兩者區分開,是想讓後來學習者知道,這是兩套框架,學習框架原理時可以分開學習,以免理解混亂。
作者:square團隊
使用:
compile 'com.squareup.okhttp3:okhttp:3.8.0'
3.Butter Knife
一句話介紹:Butter Knife所提供了一種能力——使用註解生成模板程式碼,將view與方法和引數繫結。
上榜理由:github上16.5K個star,配合Androidstudio提供的Butter Knife外掛,幫助開發者省卻了頻繁findviewbyid的煩惱,最新的Butter Knife還提供了onclick繫結以及字串的初始化,初學者可以查閱Butter Knife以及Butter Knife外掛進一步學習!
作者:JakeWharton ,也是square團隊成員之一
使用:
dependencies { compile 'com.jakewharton:butterknife:8.6.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0' }
4.MPAndroidChart
一句話介紹:MPAndroidChart是一款圖表框架
上榜理由:github上16.1K個star,以快速、簡潔。強大著稱的圖表框架
github https://github.com/PhilJay/MPAndroidChart
作者:PhilJay
使用:
1. 在AS中加入Gradle依賴
- 在根目錄的
build.gradle上加入
: -
allprojects { repositories { maven { url "https://jitpack.io" } } }
- 在app的build.gradle上加入:
-
dependencies { compile 'com.github.PhilJay:MPAndroidChart:v3.0.2' }
5. glide
一句話介紹:glide是一款專注於提供流暢划動能力的“圖片載入和快取框架”
上榜理由:15.9k個star,圖片載入類框架排名第一的框架,google 在2014開發者大會上演示的camera app就是基於gilde框架開發的
作者 Bump Technologies團隊
使用:
repositories { mavenCentral() } dependencies { compile 'com.github.bumptech.glide:glide:3.8.0' compile 'com.android.support:support-v4:19.1.0' }
6.leakcanary
一句話介紹:一款記憶體檢測框架,服務於java和android客戶端
上榜理由:方便,簡潔是leakcanary最大的特點,只需在應用的apllication中整合,就可以直接使用它;15.5k個star說明了它有多麼受歡迎
github https://github.com/square/leakcanary
作者 square團隊
使用:
dependencies { debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1' releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1' testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1' }
在 Application
中寫入:
public class ExampleApplication extends Application { @Override public void onCreate() { super.onCreate(); if (LeakCanary.isInAnalyzerProcess(this)) { // This process is dedicated to LeakCanary for heap analysis. // You should not init your app in this process. return; } LeakCanary.install(this); // Normal app init code... } }
7.Android-Universal-Image-Loader
一句話介紹:曾經的圖片載入框架王者,android開發老手都用過它
上榜理由:android端圖片載入框架的老大哥了,15.3k個star足以證明它的熱門,UIL與gilde最大區別是可定製,UIL提供了大量配置方式,圖片載入狀態的回撥(成功,失敗,進行中),載入動畫等;以及提供了移動端圖片載入框架的快取思路:三級快取策略 sd卡-記憶體-網路;值得注意的是,UIL以及兩年未更新了,但筆者仍推薦各位使用!
作者 nostra13
使用:
8.EventBus
一句話介紹:EventBus是一款本地元件間通訊框架
上榜理由:元件間通訊框架star量第一:14.8k,在大型專案的Activities,fragments,Threads,Services都可以看到它的使用場景,儘管EventBus在向未建立的元件傳遞事件時有些侷限,僅適合在“活著的”元件間傳遞訊息,但仍不妨礙它活躍在各個大型專案各個場景裡。
作者 greenrobot
使用:
compile 'org.greenrobot:eventbus:3.0.0'
9.zxing
一句話介紹:條碼影象處理庫
上榜理由:如果你用過二維碼,你肯定已經間接使用過大名鼎鼎的zxing了。13.9K的star量,讓它排在本榜單第九,實至名歸,如果你有了解二維碼的需求,不妨從瞭解、修改它原始碼入手。
作者 Sean Owen
10.picasso
一句話介紹:強力的圖片下載、快取框架
上榜理由:本榜單出現的第三款圖片類框架,不同的是picasso更強調圖片下載,你可以將picasso整合進你的專案中,你也可以結合gilde和UIL與picasso,三者一齊封裝至你的專案中,按需所用。
作者 square團隊
使用:
compile 'com.squareup.picasso:picasso:2.5.2'
或者下載
11.lottie-android
一句話介紹:一款可以在Android端快速展示Adobe Afeter Effect(AE)工具所作動畫的框架
上榜理由:動畫類框架第一名,github上13.3k個star證明了他的優越性,利用json檔案快速實現動畫效果是它最大的便利,而這個json檔案也是由Adobe提供的After Effects(AE)工具製作的,在AE中裝一個Bodymovin的外掛,使用這個外掛最終將動畫效果生成json檔案,這個json檔案即可由LottieAnimationView解析並生成絢麗的動畫效果。而且它還支援跨平臺喲。
作者:Airbnb 團隊
12.fresco
一句話介紹:一款可以管理圖片記憶體的框架
上榜理由:github上12.8k個star,圖片類排行榜第四名,facebook的出身證明了它並非是重複造的輪子,在管理圖片記憶體領域上有著它的一片天地,漸進式載入、載入gif都是它與前三位相比獨有的特性
作者 facebook
使用:
dependencies { // 其他依賴 compile 'com.facebook.fresco:fresco:0.12.0' }
下面的依賴需要根據需求新增:
dependencies { // 在 API < 14 上的機器支援 WebP 時,需要新增 compile 'com.facebook.fresco:animated-base-support:0.12.0' // 支援 GIF 動圖,需要新增 compile 'com.facebook.fresco:animated-gif:0.12.0' // 支援 WebP (靜態圖+動圖),需要新增 compile 'com.facebook.fresco:animated-webp:0.12.0' compile 'com.facebook.fresco:webpsupport:0.12.0' // 僅支援 WebP 靜態圖,需要新增 compile 'com.facebook.fresco:webpsupport:0.12.0' }
13.RxAndroid
一句話介紹:一款Android客戶端元件間非同步通訊的框架
上榜理由:github上12.7k個star,位居元件通訊框架的第二名,僅在EventBus之後,如果要問兩者的區別,Eventbus是用來取代元件間繁瑣的interface,RxAndroid是用來取代AnsyTask的,並不衝突;當然RxAndroid的優點並不僅限於此,更多優雅的實現,可以去官網查閱!
作者 JakeWharton
使用:
compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'io.reactivex.rxjava2:rxjava:2.1.0'
14.SlidingMenu
一句話介紹:側滑選單欄框架
上榜理由:與Userval-Image-loader 齊名的上古神器框架——為你的app提供側滑選單欄的功能;github閃更有10.5k個star,證明了它的經久不衰,即使在Google推出了NavigationDrawer,仍然沒有減少開發者對SildingMenu的擁簇,經典總是經得起考驗的,這個上古神獸已經四年沒有更新了;有太多太多的app使用過它,這些都可以在軟體的開源許可上看到!
作者 Jeremy Feinstein
使用:
在gihub上fork原始碼,整合進專案中
15.PhotoView
一句話介紹:一款ImageView展示框架,支援縮放,響應手勢
上榜理由:10.3k的star數量,位於圖片類框架排行榜第五位,PhotoView與前四位不同的是這次帶來的是圖片的展示能力,你一定好奇微信的頭像點選放大是如何實現的,很多App的圖片顯示響應手勢按壓是如何實現的,瞭解PhotoView,你一定會開心的!(筆者也不會告訴你ImageView的點選放大效果在Android的sample也有)
作者:chrisbanes
使用:
在app根目錄的build.gradle中加入: allprojects { repositories { maven { url "https://jitpack.io" } } } 在app的module目錄的build.gralde中加入: dependencies { compile 'com.github.chrisbanes:PhotoView:latest.release.here' }
使用
<com.github.chrisbanes.photoview.PhotoView android:id="@+id/photo_view相關推薦
2017年android常用的框架介紹
一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網路層、UI層、通訊層或其他單一功能的框架 混合開發框架:提供開發hybrid app、h5與webview結合能力、web app能力的框架 企業級開源專案:可以獨立執行的app,有極高的學習價值、
2017年Android百大框架排行榜
框架:提供一定能力的小段程式 >隨意轉載,標註作者"金誠"即可 >本文已授權微信公眾號:鴻洋(hongyangAndroid)原創首發。 >本文已經開源到Github上,歡迎各位共同編輯、參與到榜單的建設中來 一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網路層、
2017年Android一百個框架排行榜,2017年Android框架大全
排行榜包括四大類: 單一框架:僅提供路由、網路層、UI層、通訊層或其他單一功能的框架 混合開發框架:提供開發hybrid app、h5與webview結合能力、web app能力的框架 企業級開源專案:可以獨立執行的app,有極高的學習價值、思路借鑑意義
android開源框架介紹
名稱 內容介紹 AndroidUtilCode 一個功能強大且易於使用的Android工具庫,該庫封裝了Android開發中常用的功能。 fresco Fresco是一個功能強大的系統,用於在A
原 Android進階:步驟三:Android常用框架:Picasso圖片框架
轉載: 作者:依然範特稀西 連結:https://www.jianshu.com/p/c68a3b9ca07a Android 中有幾個比較有名的圖片載入框架,Universal ImageLoader、Picasso、Glide和Fresco。它們各有優點,以前一直用的是ImageLoader
原 Android進階:步驟三:Android常用框架:OkHttp網路操作框架
Okio & OkHttp 課程目標 掌握I/O操作的方法 掌握傳輸資料的方法 學習內容 Okio簡介 Okio的核心類 OkHttp簡介 OkHttp核心類 程式碼實踐 一、Okio簡介 什
android進階3step3:Android 常用框架——Logger框架
Log做什麼用? Android研發人員在除錯程式的時候,或多或少的會使用log來檢視程式執行狀態。 同時,系統也會通過log提示研發人員,系統需要處理的資訊,例如異常,系統警告。 程式執行狀態(多執行緒尤為重要) Log的級別 &nb
進階三:Android常用框架
OrmLite資料庫框架 常用ORM框架有: --OrmLite 使用註解,使用簡單 --GreenDAO 自動生成程式碼,效能高 --SugarORM --Active Android --Realm 下載OrmLite開發包 http://ormlite.
移動開發之Android常用框架
一、網路通訊框架 1.xutils 最新版本xutils3.0 使用方法參照xutils3.0使用方法 2.okhttp 目前所知最新的是2.4.0 使用方法參照泓洋的部落格okhttp使用詳解 3.volley 下載地址volley下載地址 使用方法參照volley詳
原 android進階4step3:Android常用框架——極光推送的簡單使用
官方文件:https://www.jiguang.cn/push SDK下載:http://docs.jiguang.cn/jpush/resources/ 官方Github:https://github.com/jpush 這篇文章主要介紹是怎麼使用極光推送 其他文章
android進階4step3:Android常用框架——友盟推送簡單使用(官翻)
友盟官方:快速整合文件 還有之前寫的極光推送的簡單使用:Android常用框架——極光推送的簡單使用 使用步驟: 第一步:.登入註冊友盟的賬號,並繫結郵箱 官網 第二步:以下拷貝自友盟官方文件 前言 【友盟+】訊息推送SDK 5.0.2 整合文件。
android進階4step3:Android常用框架——EventBus框架
Android Event Bus 學習步驟 EventBus簡介 EventBus方法介紹 EventBus的實際應用 總結 EventBus簡介 以下來自:EventBus主頁 開源專案地址:https://github
android進階4step3:Android常用框架——OTTO事件匯流排
具體定義:之前有mark過一篇Otto事件框架匯流排的文章:android進階3step1:Android元件通訊——事件框架匯流排Otto Otto 官方網站:http://square.github.io/otto/ Github上的原始碼:https://gith
Android 第三方庫--2017年Android開源專案及庫彙總
Awesome-MaterialDesign - MaterialDesignCenter改名為Awesome-MaterialDesign,優化了佈局,新增了不少庫。 ChipsLibrary - 在Android EditText中實現打Tag功能。 ObservableScrollView
Android常用框架----網路請求系列框架
趁著這段時間不忙,放下工作,靜下心來對Android中常用的第三方框架進行了剖析並整理,接下來從網路請求框架開始。 常用網路請求框架對比: 1.okhttp okhttp和HttpClient、
Android常用框架
Android常用三方框架 1.下拉重新整理 PullDownListView- 一個下拉重新整理的控制元件,實現了仿微信下拉中眼睛動畫的效果。 ZrcListView- 一個順滑又漂亮的Android下拉重新整理與載入更多列表元件,增加下拉重新整理及滾動到
android 常用框架
網路框架:okhttp、volley、android-async-http圖片框架:Picasso、Fresco、Glide、Android-Universal-Image-Loader快取框架:DiskLruCache、 RobospiceJson解析:Gson、Jackson、Fastjson事件匯流排:
Java Web前端到後臺常用框架介紹
一,SpringMVC Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動型別的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC也是要簡化我
2017年Android SDK下載安裝及配置教程
首先宣告: Unity版本5.6.3f1 最近試著在Unity中利用高通做AR開發時,釋出專案檔案需要釋出到Android平臺,遇到一些問題,看了網上的一些資料,踩了一些坑,現在總結出來,希望有相同的開發者遇到時可以規避。 若有
2017年android面試總結
1.android的四大元件 activity:一個activity通常是一個單獨的視窗,activity通過Intent進行通訊,每個activity都要在AndroidMainfest.xml配置檔案中宣告。 service: (1)service用於在後臺完成使