排行榜包括四大类:
单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架
混合开发框架:提供开发hybrid app、h5与webview结合能力、web app能力的框架
企业级开源项目:可以独立运行的app,有极高的学习价值、思路借鉴意义
书籍类开源项目:类似Open-sourc-project这样的导航类项目;大型公司的Android课程的学习目录
框架名次越靠前,值得使用的优先级就越高、研究原理得到的收获会更多、对读者启发的价值就越大
二.百大框架排行榜
快速索引
框架名称 上榜关键字
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.项目开源
2.github上该项目的star个数
3.开发团队、作者的实力
为了保证榜单内容的多样性,榜单上尽可能的不重复同类型框架(比如多款listview增强框架)
部分框架介绍:
(由于篇幅有限,下面只讲解部分框架,更全面的讲解查看:2017年Android百大框架排行榜,或者点击文末“阅读原文”查阅)
1. Retrofit
一句话介绍: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’
2.okhttp
一句话介绍: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’
3.Butter Knife
一句话介绍: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’}
4.MPAndroidChart
一句话介绍:MPAndroidChart是一款图表框架
上榜理由:github上16.1K个star,以快速、简洁。强大著称的图表框架
官网地址 https://github.com/PhilJay/MPAndroidChart
github https://github.com/PhilJay/MPAndroidChart
作者:PhilJay
使用:
在AS中加入Gradle依赖
在根目录的 build.gradle上加入:
allprojects { repositories { maven { url”https://jitpack.io“} } }
在app的build.gradle上加入:
dependencies { compile’com.github.PhilJay:MPAndroidChart:v3.0.2’}
glide
一句话介绍: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’}
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 中写入:
publicclassExampleApplication extends Application { @OverridepublicvoidonCreate() { 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以及两年未更新了,但笔者仍推荐各位使用!
github https://github.com/nostra13/Android-Universal-Image-Loader
作者 nostra13
使用:
下载地址 universal-image-loader-1.9.5.jar
8.EventBus
一句话介绍: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’
9.zxing
一句话介绍:条码图像处理库
上榜理由:如果你用过二维码,你肯定已经间接使用过大名鼎鼎的zxing了。13.9K的star量,让它排在本榜单第九,实至名归,如果你有了解二维码的需求,不妨从了解、修改它源码入手。
github https://github.com/zxing/zxing
作者 Sean Owen
10.picasso
一句话介绍:强力的图片下载、缓存框架
上榜理由:本榜单出现的第三款图片类框架,不同的是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’
或者下载 jar包
三.完整项目
1.iosche
一句话介绍:谷歌2016开发者大会的展示项目
上榜理由:github上有13.4k个star,位居企业级项目排行榜第一位,牛逼的开发者,权威的设计模式,标准的项目写法,值得一试;笔者建议初学者down下源码,找到app入口,每个页面走一通,配合设计模式的概念加深理解。
github https://github.com/google/iosched
作者: Google
2.Plaid
一句话介绍:提供设计新闻和灵感的开源app
上榜理由:标准的material design设计,新闻类app,github上9k的star量值得你摒弃市面上参差不齐的新闻app,快点下手研究它吧!
github https://github.com/nickbutcher/plaid
作者: Nick Butcher
3.PocketHub
一句话介绍:Github的Android版
上榜理由:8.7K的star数量,Github的亲生儿子,开放的源码值得各位一探究竟
github https://github.com/pockethub/PocketHub
作者:Fadil Sutomo
使用:
down下所有源码
4.Signal Android
一句话介绍:Signal是一款安全通讯的短信类app,
上榜理由:7.9K的star数量,工具类app的标签属性,让它在排行榜中独一无二,如果你对短信app有兴趣,可以深入探究一番
github https://github.com/WhisperSystems/Signal-Android
作者:WhisperSystems
使用:github上down源码
5.android-UniversalMusicPlayer
一句话介绍:一款跨设备运行的多媒体app
上榜理由:googlesamples良心推荐,github拥有7.9k个star,可以在Android手机,汽车,平板,穿戴设备上使用,对于仅仅体验过Android手机开发的程序员,会不会很新奇呢?你值得一试!
github https://github.com/googlesamples/android-UniversalMusicPlayer
作者:Google
使用:github上down源码
6.HomeMirror
一句话介绍:如果你是个爱美的家伙那么你一定需要这面镜子!
上榜理由:工具类App很难再github上有一席之地,除非它提供特别新奇的功能,比如HomeMirror,github上有用7599个star,仅仅因为它提供了镜子的功能。从现在起,Android 手机、pad,都将成为你旅游居家神器,值得拥有!
github https://github.com/HannahMitt/HomeMirror
作者:Hannah Mittens
HomeMirror初体验:
7.ExoPlayer
一句话介绍:一款 替代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’
8.cheesesquare
一句话介绍:Android 材料设计的展示性项目
上榜理由:作者被称为是Android Support Lib背后的男人,他写出的展示性项目,怎能不推荐上榜?材料设计已经炒了好几年了,但作为最权威的展示项目,你一定需要它,6.7个star证明了它是多么的受欢迎。
github https://github.com/chrisbanes/cheesesquare
作者:Chris Banes
9.DanmakuFlameMaster
一句话介绍: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’}
10.facebook-android-sdk
一句话介绍:一款提供接入facebook平台能力的框架
上榜理由:无论是你有接入facebook的需求,还是有学习自制sdk的需求,这都是很棒的途径;如何开发一套企业级sdk,是进阶优秀开发工程师的必须之路,4.1k个star,facebook持久更新质量保证,你值得拥有!
github https://github.com/facebook/facebook-android-sdk
作者:facebook
使用:
https://developers.facebook.com/docs/android
11.android-oss
一句话介绍:国外创意社区Kickstarter 开源的Android版客户端
上榜理由:精致的企业级APP,每个页面处理得都很棒,如果你志在成为一个优雅工程师,这款开源项目一定适合你,3.8k个star证明了它不俗的生命力
github:https://github.com/kickstarter/android-oss
作者:kickstarter
使用;
clone源码到本地
12.k-9
一句话介绍:Android端客户端邮件App
上榜理由:还记得张小龙的成名作——FoxMail吗?如果你想做一款移动端Email App,k-9具有很好的借鉴价值,此外对于应用层协议你也会有更深的认识
官网地址: https://k9mail.github.io/
github https://github.com/k9mail/k-9
使用:
clone项目到本地
13.Timber
一句话介绍:一款音乐播放器类App
上榜理由:3K个star,完全按照材料设计规范,提供十几种播放特性,而且还提供App的通用设置能力,这一点做的同样优秀,对于志在提升开发技术的同学值得一试
github https://github.com/naman14/Timber
作者:Naman Dwivedi
使用:
clone源码是一个好习惯
14.remusic
一句话介绍:仿网易云音乐Android版App
上榜理由:学习完Timer,是否还不太满足你的胃口?remusic可以满足你的胃口——它甚至可以拿去直接当上线项目了!2.9K个star,基于Timber的设计(入手的前提是先搞懂Timber)值得入手;有一个问题:如果由你重构,你会如何做呢?
github https://github.com/aa112901/remusic
作者:MW
使用:
clone项目
15.Douya
一句话介绍:开源豆瓣客户端
上榜理由:一款功能全面、架构设计不俗的开源APP;仅仅是对豆瓣APP设计思路不满而进行的重构项目,可见作者对产品的痴迷和热爱,2.9K个star,证明该项目并不是头脑发热一时兴起的作品,如果每一个idea都能实现,那我们的世界将会多么美妙!
github https://github.com/DreaminginCodeZH/Douya
作者:Zhang Hai
使用:
clone项目到本地
16.BookReader
一句话介绍:开源小说阅读器
上榜理由:2.7K个star,榜单里第一款阅读器APP,具有很高的学习价值(针对有兴趣往阅读工具类方向发展的同学)
github https://github.com/JustWayward/BookReader
作者:JustWayward 团队
使用:
clone到本地
17.bilibili-android-client
一句话介绍:高仿bilibili的Android客户端
上榜理由:2.5K个star,榜单里第一款视频直播开源App;适合对视频直播、社区互动感兴趣的同学;bilibili-android-client里使用了很多大型框架,此项目并不适合基础薄弱的同学,不要灰心,学习页面的布局设计也是值得的!
github https://github.com/HotBitmapGG/bilibili-android-client
作者:Hcc
使用:clone到本地
18.AndroidChromium
一句话介绍:Android版chrome浏览器
上榜理由:正如作者宣称的那样:
谷歌浏览器安卓版源码项目
世界级的安卓架构
理清本项目业务逻辑完全可以胜任国内一线公司工程师
对于志在梳理浏览器框架的你,值得拥有
github https://github.com/JackyAndroid/AndroidChromium
作者:JackYAndroid
使用:
clone源码到本地
四.开发框架:
(排名无先后、只按类型划分)
1.libgdx
一句话介绍:一款跨平台的android端游戏开发框架
上榜理由:android端开发框架类第一名,11.7K的star量,游戏框架是它的专属标签,更重要的是它是跨平台的
官网地址 http://libgdx.badlogicgames.com/
github https://github.com/libgdx/libgdx
2.xUtils
一句话介绍:老牌企业级开发框架
上榜理由: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’
3.android-common
一句话介绍: 一款android快速开发框架
上榜理由:滴滴资深级Android工程师出品,历经多年开发者的检验,以4.3K屹立于快速开发框架榜第三名,该框架提供了图片缓存、Http缓存、DropDownListView、下载模块、开发常用工具类等,作为上古时期程序员最早的总结性开发框架,它是一代人智慧的结晶,值得我们为作者Trinea鼓掌喝彩
github https://github.com/Trinea/android-common
作者:Trinea
使用:
clone代码到本地
4.Vitamio
一句话介绍:一款支持跨平台的Android多媒体开发框架
上榜理由:如果之前提到的exoplayer不能满足你开发多媒体的需求,那我保证vitamio值得你一试
官网地址:https://www.vitamio.org/
github https://github.com/yixia/VitamioBundle
作者:yixia团队
使用:
clone源码到本地
5.Weex
一句话介绍:移动端跨平台开发的解决方案
上榜理由:14.4K个star,有成熟应用案例的企业级混合开发框架,阿里巴巴出品,为什么不试试呢?
官网地址:https://weex.apache.org/cn/
github https://github.com/alibaba/weex
作者:alibaba
6.cordova-android(Hybrid 开发框架、WebApp开发框架)
一句话介绍:跨平台的开发框架
上榜理由: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
7.react-native
一句话介绍:一款以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
五.其他:
1.AndroidUtilCode
一句话介绍:提供了数量庞大的工具类
上榜理由:10.8K的star个数,足以证明它是多么受欢迎,欢迎你提供常用的工具类壮大它!
github https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md
File → Settings... → Plugins → Browse repositories...
and search for freeline.
2.kotiln
一句话介绍:Google推出的Android编程语言
上榜理由:就像AndroidStudio取代Eclipse那样,Goolg将kotiln作为Android的官网语言,也许是为了避免同Oracle的专利诉讼,但kotlin 100%兼容java,大幅精简java代码量,以及函数式编程的思想这些优异的特性同意值得我们注意,还记得在榜单之前说过的吗?未来是kotlin的,当下是java的,但我们处在当下通往未来的道路上——学习未来的编程语言,提升自己的工作效率,早点下班打豆豆,何乐而不为?
官网地址:http://kotlinlang.org/
github:https://github.com/JetBrains/kotlin
使用:
http://kotlinlang.org/docs/reference/ 提供了 api-android用例-书籍等资源
六.书籍类项目
(排序无先后)
1.Android developer中国官网培训课程
一句话介绍:符合中国国情的Google开发者官网的子产品——Android开发者官网
上榜理由:这里有培训课程、API用例课程、Sample用例、依赖库介绍、AndroidStudio官网…等等一系列公开免费的课程,尽管大部分内容还是英文讲解,可是你肯靠着英语词典一篇一篇啃完,相信我,你的Android知识水平将秒杀国内市面上大部分的Android书籍
官网地址:https://developer.android.google.cn/training/index.html
作者:google
2.android-architecture
一句话介绍:google提供的Android当下各种基本框架
上榜理由:看完它,mvp,mvvm都将入切瓜砍菜,秋风扫落叶一般…
github https://github.com/googlesamples/android-architecture
作者:google
3.andorid-open-project
一句话介绍:囊括Android几乎所有的开源项目的导航类目录
上榜理由:23k个star的导航类目录,与其盛名不符的是,该项目的导航、浏览阅读体验做的非常差,建议消遣之余阅读;推荐理由——中国人做的最全的Android 开源项目导航目录
github https://github.com/Trinea/android-open-project
作者:Trinea
4.awesome-android-ui
一句话介绍:Android的开源项目目录
上榜理由:国外的一款导航目录,23k个star
github https://github.com/wasabeef/awesome-android-ui