1. 程式人生 > >2017年android常用的框架介紹

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'

或者下載

jar包

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
            
           

相關推薦

2017android常用框架介紹

一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網路層、UI層、通訊層或其他單一功能的框架 混合開發框架:提供開發hybrid app、h5與webview結合能力、web app能力的框架 企業級開源專案:可以獨立執行的app,有極高的學習價值、

2017Android百大框架排行榜

 框架:提供一定能力的小段程式 >隨意轉載,標註作者"金誠"即可 >本文已授權微信公眾號:鴻洋(hongyangAndroid)原創首發。 >本文已經開源到Github上,歡迎各位共同編輯、參與到榜單的建設中來 一.榜單介紹 排行榜包括四大類: 單一框架:僅提供路由、網路層、

2017Android一百個框架排行榜,2017Android框架大全

排行榜包括四大類: 單一框架:僅提供路由、網路層、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 第三方庫--2017Android開源專案及庫彙總

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也是要簡化我

2017Android SDK下載安裝及配置教程

       首先宣告: Unity版本5.6.3f1        最近試著在Unity中利用高通做AR開發時,釋出專案檔案需要釋出到Android平臺,遇到一些問題,看了網上的一些資料,踩了一些坑,現在總結出來,希望有相同的開發者遇到時可以規避。        若有

2017android面試總結

1.android的四大元件  activity:一個activity通常是一個單獨的視窗,activity通過Intent進行通訊,每個activity都要在AndroidMainfest.xml配置檔案中宣告。  service: (1)service用於在後臺完成使