排行榜包括四大類:html
單一框架:僅提供路由、網絡層、UI層、通訊層或其餘單一功能的框架前端
混合開發框架:提供開發hybrid app、h5與webview結合能力、web app能力的框架java
企業級開源項目:能夠獨立運行的app,有極高的學習價值、思路借鑑意義react
書籍類開源項目:相似Open-sourc-project這樣的導航類項目;大型公司的Android課程的學習目錄 tipslinux
榜單排序依據:android
1.項目開源ios
2.github上該項目的star個數git
3.開發團隊、做者的實力程序員
爲了保證榜單內容的多樣性,榜單上儘量的不重複同類型框架(好比多款listview加強框架)github
適用讀者範圍:
熟讀《書籍導航類項目排行榜》,勤加練習進步會更大;編譯運行並動腦思考《企業級開源項目》中的案例,能夠提高開發完整項目的能力;;略讀《框架百大排行榜》,最大的做用是的是拓展視野,能夠看到不少時下流行的名詞概念術語
熟練、快速、高效的默寫出《企業級開源項目》中的(本身感興趣)典型案例,對提升書寫代碼的自信,提高項目功能總體設計能力;深究《框架百大排行榜》排名靠前框架的原理,會讓本身在與家人、同事、同窗聚會之時多了一些炫耀的資本;若是你能熟練運用《框架百大排行榜》裏所提到的框架,在遇到某種需求的時候,馬上會拿出「最優秀的框架」去解決,意味着你離中級工程師不太遠了
《框架百大排行榜》裏所提到的流行詞、流行術語——使用能力、融會貫通其原理、講解框架能力的高低,將讓你不斷的在這三個級別徘徊;
會有意識的合併榜單裏多款同類型框架,來彌補單一框架的某些缺陷,好比將同爲網絡請求框架的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 | 鍵盤 |
一句話介紹:Retrofit是一款類型安全的網絡框架,基於HTTP協議,服務於Android和java語言
上榜理由:Retrofit以21.8k的stars量雄踞github中android子標題榜首,第一當之無愧。
官網地址 http://square.github.io/retrofit/
github https://github.com/square/retrofit
做者:square團隊
使用:
compile 'com.squareup.retrofit2:retrofit:2.3.0'
一句話介紹:okhttp是一款基於HTTP和HTTP2.0協議的網絡框架,服務於java和android客戶端
上榜理由,okhttp以20.4k的stars量雄踞github中android子標題第二名。大型公司好比淘寶也封裝的是okhttp。Retrofit2.0開始內置okhttp框架,Retrofit專一封裝接口完成業務需求,okhttp專一網絡請求的安全高效,筆者將二者區分開,是想讓後來學習者知道,這是兩套框架,學習框架原理時能夠分開學習,以避免理解混亂。
官網地址 http://square.github.io/okhttp/
github https://github.com/square/okhttp
做者:square團隊
使用:
compile 'com.squareup.okhttp3:okhttp:3.8.0'
一句話介紹:Butter Knife所提供了一種能力——使用註解生成模板代碼,將view與方法和參數綁定。
上榜理由:github上16.5K個star,配合Androidstudio提供的Butter Knife插件,幫助開發者省卻了頻繁findviewbyid的煩惱,最新的Butter Knife還提供了onclick綁定以及字符串的初始化,初學者能夠查閱Butter Knife以及Butter Knife插件進一步學習!
官網地址:http://jakewharton.github.io/butterknife/
github:https://github.com/JakeWharton/butterknife
做者:JakeWharton ,也是square團隊成員之一
使用:
dependencies { compile 'com.jakewharton:butterknife:8.6.0' annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0' }
一句話介紹:MPAndroidChart是一款圖表框架
上榜理由:github上16.1K個star,以快速、簡潔。強大著稱的圖表框架
官網地址 https://github.com/PhilJay/MPAndroidChart
github https://github.com/PhilJay/MPAndroidChart
做者:PhilJay
使用:
1. 在AS中加入Gradle依賴
build.gradle上加入
:allprojects { repositories { maven { url "https://jitpack.io" } } }
dependencies { compile 'com.github.PhilJay:MPAndroidChart:v3.0.2' }
一句話介紹:glide是一款專一於提供流暢划動能力的「圖片加載和緩存框架」
上榜理由:15.9k個star,圖片加載類框架排名第一的框架,google 在2014開發者大會上演示的camera app就是基於gilde框架開發的
github https://github.com/bumptech/glide
做者 Bump Technologies團隊
使用:
repositories { mavenCentral() } dependencies { compile 'com.github.bumptech.glide:glide:3.8.0' compile 'com.android.support:support-v4:19.1.0' }
一句話介紹:一款內存檢測框架,服務於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... } }
一句話介紹:曾經的圖片加載框架王者,android開發老手都用過它
上榜理由:android端圖片加載框架的老大哥了,15.3k個star足以證實它的熱門,UIL與gilde最大區別是可定製,UIL提供了大量配置方式,圖片加載狀態的回調(成功,失敗,進行中),加載動畫等;以及提供了移動端圖片加載框架的緩存思路:三級緩存策略 sd卡-內存-網絡;值得注意的是,UIL以及兩年未更新了,但筆者仍推薦各位使用!
github https://github.com/nostra13/Android-Universal-Image-Loader
做者 nostra13
使用:
下載地址 universal-image-loader-1.9.5.jar
一句話介紹:EventBus是一款本地組件間通訊框架
上榜理由:組件間通訊框架star量第一:14.8k,在大型項目的Activities,fragments,Threads,Services均可以看到它的使用場景,儘管EventBus在向未建立的組件傳遞事件時有些侷限,僅適合在「活着的」組件間傳遞消息,但仍不妨礙它活躍在各個大型項目各個場景裏。
官網地址 http://greenrobot.org/eventbus/documentation/how-to-get-started/
github https://github.com/greenrobot/EventBus
做者 greenrobot
使用:
compile 'org.greenrobot:eventbus:3.0.0'
一句話介紹:條碼圖像處理庫
上榜理由:若是你用過二維碼,你確定已經間接使用過大名鼎鼎的zxing了。13.9K的star量,讓它排在本榜單第九,實至名歸,若是你有了解二維碼的需求,不妨從瞭解、修改它源碼入手。
github https://github.com/zxing/zxing
做者 Sean Owen
一句話介紹:強力的圖片下載、緩存框架
上榜理由:本榜單出現的第三款圖片類框架,不一樣的是picasso更強調圖片下載,你能夠將picasso集成進你的項目中,你也能夠結合gilde和UIL與picasso,三者一齊封裝至你的項目中,按需所用。
官網地址 http://square.github.io/picasso/
github https://github.com/square/picasso
做者 square團隊
使用:
compile 'com.squareup.picasso:picasso:2.5.2'
或者下載
一句話介紹:一款能夠在Android端快速展現Adobe Afeter Effect(AE)工具所做動畫的框架
上榜理由:動畫類框架第一名,github上13.3k個star證實了他的優越性,利用json文件快速實現動畫效果是它最大的便利,而這個json文件也是由Adobe提供的After Effects(AE)工具製做的,在AE中裝一個Bodymovin的插件,使用這個插件最終將動畫效果生成json文件,這個json文件便可由LottieAnimationView解析並生成絢麗的動畫效果。並且它還支持跨平臺喲。
github https://github.com/airbnb/lottie-android
做者:Airbnb 團隊
一句話介紹:一款能夠管理圖片內存的框架
上榜理由:github上12.8k個star,圖片類排行榜第四名,facebook的出身證實了它並不是是重複造的輪子,在管理圖片內存領域上有着它的一片天地,漸進式加載、加載gif都是它與前三位相比獨有的特性
官網地址: https://www.fresco-cn.org/
github https://github.com/facebook/fresco
做者 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' }
一句話介紹:一款Android客戶端組件間異步通訊的框架
上榜理由:github上12.7k個star,位居組件通訊框架的第二名,僅在EventBus以後,若是要問二者的區別,Eventbus是用來取代組件間繁瑣的interface,RxAndroid是用來取代AnsyTask的,並不衝突;固然RxAndroid的優勢並不只限於此,更多優雅的實現,能夠去官網查閱!
github https://github.com/ReactiveX/RxAndroid
做者 JakeWharton
使用:
compile 'io.reactivex.rxjava2:rxandroid:2.0.1' compile 'io.reactivex.rxjava2:rxjava:2.1.0'
一句話介紹:側滑菜單欄框架
上榜理由:與Userval-Image-loader 齊名的上古神器框架——爲你的app提供側滑菜單欄的功能;github閃更有10.5k個star,證實了它的經久不衰,即便在Google推出了NavigationDrawer,仍然沒有減小開發者對SildingMenu的擁簇,經典老是經得起考驗的,這個上古神獸已經四年沒有更新了;有太多太多的app使用過它,這些均可以在軟件的開源許可上看到!
github https://github.com/jfeinstein10/SlidingMenu
做者 Jeremy Feinstein
使用:
在gihub上fork源碼,集成進項目中
一句話介紹:一款ImageView展現框架,支持縮放,響應手勢
上榜理由:10.3k的star數量,位於圖片類框架排行榜第五位,PhotoView與前四位不一樣的是此次帶來的是圖片的展現能力,你必定好奇微信的頭像點擊放大是如何實現的,不少App的圖片顯示響應手勢按壓是如何實現的,瞭解PhotoView,你必定會開心的!(筆者也不會告訴你ImageView的點擊放大效果在Android的sample也有)
github https://github.com/chrisbanes/PhotoView
做者: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" android:layout_width="match_parent" android:layout_height="match_parent"/>
PhotoView photoView = (PhotoView) findViewById(R.id.photo_view); photoView.setImageResource(R.drawable.image);
一句話介紹:一款自定義dialog框架
上榜理由:9.9k個star,也是繼PhotoView,SlidingMenu以後第三款自定義View框架,也許你仍是自定義View的新人,對Dialog使用的還有點生疏,你能夠經過它提高你的Dilaog使用能力
github https://github.com/afollestad/material-dialogs
做者:Aidan Follestad
使用:
dependencies { // ... other dependencies here compile 'com.afollestad.material-dialogs:core:0.9.4.5'
}
一句話介紹:一款基於Http協議的異步請求的網絡框架,
上榜理由:雖然你有無數個使用retrofit+okhttp的理由,但9.8k個star,證實它仍然值得你深刻學習。值得注意的是,它也已經有兩年沒更新了,你儘管拿去當你懶惰的理由!
github https://github.com/loopj/android-async-http
做者:James Smith
使用:
repositories { maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' } } dependencies { compile 'com.loopj.android:android-async-http:1.5.0-SNAPSHOT' }
一句話介紹:一款基於註解的快速開發框架
上榜理由:與Butterknife同樣基於註解,利用註解快速完成view的初始化,不一樣的是androidannotations提供了更多的能力:簡單的線程模型等;筆者只接觸過Butterknife,沒法更進一步敘述androidannotations的優點,若是你志在深刻了解註解的妙用,能夠嘗試探索一下!
官網地址 http://androidannotations.org/
github https://github.com/androidannotations/androidannotations
做者: WonderCsabo
一句話介紹:一款基於json解析、生成的框架
上榜理由:從它的名字不難看出,快速是它最大的特性,阿里巴巴的出身保證了代碼的質量和優越,9.4k的star數量,也是榜單裏第一個出現的中國開源框架,涉及網絡的app都會用到json,fastjson值得做爲你的首選!
github https://github.com/alibaba/fastjson
做者:alibaba
使用:
compile 'com.alibaba:fastjson:1.1.58.android'
一句話介紹:一款提供場景轉換過渡能力的動畫框架
上榜理由:Android動畫框架排行榜第二名,9.3k個star數量,與動畫框架榜單第一名lottie-android不一樣的是,Material-Animations提供的是場景切換的動畫效果。Android 官網sample中已經提供了部分Transition (轉場動畫)的展現,做爲初學者很難快速拓展到本身項目中,Material-Animations的示例出現爲開發者省去了此類麻煩,直接照搬應用到本身的App中吧。
github https://github.com/lgvalle/Material-Animations
做者:Luis G. Valle
使用:
down源碼,修改學習
一句話介紹:它是微信官網的Android熱補丁解決方案
上榜理由:9.1k個star,微信在用的熱補丁方案,心動不如行動
官網地址 http://www.tinkerpatch.com/Docs/intro
github https://github.com/Tencent/tinker
做者:Tencent
一句話介紹:一款基於ViewPager的頁面指示器開源框架
上榜理由:上古神器,儘管已經五年未更新了,但你仍然能夠在淘寶等app中看到它的使用場景,8.9K的star量讓它不慍不火的在矗立在榜單裏
官網地址 http://viewpagerindicator.com/
github https://github.com/JakeWharton/ViewPagerIndicator
做者:JakeWharton
使用:
下載 地址 https://github.com/JakeWharton/Android-ViewPagerIndicator/zipball/master
一句話介紹:一個講解設計框架的demo
上榜理由:它不是框架,你能夠把它看成一本書,它將教會你如何設計簡潔的架構,工程裏有一個sample app,配合圖文講解,你將對Android客戶端的架構有更深一層的認識。8.8k的star數量,證實了它是一本「好書」喲。
github https://github.com/android10/Android-CleanArchitecture
做者:Fernando Cejas
一句話介紹:一款爲普通視圖提供刷新UI的視圖框架
上榜理由:8.2K的star數量使它位居刷新類UI框架榜首,強大的兼容能力,該框架支持ListView,GrdiView,WebViewScrollView,ViewPager等衆多View增長刷新的能力,若是你有增長上拉加載,下拉加載的需求,你應該考慮它了!
github https://github.com/chrisbanes/Android-PullToRefresh
做者:Chris Banes
使用:
github fork源碼,集成到項目中
一句話介紹:一款彈性伸縮佈局
上榜理由:8.1k個star,前端H5開發者轉Android開發的福音,FlexboxLayout做爲LinearLayout
和RelativeLayout的替代者,值得各位一試,與其一同推出的還有ConstraintLayout。
github https://github.com/google/flexbox-layout
做者:Google
使用:
dependencies { compile 'com.google.android:flexbox:0.3.0-alpha3' }
一句話介紹:很是強大滑動式佈局
上榜理由:滑動刪除是國產app常見需求,商品詳情的上下滑動需求做爲開發者的咱們也常常遇到,AndroidSwipeLayout在github上擁有8K個star,證實它經受住了檢驗,各位值得一試
github https://github.com/daimajia/AndroidSwipeLayout
做者:daimajia
使用:
dependencies { compile 'com.android.support:recyclerview-v7:21.0.0' compile 'com.android.support:support-v4:20.+' compile "com.daimajia.swipelayout:library:1.2.0@aar" }
或下載
一句話介紹:Realm是一款移動端數據庫框架
上榜理由:核心數據引擎C++打造,比普通的Sqlite型數據庫快的多。筆者猜想正是如此,realm以7892個star數讓它位於大名鼎鼎的數據庫框架GreenDao(7877)以前
官網地址:https://realm.io/cn/
github https://github.com/realm/realm-java
做者:Realm團隊
使用:https://realm.io/docs/java/latest/
一句話介紹:greenDAO是一款高效、快速的SQLite型數據庫
上榜理由:greenDAO的star數量與Realm不相上下,且與EventBus師出同門,也是由greenrobot團隊開發維護的,質量有所保證,但若拷問筆者Realm與greenDao二者的優劣性,只能具體到實際使用當中,模擬線上的使用情形,進行高強度測試後才能下判斷,故在此不能一言兩語說完,深表遺憾
官網地址:http://greenrobot.org/greendao/
github https://github.com/greenrobot/greenDAO
使用:
buildscript { repositories { jcenter() mavenCentral() // add repository } dependencies { classpath 'com.android.tools.build:gradle:2.3.1' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin } } -----
apply plugin: 'com.android.application' apply plugin: 'org.greenrobot.greendao' // apply plugin dependencies { compile 'org.greenrobot:greendao:3.2.2' // add library }
一句話介紹:一款提供在Chrome開發者工具上調試Android app能力的開源框架
上榜理由:上古時期Android程序員要調試本地數據庫,須要進入Android Device Monitor找到/data/data/com.xxx.xxx/databases裏面的db文件,導出到PC端,用PC的數據工具查看,如今使用stetho省卻瞭如此的麻煩;現在的Android程序員若是想調試網絡請求響應過程當中的報文段,須要在請求中加入Log語句,一個信息一個信息打印出來,至關繁瑣,如今請使用stetho,省卻諸如此類的麻煩把!7.8K個star數,廣大Android開發者調試的福音,你值得擁有!
做者:FaceBook
官網地址: http://facebook.github.io/stetho/
github https://github.com/facebook/stetho
使用:
compile 'com.facebook.stetho:stetho:1.5.0'
一句話介紹:強大、流暢的Recyvlerview通用適配器
上榜理由:若是你是RecyclerView的擁簇者,你必定要體驗這款專門服務該view的適配器,7.7K個star,讓這個傢伙位於github上Android 適配器排行榜第一,還有不少驚喜等你去探尋!
官網地址:http://www.recyclerview.org/
做者:陳宇明以及他的小夥伴
使用:
allprojects { repositories { ... maven { url "https://jitpack.io" } } } dependencies { compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:VERSION_CODE' }
一句話介紹:一款提供可愛動畫集合的框架
上榜理由:正如做者所說,它囊括了開發需求過程當中全部的動畫效果,集成進了這個簡潔可愛的動畫框架。7.6K的star數,證實了它在動畫框架領域的戰鬥力,讓它僅僅位列lottie-android和Material-Animations兩個動畫框架霸主以後,屈居第三名
github https://github.com/daimajia/AndroidViewAnimations
做者:daimajia
使用:
dependencies { compile 'com.android.support:support-compat:25.1.1' compile 'com.daimajia.easing:library:2.0@aar' compile 'com.daimajia.androidanimations:library:2.2@aar' }
sample:
YoYo.with(Techniques.Tada) .duration(700) .repeat(5) .playOn(findViewById(R.id.edit_area));
一句話介紹:強大的塑料風格的抽屜框架
上榜理由:7.6K的star數量,做者的持續更新狀態,若是你還在猶豫上手SlidingMenu遇到bug沒人管的困境,那麼你能夠入手它做爲你的抽屜佈局
github https://github.com/mikepenz/MaterialDrawer
做者:Mike Penz
使用:
compile('com.mikepenz:materialdrawer:5.9.2@aar') { transitive = true }
new DrawerBuilder().withActivity(this).build();
一句話介紹:一款讓視圖滑動更具備視覺效果的滑動式框架
上榜理由:7.5K的star數量,證實了它曾經的價值,github上提供了12種滑動效果,你能夠用它彌補其餘框架的不足,提高你的App體驗!
github https://github.com/ksoichiro/Android-ObservableScrollView
做者:Soichiro Kashima
使用:
compile com.github.ksoichiro:android-observablescrollview
一句話介紹:圓角ImageView
上榜理由:也許你已經據說過無數種展現圓角圖片的方法,但若是你不嘗試嘗試CircleImageView,那麼你的知識庫會由於少了它黯然失色,有的時候完成需求是開發者優先考慮的,不一樣實現方法牽扯到的性能差別更值得讓人深思,若是你有心在圖片性能上有所涉獵,那麼CircleImageView絕對不會讓你敗興而歸。最後別忘了記得去看Romain Guy的建議喲。
github https://github.com/hdodenhof/CircleImageView
做者:Henning Dodenhof
使用:
dependencies { ... compile 'de.hdodenhof:circleimageview:2.1.0' }
<de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/profile_image" android:layout_width="96dp" android:layout_height="96dp" android:src="@drawable/profile" app:civ_border_width="2dp" app:civ_border_color="#FF000000"/>
一句話介紹:一款讓log日誌優雅顯示的框架
上榜理由:logger做爲調試框架,並未給出很強大的能力,它最大的亮點是優雅的輸出log信息,而且支持多種格式:線程、Json、Xml、List、Map等,若是你整日沉迷於汪洋大海般的log信息不能自拔,logger就是你的指路明燈!6.6k個star讓他位列調試框架第二名,屈居facebook的stetho以後
github https://github.com/orhanobut/logger
做者:Orhan Obut
使用:
compile 'com.orhanobut:logger:2.1.1'
Logger.d(MAP); Logger.d(SET); Logger.d(LIST); Logger.d(ARRAY); Logger.json(JSON_CONTENT); Logger.xml(XML_CONTENT);
一句話介紹:一款服務於Android平臺的響應式編程框架
上榜理由:google專門推出一套響應式編程框架服務於Android開發者,相比於之響應式編程框架榜首的 RxJava RxAndroid,它更輕量,二者最大的不一樣點在於agera基於push event、pull data (VS Rx系列 push data)。
github https://github.com/google/agera
做者:Google
使用:
compile 'com.google.android.agera:agera:1.3.0'
擴展能力
compile 'com.google.android.agera:content:1.3.0' compile 'com.google.android.agera:database:1.3.0' compile 'com.google.android.agera:net:1.3.0' compile 'com.google.android.agera:rvadapter:1.3.0' compile 'com.google.android.agera:rvdatabinding:1.3.0'
一句話介紹:一款底部導航欄視圖框架
上榜理由:底部欄裏的王者框架,6.3K的star數量,證實了它的優秀,徹底遵循材料設計規範,上手很是方便。若是說缺點,沒法設置icon與titile的間距,沒法自定義視圖的大小等,但這些均可以經過修改源代碼解決,筆者獻醜也修改了一套符合國內開發者的底部導航框架,即將開源。
github https://github.com/roughike/BottomBar
做者:Iiro Krankka
使用:
compile 'com.roughike:bottom-bar:2.3.1'
一句話介紹:一款自定義字體框架
上榜理由:若是你還在爲一鍵修改App內全部字體樣式而煩惱,6.3K個star的Calligraphy就值得你擁有,它能夠同時修改整個整個項目的Textview字體,也能夠單獨 設置某個Textview的字體,還在等什麼,快來試試吧!
github https://github.com/chrisjenx/Calligraphy
做者:Christopher Jenkins
使用:
dependencies { compile 'uk.co.chrisjenx:calligraphy:2.3.0' }
一句話介紹:可拖動的滑動面板視圖框架
上榜理由:若是你的項目須要一個可拖拽的滑動式面板(展現某些詳情信息,播放音樂,地圖信息等),那麼推薦你使用它,6.3k個star,來自創業公司umano的做品,證實它是用心推出的傑做
github https://github.com/umano/AndroidSlidingUpPanel
做者:umano
使用:
dependencies { repositories { mavenCentral() }
compile 'com.sothree.slidinguppanel:library:3.3.1' }
一句話介紹:一款提供快速製做歡迎頁的框架
上榜理由:筆者從未把打算把歡迎頁框架歸入排行榜當中,做爲國內開發者,ViewPager開發App的歡迎頁已是手到擒來的需求,爲什麼一個開源的歡迎頁框架會在github上擁有6.3k個star?也許你會不屑一顧,是的,每每就在不屑一顧的瞬間,機遇就悄悄溜走了。
github https://github.com/apl-devs/AppIntro
做者:Paolo Rotolo
allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { compile 'com.github.apl-devs:appintro:v4.2.0' }
一句話介紹:一款爲Recyclerview提供擴展動畫能力的框架
上榜理由:有一句老話:若是有天你失去對新事物的興趣,那就說明你老了。recyclerview已經推出快三年了,還在用listview的人們,是否已經發掘本身漸漸變老;不要灰心,快爲你的項目加入recyclerview-animators框架吧,爲「本身」加入新鮮的血液和能量!(筆者備註:6.2K個star)
github https://github.com/wasabeef/recyclerview-animators
做者;https://github.com/wasabeef
使用:
dependencies { // jCenter compile 'jp.wasabeef:recyclerview-animators:2.2.6' }
一句話介紹:一款經過依賴注入下降程序間耦合的開發框架
上榜理由:github 上dagger1版本 有6.2k個star , dagger2版本有7.3k個;由square完成的dagger1版本,到現在google團隊接手的dagger2版本,強力開發團隊保證了代碼在設計上的優越性;若是你想探究Android 領域的設計模式,這也是不錯的選擇。
官網地址:https://google.github.io/dagger/
github :https://github.com/google/dagger
做者:google
使用:
dependencies { compile 'com.google.dagger:dagger:2.x' annotationProcessor 'com.google.dagger:dagger-compiler:2.x' } If you're using classes in dagger.android you'll also want to include: compile 'com.google.dagger:dagger-android:2.x' compile 'com.google.dagger:dagger-android-support:2.x' annotationProcessor 'com.google.dagger:dagger-android-processor:2.x'
一句話介紹:一款提供在Android應用上實現Bootstrap(web框架)所做出效果的框架
上榜理由:榜單上第二款響應web技術的Android 端框架,還記得第一名是誰嗎——flexbox-layout,做爲Android開發者,你有必要去了解Web技術了。5.9k個star,證實它不容小覷
github https://github.com/Bearded-Hen/Android-Bootstrap
做者:Bearded-Hen團隊
使用:
dependencies { compile 'com.beardedhen:androidbootstrap:{X.X.X}' }
一句話介紹:一款提供UI組件事件響應能力的框架
上榜理由:若是你還未開始RxAndroid 之旅,RxBinding能夠做爲你的第一站,經過RXBinding,你將理解響應式編程的快樂,讓項目裏的事件流程更清晰。5.6K個star,RxAndroid做者親自操刀,快來試用吧!
github https://github.com/JakeWharton/RxBinding
做者:JakeWharton
Platform bindings: compile 'com.jakewharton.rxbinding2:rxbinding:2.0.0' 'support-v4' library bindings: compile 'com.jakewharton.rxbinding2:rxbinding-support-v4:2.0.0' 'appcompat-v7' library bindings: compile 'com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.0.0' 'design' library bindings: compile 'com.jakewharton.rxbinding2:rxbinding-design:2.0.0' 'recyclerview-v7' library bindings: compile 'com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.0.0' 'leanback-v17' library bindings: compile 'com.jakewharton.rxbinding2:rxbinding-leanback-v17:2.0.0'
一句話介紹:一款爲ListView提供動展現畫效果能力的框架
上榜理由:若是有一天我認可本身老了,我還會排排個人兄弟——ListView,證實我和它一塊兒戰鬥過。ListViewAnimations的存在就是證實咱們這些「老年人」仍有用武之地,也許你有說不出口的難處,沒法體會到RecyclerView裏動畫的快樂,擁有ListViewAnimations,你同樣能夠驕傲的說,個人孩子(每一個item)也有本身的動效啦。(筆者備註 5.6K個star)
github https://github.com/nhaarman/ListViewAnimations
做者:nhaarman
使用:
repositories { mavenCentral() } dependencies { compile 'com.nhaarman.listviewanimations:lib-core:3.1.0@aar' compile 'com.nhaarman.listviewanimations:lib-manipulation:3.1.0@aar' compile 'com.nhaarman.listviewanimations:lib-core-slh:3.1.0@aar' }
一句話介紹:一款提供刷新、加載更多、動畫特效等額外能力的RecyclerView框架
上榜理由:榜單上第三次出現RecyclerView的身影,足以證實RecyclerView的優異性,5.5K個star,框架裏所提供衆多的能力,若是你是個功利開發者,那麼此框架會爲你節省不少學習時間,它能夠完成多item式佈局的大多數需求,值得注意的是,這個項目也是在其餘項目的思路上二次開發的。
github https://github.com/cymcsg/UltimateRecyclerView
做者:MarshalChen
使用:
repositories { jcenter() } dependencies { ... compile 'com.marshalchen.ultimaterecyclerview:library:0.7.2' }
一句話介紹:一款優雅的圖片裁剪框架
上榜理由:5.3K個star,圖片編輯模塊單獨拎出來也是一款優雅的App。
github https://github.com/Yalantis/uCrop
做者:Yalantis
使用:
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } }
compile 'com.github.yalantis:ucrop:2.2.1'
一句話介紹:一款介紹RxJava使用場景的app
上榜理由:榜單出現的第一個「僅僅爲告訴你如何使用另外一個項目」的開源項目,它能夠說是RxJava的用例,你想獲得的想不到的RxJava用法這裏都有,這就是爲何它以5.2k個star矗立在這份榜單裏的緣由。遺憾本身沒有創做這麼一個受人追捧的demo?趕快動手寫個其餘的「XX項目用例吧」
github https://github.com/kaushikgopal/RxJava-Android-Samples
做者:kaushikgopal
使用:
clone到本地慢慢探索吧
一句話介紹:一個提供適配能力的框架
上榜理由:5.2K個star,鴻洋老弟的做品,適合小項目的開發團隊,拿到設計MM的px像素設計稿是否是很頭疼捏?這個框架一鍵式搞定你的問題,它有不少的不足,但在追求完美適配的路上,你值得探索和了解它!筆者並不推薦把它應用到已經成熟運行的項目中,畢竟市面上已經有太多的適配解決方案了,適配問題就像是個大雜燴,想炒一盤好菜,就得備好各類佐料(適配小方案),當你把各類小佐料用的爐火純青的時候,你離美食大廚就不遠了。
github https://github.com/hongyangAndroid/AndroidAutoLayout
做者:張鴻洋
使用:
dependencies { compile 'com.zhy:autolayout:1.4.5' }
一句話介紹:一款講解高效展現UI的教學型App
上榜理由:編程新手很難對MVC MVP,MVVM等模式有深入的理解,若是有一個示例型app,那對初學者會有很大裨益,筆者在遇到它時也是相見恨晚。4.8K個star,證實了它經受了廣大開發者的考驗與審視,其中Effective UI的編程思想更是與Android官方課程裏的Effective UI課程不謀而合,而且,此項目還包含了fragment、dagger、主題樣式、Butterknife等衆多小知識點,做爲編程初學者的學習用例再適合不過了
github https://github.com/pedrovgs/EffectiveAndroidUI
做者:Pedro Vicente
使用:
clone項目到本地
一句話介紹:最接近微信的圖片壓縮框架
上榜理由:好的思路老是可讓你大放異彩,Luban僅以圖片壓縮單一功能,俘獲了4.8K個star,證實了它在圖片壓縮上的造詣,它可能不是最優秀的,但它是讓你我最接近偉大的項目
github https://github.com/Curzibn/Luban
做者:Curzibn
使用:
compile 'top.zibin:Luban:1.1.1'
repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } } compile 'com.michaelpardo:activeandroid:3.1.0-SNAPSHOT'
linux or mac system +docs
dependencies { compile('com.github.hotchemi:permissionsdispatcher:${latest.version}') { exclude module: "support-v13" } annotationProcessor 'com.github.hotchemi:permissionsdispatcher-processor:${latest.version}' } repositories { jcenter() maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local/' } }
一句話介紹:一款提供展現GIF動畫能力的視圖框架
上榜理由:據我所查國內著名App——知乎使用了android-gif-drawable,所以證實了它的存在價值,儘管在榜單第十一位介紹了lottie-android直接應用AE動畫的示例,但AE設計師不是每一個公司都配備的,GIF的存在,就必然存在了展現GIF的須要,它值得你擁有!
github https://github.com/koral--/android-gif-drawable
做者:Karol Wrótniak
使用:
repositories { mavenCentral() maven { url "https://oss.sonatype.org/content/repositories/snapshots" } } dependencies { compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.+' }
一句話介紹:一款反編譯apk的工具
上榜理由:開源的反編譯工具,對於志在瞭解apk逆向破解的諸位,值得擁有,4.5k個star,逆向破解apk神器!
github https://github.com/iBotPeaches/Apktool
官網地址:https://ibotpeaches.github.io/Apktool/
做者:Connor Tumbleson
一句話介紹:插件化開發框架
上榜理由:4.5k個star,位於插件化開發框架第二名(第一名來自360團隊),全面的文檔介紹讓你很快就能上手插件化開發,若是你喜歡大段文字講解,那麼這個項目必定適合你
github:https://github.com/singwhatiwanna/dynamic-load-apk
做者:singwhatiwanna
使用:
github上的文檔配合做者博客更配喲
一句話介紹:淘寶推出的組件化開發框架
上榜理由:淘寶團隊所出的精品,atlas框架提供瞭解耦、組件、動態的開發能力,4.5k個star讓他位列組件化開發框架第一名
github https://github.com/alibaba/atlas
做者:alibaba
一句話介紹:google推薦使用的Android端網絡請求框架
上榜理由:4.4k個star,並非他不夠優秀,而是使用volley已經漸漸成爲廣大開發者的習慣
github https://github.com/google/volley(新版volley地址)
做者:google
使用:
clone源碼到本地
compile 'me.imid.swipebacklayout.lib:library:1.0.0'
一句話介紹:一款可讓做出多種多樣指示器效果的框架
上榜理由:儘管咱們沒有理由爲了給app加入頁面指示器功能就集成2.5M的依賴庫,可是做爲了解viewpager或swip views的指示器設計原理的優秀框架,你值得打開它試試,筆者建議單獨拆分所需源碼,加入到本身的項目中去。4.1K個star,二次開發的做品,仍然推薦!
github https://github.com/H07000223/FlycoTabLayout
做者:Flyco
一句話介紹:一款展現四大自動化測試框架用例的demo(Espresso,UiAutomator,AndroidJunitRunner,JUnit4)
上榜理由:學習者常常會陷入似懂非懂的境地,若是你有幸學習過Android Testing Support Library site的課程,那麼你必定對android的四大測試框架火燒眉毛,這款demo很是適合你,快來學習這個4.1k個star的明星項目吧
github https://github.com/googlesamples/android-testing
做者:googlesampes團隊
一句話介紹:一款高效、穩定、靈活、易用的文件下載引擎
上榜理由:4.1k證實了它有多受人喜好,文件下載看似簡單的背後暗藏了多少的坑坑點點,我知道你有能力本身實現文件下載功能,但優秀的框架能夠提高你的設計編碼能力,這款框架能夠提高你的實力!
github https://github.com/lingochamp/FileDownloader
做者:LingoChamp團隊
使用:
dependencies { compile 'com.liulishuo.filedownloader:library:1.5.5' }
一句話介紹:基於MediaPlayer api——VideoView 的多媒體播放框架
上榜理由:榜單裏第三款多媒體播放框架,它以靈巧的身姿擠入本榜單,精巧是它最大的優勢,不到100k,擁有它,你就能夠快速開發相似今日頭條那樣的視頻播放效果,4k個star,證實它值得一試
github https://github.com/lipangit/JieCaoVideoPlayer
做者:Nathen
compile 'fm.jiecao:jiecaovideoplayer:5.5.4'
一句話介紹:爲衆多著名圖片加載框架提供圖片形狀變幻能力的框架
上榜理由:在榜單靠前的部分已經介紹過glide,Picasso,Fresco等圖片加載框架,glide-transformations就是一款爲他們提供圖片變形能力的框架,使用起來很是簡單,所以受到了你們的喜好,github上有3.8K個starrepositories { jcenter() } dependencies { compile 'jp.wasabeef:glide-transformations:2.0.2' // If you want to use the GPU Filters compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1' }
在Glide裏設置變幻效果
Set Glide Transform. Glide.with(this).load(R.drawable.demo) .bitmapTransform(new BlurTransformation(context)) .into((ImageView) findViewById(R.id.image));
repositories { jcenter() } dependencies { compile 'jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1' }
更多的改造方法,還須要閱讀Ios的編程文檔,對於有毅力的小夥伴強力推薦!
repositories { jcenter() // If not already there } dependencies { compile 'com.tbruyelle.rxpermissions:rxpermissions:0.9.4@aar' }
RxPermissions rxPermissions = new RxPermissions(this); rxPermissions .request(Manifest.permission.CAMERA) .subscribe(granted -> { if (granted) { // I can control the camera now } else { // Oups permission denied } });
一句話介紹:一款動態替換的編譯構建框架
上榜理由:繼Facebook的Buck,Androdi官方的InstRun以後,螞蟻金服推出了Freeline編譯框架,官網宣稱Freeline與業內主流構建方式相比仍然有數倍的速度領先;排行有前後,編譯速度並不在本榜單排序的考據因素中,所以freeline以3.7個star,暫列編譯框架第二名
官網地址:https://www.freelinebuild.com/
github:https://github.com/alibaba/freeline
做者:alibaba
使用:
buildscript { repositories { jcenter() } dependencies { classpath 'com.antfortune.freeline:gradle:0.8.7' } }
apply plugin: 'com.antfortune.freeline' android { ... }
File → Settings... → Plugins → Browse repositories →freeline.
一句話介紹:一款提供在使用RxJava過程當中管理Activity和Fragment生命週期能力的框架
上榜理由:在榜單靠前的部分,你已經瞭解RxJava和RxAndroid的強大之處,但部分粗心的開發者由於沒有及時取消訂閱而產生嚴重的內存泄漏,不要擔憂,RxLifecycle能夠爲你解決難題,在gtihub上擁有3.7K個star,國內知名軟件——知乎和淘寶也都在使用它
github https://github.com/trello/RxLifecycle
做者:trello團隊
使用:
clone源碼到本地
一句話介紹:一款可執行文件瀏覽器
上榜理由:榜單裏繼Apktool以後第二款apk逆向工具,若是你喜歡優雅的圖形數據展現,那麼你必定不能錯過他,classyshark能夠將破解的結果以圖形化展現用戶,方便分析,3.7K個star,讓它暫列apk逆向工具第二位!
github https://github.com/google/android-classyshark
做者:google
使用:
下載 JAR
一句話介紹:一款提供記錄APP崩潰日誌能力的框架
上榜理由:若是你面臨着收集APP崩潰日誌的需求,那麼acra是個不錯的選擇。3.7K個star,讓acra位列崩潰日誌框架排行榜第一名,acra有足夠的能力記錄線上APP,而且發回服務端,acra也提供了至關棒的崩潰日誌統計服務端框架Acralyzer,cralyzer工做在Apache CouchDB之上,因此除了CouchDB以外,沒有必要安裝任何額外的軟件,移動端開發者也能夠藉此學習服務端的建設,一箭雙鵰!
github https://github.com/ACRA/acra
服務端github https://github.com/ACRA/acralyzer
做者:acra團隊
使用:
沒有什麼方法比clone源碼到本地更方便了
一句話介紹:一款提供磁盤文件緩存管理能力的框架
上榜理由:3.7k個star並不足以說明DiskLruCache的優秀,僅僅以管理磁盤文件能力單獨拎出來成爲一個框架,做者須要很大的勇氣,很幸運,做者作到了,而且也成爲Google官網提倡的緩存 ;如還記得上次作「一鍵清除緩存」、「查看緩存文件大小」功能是何時嗎?DiskLruCache一句話就能夠搞定!
github https://github.com/JakeWharton/DiskLruCache
做者:JakeWharton
使用:
compile 'com.jakewharton:disklrucache:2.0.2'
或者下載 latest .jar
一句話介紹:一款支撐阿里大部分App客戶端熱修復、線上調試能力的框架
上榜理由:榜單上再次出現熱修復框架的身影,證實App熱修復技術的火熱,dexposed提供圖形化的性能監控、在線熱修復bug漏洞、支持AOP編程思想等,不論你是企業熱修復技術的設計者仍是打算在熱修復領域一探究竟的新人,這款框架很適合你。3.5k個star,證實它做爲一門技術框架的存在,是多麼使人喜好!
github https://github.com/alibaba/dexposed
做者:alibaba
使用:
dependencies { compile 'com.taobao.android:dexposed:0.1.1@aar' }
一句話介紹:一款提供高效構建UI能力的框架
上榜理由:做爲一款專門構建UI的框架,Litho高效的地方在於:單獨開闢了用於渲染和佈局的線程,而後將建立好的組件傳遞給UI線程去完成最終的渲染,使用更少的視圖層級,來提高界面的滾動速度,值得注意的是,它僅支持開發者做出不可改變的UI組件 ,3.5K個star,證實了它在構建UI領域的價值,更多的妙處,期待你親自去發掘!
github https://github.com/facebook/litho
做者:facebook
使用:
ependencies { // ... // Litho compile 'com.facebook.litho:litho-core:0.3.1' compile 'com.facebook.litho:litho-widget:0.3.1' provided 'com.facebook.litho:litho-annotations:0.3.1' annotationProcessor 'com.facebook.litho:litho-processor:0.3.1' // SoLoader compile 'com.facebook.soloader:soloader:0.2.0' // Optional // For debugging debugCompile 'com.facebook.litho:litho-stetho:0.3.1' // For integration with Fresco compile 'com.facebook.litho:litho-fresco:0.3.1' // For testing testCompile 'com.facebook.litho:litho-testing:0.3.1' }
一句話介紹:一款提供構建MVP項目能力的框架
上榜理由:榜單靠前的部分已經介紹了MVC,MVVM,MVP的框架項目,想必此時你在構建企業項目架構上,選擇或者開發一款合適的MVP框架迫在眉睫,mosby能夠做爲你的第一步參考,你能夠封裝它,也能夠照抄它,不管如何,3.4K個star,證實了它在框架設計上有多受開發者的喜好
github https://github.com/sockeqwe/mosby
做者:Hannes Dorfmann
使用:
dependencies { compile 'com.hannesdorfmann.mosby3:mvi:3.0.4' // Model-View-Intent // or compile 'com.hannesdorfmann.mosby3:mvp:3.0.4' // Plain MVP // or compile 'com.hannesdorfmann.mosby3:viewstate:3.0.4' // MVP + ViewState support }
allprojects {
repositories {
... maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } }
一句話介紹:一款提供資源文件路徑混淆 的工具
上榜理由:若是你是個對APK大小很敏感的人,那麼AndResGuard必定適合你,它的原理相似Java Proguard,可是隻針對資源。他會將本來冗長的資源路徑變短,例如將res/drawable/wechat
變爲r/d/a,3.4K個star,證實了在優化APK道路上,你不是一我的在戰鬥!
github https://github.com/shwenzhang/AndResGuard
做者:wechat team
使用:
clone項目到本地,其實也就是個三兩句話的文檔
一句話介紹:一款提供設置沉浸式狀態欄樣式能力的框架
上榜理由:設計師MM老是抱怨系統狀態欄不優雅?那就給她一個完美的沉浸式狀態欄。StatusBarUtil能夠爲所欲爲的設置狀態欄樣式,3.3K個star,足以說明它有多受設計MM的喜好
github https://github.com/laobie/StatusBarUtil
做者:Jaeger
使用:
compile 'com.jaeger.statusbarutil:library:1.4.0'
一句話介紹:一款不依賴於Android設備的單元測試框架,
上榜理由:sample中列舉了如何對Android四大組件和常見功能測試的用例,3.2K個star,值得充滿好奇心的人嘗試
github https://github.com/robolectric/robolectric
做者:robolectric
使用:
testCompile "org.robolectric:robolectric:3.3.2"
一句話介紹:一款提供管理Fragmen嵌套t能力的框架
上榜理由:對於Activity和Fragment使用,你必定駕輕就熟,但若是要作一套通用的Activity&Fragment嵌套設計,想必你有點手足無措了,Fragmentation能夠做爲你設計Fragment管理上的第一步,3.2K個star,筆者認爲有點名副其實了,項目介紹裏說的是Fragment的管理能力,但並未提供Fragment&Activity生命週期、任務棧的管理能力,所以很難直接應用到企業項目當中,但源碼當中的設計思路,值得筆者與諸位借鑑,拾人牙慧留有餘香!
github:https://github.com/YoKeyword/Fragmentation
做者:YoKey
使用:
// appcompat v7包是必須的 compile 'me.yokeyword:fragmentation:0.10.7' // 若是想使用SwipeBack 滑動邊緣退出Fragment/Activity功能,請再添加下面的庫 // compile 'me.yokeyword:fragmentation-swipeback:0.10.4'
一句話介紹:輕巧的插件化框架
上榜理由:做爲插件框架榜單的新成員,Small的優勢是輕巧,適合做爲小團隊的插件開發方案,3.1K個star,讓它得到了酷狗音樂等著名開發團隊的青睞,若是大家的團隊想逐步實施插件化開發,Small是個不錯的選擇!
官網地址:http://code.wequick.net/Small/cn/cases
github https://github.com/wequick/Small
做者:wequick 團隊
使用:
buildscript { dependencies { classpath 'net.wequick.tools.build:gradle-small:1.2.0-alpha6' } } apply plugin: 'net.wequick.small' small { aarVersion = '1.2.0-alpha6' }
一句話介紹:一款提供WebView和Javascript通訊能力的框架
上榜理由:該框架提供給了容許H5頁面調用經過JS調用App方法的能力;3.1K個star,簡潔的通信方式,值得每個Web\Hybrid App開發者嘗試
gtihub https://github.com/lzyzsd/JsBridge
做者:hi大頭鬼hi
使用:
repositories { // ... maven { url "https://jitpack.io" } } dependencies { compile 'com.github.lzyzsd:jsbridge:1.0.4' }
一句話介紹:一款強大的富文本編輯框架
上榜理由:2.8k個star,榜單裏第一個爲TextView提供擴展能力的框架,你暫時不須要它,但不能不知道它
github https://github.com/wasabeef/richeditor-android
做者:Daichi Furiya
使用:
repositories { jcenter() } dependencies { compile 'jp.wasabeef:richeditor-android:1.2.2' }
一句話介紹:一款教你正確使用Transitions API(Android 轉場動畫API)的教學型項目
上榜理由:你可能還何嘗試過Android API的Transitions 框架,可能聽過,但卻沒法作出優雅奇妙的動效——別擔憂,Transitions-Everywhere正如它的名字同樣,它將帶你全面體驗Transitions 的強大之處
github https://github.com/andkulikov/Transitions-Everywhere
做者:Andrey Kulikov
使用:
dependencies { compile "com.andkulikov:transitionseverywhere:1.7.4" }
一句話介紹:可以快速的爲Android 視圖加入「勳章」能力的框架
上榜理由:若是說勳章一詞聽起來陌生,那麼顯示已讀未讀個數、小紅點標記信息這一類詞語你必定不太陌生,筆者相信在諸位實際開發中常常遇到爲某些item加入小紅點標記的需求,聰明的各位必定有着各類實現方案,爲何不能快速優雅的完成呢?android-viewbadger能夠幫你實現,固然,在某些狀況下,你須要具有修改源碼的能力,以符合設計MM的需求!值得注意的是,這寬項目已經五年沒有更新了!
github https://github.com/jgilfelt/android-viewbadger
做者:Jeff Gilfelt
使用:
clone源碼到本地
View target = findViewById(R.id.target_view); BadgeView badge = new BadgeView(this, target); badge.setText("1"); badge.show();
一句話介紹:一款不用數據線也可讓你調試手機設備APP的插件項目
上榜理由:你是否還在擔憂測試過程當中高強度的拔插數據線對手機電池和USB端口形成終生難以彌補的損害?別擔憂,有wifi有AndroidWiFiADB,無須數據線也能夠調試應用了,更有趣的是,在測試工程師一邊拿着手機一邊找你聊bug的時候,你已經偷偷在它的手機上修復了bug,深藏功與名!
github https://github.com/pedrovgs/AndroidWiFiADB
做者:Pedro Vicente Gómez Sánchez
使用:
Preferences/Settings->Plugins->Browse Repositories->serch AndroidWiFiADB
一句話介紹:一款提供在TextView、EdiText展現表情包能力的框架
上榜理由:2.7k個star,,榜單第二款加強TextView顯示能力的框架,這款專爲表情包設計,若是你曾經好奇微信、QQ的表情顯示是如何作到的?這款框架必定能知足你的求知慾。
一句話介紹:一款打爆工具插件
上榜利用:筆者盡力維護榜單涉及範圍的全面性,所以引入此插件項目——項目號稱完成100個渠道包只須要10秒鐘,在市面上各類各樣多渠道打包方案的今天,選擇一款適合本身團隊的,纔是上上選擇
github https://github.com/mcxiaoke/packer-ng-plugin
做者:Xiaoke Zhang
使用:
buildscript { ...... dependencies{ // add packer-ng classpath 'com.mcxiaoke.gradle:packer-ng:1.0.9' } }
apply plugin: 'packer' dependencies { compile 'com.mcxiaoke.gradle:packer-helper:1.0.9' } android { //... signingConfigs { release { // 知足下面兩個條件時須要此配置 // 1. Gradle版本 >= 2.14.1 // 2. Android Gradle Plugin 版本 >= 2.2.0 // 做用是隻使用舊版簽名,禁用V2版簽名模式 v2SigningEnabled false } } }
一句話介紹:一款提供後臺任務管理能力的框架
上榜理由:若是你是個志在深刻研究多線程操做的開發者,這個項目必定不要錯過,不管是Activity從新加載、Service使用線程池時的任務優先級和併發問題,都不要擔憂,Job Manage會照顧優先級,持久性,負載平衡,延遲,網絡控制,分組,2.4K個star,優秀的多線程管理能力,何況它依賴的第三方框架不多,值得你一試
github https://github.com/yigit/android-priority-jobqueue
做者:Yigit Boyar
一句話介紹:一款提供測試App內部數據庫能力的框架
上榜理由:榜單裏第二款針對調試數據庫的框架,一行代碼集成,直接在瀏覽器增刪改查App的數據庫,2.3k個star,心動不如行動!
github https://github.com/amitshekhariitbhu/Android-Debug-Database
做者:AMIT SHEKHAR
使用:
debugCompile 'com.amitshekhar.android:debug-db:1.0.0'
瀏覽器鍵入
http://XXX.XXX.X.XXX:8080
一句話介紹:一款facebook提供的加密本地大文件的框架
上榜理由:若是還在擔憂App內的圖片的隱私問題,這款facebook提供的文件加密框架足以解決你的問題,facebook客戶端的圖片和數據都是使用conceal加密的
官網地址:http://facebook.github.io/conceal/
github https://github.com/facebook/conceal
做者;facebook
使用:
clone項目到本地/官網下載jar
一句話介紹:一款提供服務、頁面跳轉路由的框架
上榜理由:正如做者宣稱的那樣,該框架提供:從外部URL映射到內部頁面、跨模塊的頁面跳轉(頁面解耦)、攔截跳轉過程等能力,還有更多功能等你去發掘,2.1K個star,值得爲企業級的框架喝彩
github https://github.com/alibaba/ARouter
做者:alibaba
使用:
ndroid { defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [ moduleName : project.getName() ] } } } } dependencies { // 替換成最新版本, 須要注意的是api // 要與compiler匹配使用,均使用最新版能夠保證兼容 compile 'com.alibaba:arouter-api:x.x.x' annotationProcessor 'com.alibaba:arouter-compiler:x.x.x' ... } // 舊版本gradle插件(< 2.2),可使用apt插件,配置方法見文末'其餘#4' // Kotlin配置參考文末'其餘#5'
一句話介紹:一款提供多主題切換能力的框架
上榜理由:框架所提供的能力,一直是本榜單所看重的,這款由bilibili提供的多主題框架,做爲榜單所涉及範圍能補充,1.9個star,感謝bilibili團隊所做出的貢獻!
github https://github.com/Bilibili/MagicaSakura
做者:Bilibili
使用:
compile 'com.bilibili:magicasakura:0.1.6@aar'
一句話介紹:一款當APP crash的時候自動載入某個Activity的框架(而不是顯示Unfortunately, X has stopped)
上榜理由:新奇的創意是榜單所須要的,因此它贏得了1.8K個star;做爲開發者應該擁有考慮到各類潛伏的bug的能力,但咱們不能老是面面俱到,其餘系統端的同事也可能形成程序的意外crash,所以,如何讓程序優雅的crash->重啓值得咱們思考,這款框架就提供了這種能力
github https://github.com/Ereza/CustomActivityOnCrash
做者:Eduard Ereza Martínez
使用:
dependencies { compile 'cat.ereza:customactivityoncrash:2.1.0' }
添加到 Application class:
@Override public void onCreate() { super.onCreate(); CaocConfig.Builder.create() .backgroundMode(CaocConfig.BACKGROUND_MODE_SILENT) .enabled(false) //default: true .showErrorDetails(false) //default: true .showRestartButton(false) //default: true .trackActivities(true) //default: false .minTimeBetweenCrashesMs(2000) //default: 3000 .errorDrawable(R.drawable.ic_custom_drawable) //default: bug image .restartActivity(YourCustomActivity.class) //default: null (your app's launch activity) .errorActivity(YourCustomErrorActivity.class) //default: null (default error activity) .eventListener(new YourCustomEventListener()) //default: null .apply(); }
一句話介紹:最開心的開源表情解決方案
上榜理由:若是你還在發愁如何爲你的APP自制鍵盤,那麼此框架很是適合你,並且還提供表情包展現能力,1.7個star證實了它的獨特。此外做者還附贈了高仿微信鍵盤,QQ鍵盤的demo,分享給諸位
github https://github.com/w446108264/XhsEmoticonsKeyboard
做者:zhongdaxia
使用:
allprojects { repositories { jcenter() maven { url "https://jitpack.io" } } } dependencies { compile 'com.github.w446108264:XhsEmoticonsKeyboard:2.0.4' }
一句話介紹:谷歌2016開發者大會的展現項目
上榜理由:github上有13.4k個star,位居企業級項目排行榜第一位,牛逼的開發者,權威的設計模式,標準的項目寫法,值得一試;筆者建議初學者down下源碼,找到app入口,每一個頁面走一通,配合設計模式的概念加深理解。
github https://github.com/google/iosched
做者: Google
一句話介紹:提供設計新聞和靈感的開源app
上榜理由:標準的material design設計,新聞類app,github上9k的star量值得你摒棄市面上良莠不齊的新聞app,快點下手研究它吧!
github https://github.com/nickbutcher/plaid
做者: Nick Butcher
一句話介紹:Github的Android版
上榜理由:8.7K的star數量,Github的親生兒子,開放的源碼值得各位一探究竟
github https://github.com/pockethub/PocketHub
做者:Fadil Sutomo
使用:
down下全部源碼
一句話介紹:Signal是一款安全通信的短信類app,
上榜理由:7.9K的star數量,工具類app的標籤屬性,讓它在排行榜中獨一無二,若是你對短信app有興趣,能夠深刻探究一番
github https://github.com/WhisperSystems/Signal-Android
做者:WhisperSystems
使用:github上down源碼
一句話介紹:一款跨設備運行的多媒體app
上榜理由:googlesamples良心推薦,github擁有7.9k個star,能夠在Android手機,汽車,平板,穿戴設備上使用,對於僅僅體驗過Android手機開發的程序員,會不會很新奇呢?你值得一試!
github https://github.com/googlesamples/android-UniversalMusicPlayer
做者:Google
使用:github上down源碼
一句話介紹:若是你是個愛漂亮的傢伙那麼你必定須要這面鏡子!
上榜理由:工具類App很難再github上有一席之地,除非它提供特別新奇的功能,好比HomeMirror,github上有用7599個star,僅僅由於它提供了鏡子的功能。從如今起,Android 手機、pad,都將成爲你旅遊居家神器,值得擁有!
github https://github.com/HannahMitt/HomeMirror
做者:Hannah Mittens
HomeMirror初體驗:
一句話介紹:一款 替代Android原生MediaPlayer的媒體播放器
上榜理由:也許是Google對自家MediaPlayer API不甚滿意,因此誕生了ExoPlayer,ExoPlayer提供了強大的擴展API,使用它來製做多媒體播放器更快捷,更容易擴展,對多媒體播放器感興趣的同仁們能夠用它來大展身手了!6.9K個star,證實它有多受開發者們喜好,更難能難得的是,google還在更新維護着!
官網地址:https://google.github.io/ExoPlayer/
github https://github.com/google/ExoPlayer
做者:google
使用:
repositories { jcenter() } compile 'com.google.android.exoplayer:exoplayer:r2.X.X' compile 'com.google.android.exoplayer:exoplayer-core:r2.X.X' compile 'com.google.android.exoplayer:exoplayer-dash:r2.X.X' compile 'com.google.android.exoplayer:exoplayer-ui:r2.X.X'
一句話介紹:Android 材料設計的展現性項目
上榜理由:做者被稱爲是Android Support Lib背後的男人,他寫出的展現性項目,怎能不推薦上榜?材料設計已經炒了好幾年了,但做爲最權威的展現項目,你必定須要它,6.7個star證實了它是多麼的受歡迎。
github https://github.com/chrisbanes/cheesesquare
做者:Chris Banes
一句話介紹:android端開源彈幕引擎
上榜理由:bilibili出品,保證了它的純種品質,而且ndk源碼也一併開源,可謂業界良心,該彈幕引擎的開源節省了不少視頻直播小夥伴的開發成本,筆者強力推薦!
github https://github.com/Bilibili/DanmakuFlameMaster
做者:bilibili
使用:
repositories { jcenter() } dependencies { compile 'com.github.ctiao:DanmakuFlameMaster:0.8.3' compile 'com.github.ctiao:ndkbitmap-armv7a:0.8.3' # Other ABIs: optional compile 'com.github.ctiao:ndkbitmap-armv5:0.8.3' compile 'com.github.ctiao:ndkbitmap-x86:0.8.3' }
一句話介紹:一款提供接入facebook平臺能力的框架
上榜理由:不管是你有接入facebook的需求,仍是有學習自制sdk的需求,這都是很棒的途徑;如何開發一套企業級sdk,是進階優秀開發工程師的必須之路,4.1k個star,facebook持久更新質量保證,你值得擁有!
github https://github.com/facebook/facebook-android-sdk
做者:facebook
使用:
https://developers.facebook.com/docs/android
一句話介紹:國外創意社區Kickstarter 開源的Android版客戶端
上榜理由:精緻的企業級APP,每一個頁面處理得都很棒,若是你志在成爲一個優雅工程師,這款開源項目必定適合你,3.8k個star證實了它不俗的生命力
github:https://github.com/kickstarter/android-oss
做者:kickstarter
使用;
clone源碼到本地
一句話介紹:Android端客戶端郵件App
上榜理由:還記得張小龍的成名做——FoxMail嗎?若是你想作一款移動端Email App,k-9具備很好的借鑑價值,此外對於應用層協議你也會有更深的認識
官網地址: https://k9mail.github.io/
github https://github.com/k9mail/k-9
使用:
clone項目到本地
一句話介紹:一款音樂播放器類App
上榜理由:3K個star,徹底按照材料設計規範,提供十幾種播放特性,並且還提供App的通用設置能力,這一點作的一樣優秀,對於志在提高開發技術的同窗值得一試
github https://github.com/naman14/Timber
做者:Naman Dwivedi
使用:
clone源碼是一個好習慣
一句話介紹:仿網易雲音樂Android版App
上榜理由:學習完Timer,是否還不太知足你的胃口?remusic能夠知足你的胃口——它甚至能夠拿去直接當上線項目了!2.9K個star,基於Timber的設計(入手的前提是先搞懂Timber)值得入手;有一個問題:若是由你重構,你會如何作呢?
github https://github.com/aa112901/remusic
做者:MW
使用:
clone項目
一句話介紹:開源豆瓣客戶端
上榜理由:一款功能全面、架構設計不俗的開源APP;僅僅是對豆瓣APP設計思路不滿而進行的重構項目,可見做者對產品的癡迷和熱愛,2.9K個star,證實該項目並非頭腦發熱一時興起的做品,若是每個idea都能實現,那咱們的世界將會多麼美妙!
github https://github.com/DreaminginCodeZH/Douya
做者:Zhang Hai
使用:
clone項目到本地
一句話介紹:開源小說閱讀器
上榜理由:2.7K個star,榜單裏第一款閱讀器APP,具備很高的學習價值(針對有興趣往閱讀工具類方向發展的同窗)
github https://github.com/JustWayward/BookReader
做者:JustWayward 團隊
使用:
clone到本地
一句話介紹:高仿bilibili的Android客戶端
上榜理由:2.5K個star,榜單裏第一款視頻直播開源App;適合對視頻直播、社區互動感興趣的同窗;bilibili-android-client裏使用了不少大型框架,此項目並不適合基礎薄弱的同窗,不要灰心,學習頁面的佈局設計也是值得的!
github https://github.com/HotBitmapGG/bilibili-android-client
做者:Hcc
使用:clone到本地
一句話介紹:Android版chrome瀏覽器
上榜理由:正如做者宣稱的那樣:
對於志在梳理瀏覽器框架的你,值得擁有
github https://github.com/JackyAndroid/AndroidChromium
做者:JackYAndroid
使用:
clone源碼到本地
一句話介紹:一款跨平臺的android端遊戲開發框架
上榜理由:android端開發框架類第一名,11.7K的star量,遊戲框架是它的專屬標籤,更重要的是它是跨平臺的
官網地址 http://libgdx.badlogicgames.com/
github https://github.com/libgdx/libgdx
一句話介紹:老牌企業級開發框架
上榜理由:4.9K個star,xUtils做爲上古時期程序員備受推崇的開發框架,最大的緣由——省事。xUtls包含四大模塊,與之而來的是提供四大操做能力:數據操做、UI操做、Http協議操做、圖片操做。xUtils做爲筆者初學Android框架設計的導師型項目,在筆者多年經驗中,看到xUtils做爲衆多中小銀行Android端框架方案首選,足以證實它的受歡迎程度。該框架如今已經更新到了xUtils3,若是你對Android框架涉及有必定的想法,能夠從xUtils入手,進階爲框架大師行列。雖然框架中不少引擎已通過時,各個模塊的作法均可以用其餘框架替代,但xUtils做爲國內開發者的驕傲,上古時期的框架寵兒,值得你擁有!
github https://github.com/wyouflf/xUtils
做者:wyouflf
使用:
compile 'org.xutils:xutils:3.5.0'
一句話介紹: 一款android快速開發框架
上榜理由:滴滴資深級Android工程師出品,歷經多年開發者的檢驗,以4.3K屹立於快速開發框架榜第三名,該框架提供了圖片緩存、Http緩存、DropDownListView、下載模塊、開發經常使用工具類等,做爲上古時期程序員最先的總結性開發框架,它是一代人智慧的結晶,值得咱們爲做者Trinea鼓掌喝彩
github https://github.com/Trinea/android-common
做者:Trinea
使用:
clone代碼到本地
一句話介紹:一款支持跨平臺的Android多媒體開發框架
上榜理由:若是以前提到的exoplayer不能知足你開發多媒體的需求,那我保證vitamio值得你一試
github https://github.com/yixia/VitamioBundle
做者:yixia團隊
使用:
clone源碼到本地
一句話介紹:移動端跨平臺開發的解決方案
上榜理由:14.4K個star,有成熟應用案例的企業級混合開發框架,阿里巴巴出品,爲何不試試呢?
官網地址:https://weex.apache.org/cn/
github https://github.com/alibaba/weex
做者:alibaba
一句話介紹:跨平臺的開發框架
上榜理由:cordova有足夠的能力完成混合開發、WebApp開發的需求:不論你是Web開發者,或者是Native開發者,使用cordova均可以做出跨平臺的App
官網地址:http://cordova.axuer.com/docs/zh-cn/latest/guide/overview/index.html
github https://github.com/apache/cordova-android
一句話介紹:一款以Javascript的語言來操做多個系統語言(Ios、Android)的框架
上榜理由:很難講react-native屬於什麼類別,它適合前端工程師開發移動端App,也適合Native開發者進行跨平臺的開發,但對於Navitve開發者來講陡峭的學習曲線會嚇走一大批「框架愛好者」;前端界有一句名言:Web表明着將來,Native表明着如今,而咱們處在如今與將來的道路上;49K個star,彷佛讓咱們離將來更進一步
官網地址: http://facebook.github.io/react-native/docs/getting-started.html
github https://github.com/facebook/react-native
做者:facebook
一句話介紹:提供了數量龐大的工具類
上榜理由:10.8K的star個數,足以證實它是多麼受歡迎,歡迎你提供經常使用的工具類壯大它!
github https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md
File → Settings... → Plugins → Browse repositories...
and search for freeline
.
一句話介紹:Google推出的Android編程語言
上榜理由:就像AndroidStudio取代Eclipse那樣,Goolg將kotiln做爲Android的官網語言,也許是爲了不同Oracle的專利訴訟,但kotlin 100%兼容java,大幅精簡java代碼量,以及函數式編程的思想這些優異的特性贊成值得咱們注意,還記得在榜單以前說過的嗎?將來是kotlin的,當下是java的,但咱們處在當下通往將來的道路上——學習將來的編程語言,提高本身的工做效率,早點下班打豆豆,何樂而不爲?
github:https://github.com/JetBrains/kotlin
使用:
http://kotlinlang.org/docs/reference/ 提供了 api-android用例-書籍等資源
一句話介紹:符合中國國情的Google開發者官網的子產品——Android開發者官網
上榜理由:這裏有培訓課程、API用例課程、Sample用例、依賴庫介紹、AndroidStudio官網...等等一系列公開免費的課程,儘管大部份內容仍是英文講解,但是你肯靠着英語詞典一篇一篇啃完,相信我,你的Android知識水平將秒殺國內市面上大部分的Android書籍
官網地址:https://developer.android.google.cn/training/index.html
做者:google
一句話介紹:google提供的Android當下各類基本框架
上榜理由:看完它,mvp,mvvm都將入切瓜砍菜,秋風掃落葉通常...
github https://github.com/googlesamples/android-architecture
做者:google
一句話介紹:囊括Android幾乎全部的開源項目的導航類目錄
上榜理由:23k個star的導航類目錄,與其盛名不符的是,該項目的導航、瀏覽閱讀體驗作的很是差,建議消遣之餘閱讀;推薦理由——中國人作的最全的Android 開源項目導航目錄
github https://github.com/Trinea/android-open-project
做者:Trinea
一句話介紹:Android的開源項目目錄
上榜理由:國外的一款導航目錄,23k個star
github https://github.com/wasabeef/awesome-android-ui
本文轉載自:http://www.cnblogs.com/jincheng-yangchaofan/articles/7018780.html