2017年Android百大框架排行榜

http://mp.weixin.qq.com/s?__biz=MzAxMTI4MTkwNQ==&mid=2650823358&idx=1&sn=945e089df1adae9781a725b4c9bf39d9&chksm=80b78e20b7c007367fe1e7c9aa70c49d8b57dbd5007f143336f90c0ae26206b93f64799031f1&mpshare=1&scene=23&srcid=0628SeZk2HRSFqokPXcNida1#rd
2017年Android百大框架排行榜

2017-06-28 金诚 鸿洋
本文作者

本文由金诚投稿。
金诚的博客地址:
http://www.cnblogs.com/jincheng-yangchaofan
1
榜单介绍

排行榜包括四大类:

单一框架:仅提供路由、网络层、UI层、通信层或其他单一功能的框架
混合开发框架:提供开发hybrid app、h5与webview结合能力、web app能力的框架。
企业级开源项目:可以独立运行的app,有极高的学习价值、思路借鉴意义
书籍类开源项目:类似Open-sourc-project这样的导航类项目;
大型公司的Android课程的学习目录 tips

注: 文章长度已经超过了微信的限制(这是我遇到的第一篇几乎纯文字就超出了3W字~~),会减少各个类目下项目的个数(例如:前100变成前50等。)可以阅读原文,查看完整介绍。

榜单排序依据:

1.项目开源
2.github上该项目的star个数
3.开发团队、作者的实力

为了保证榜单内容的多样性,榜单上尽可能的不重复同类型框架(比如多款listview增强框架)

适用读者范围:

正在入门Android的新手~~~Android初级开发工程师 初出茅庐

熟读《书籍导航类项目排行榜》,勤加练习进步会更大;编译运行并动脑思考《企业级开源项目》中的案例,可以提升开发完整项目的能力;;略读《框架百大排行榜》,最大的作用是的是拓展视野,可以看到很多时下流行的名词概念术语。

Android初级开发工程师~~~中级开发工程师 知其然知其所以然

熟练、快速、高效的默写出《企业级开源项目》中的(自己感兴趣)典型案例,对提高书写代码的自信,提升项目功能整体设计能力;深究《框架百大排行榜》排名靠前框架的原理,会让自己在与家人、同事、同学聚会之时多了一些炫耀的资本;如果你能熟练运用《框架百大排行榜》里所提到的框架,在遇到某种需求的时候,立刻会拿出“最优秀的框架”去解决,意味着你离中级工程师不太远了。

中级、高级、资深工程师 知其然知其不可然

《框架百大排行榜》里所提到的流行词、流行术语——使用能力、融会贯通其原理、讲解框架能力的高低,将让你不断的在这三个级别徘徊;
   
会有意识的合并榜单里多款同类型框架,来弥补单一框架的某些缺陷,比如将同为网络请求框架的Volley和Okhttp封装到一起应对不同场面的需求;

会有意识的二次开发、修改源码来扩展榜单所提到的大型框架;

能够在开发团队里推动、部署某些框架的能力——比如要在一个新加入的陌生团队说服leader和项目成员使用热更新、插件化、组件化、hybrid 开发等多种开发模式,你是否有这个实力?

框架名次越靠前,值得使用的优先级就越高、研究原理得到的收获会更多、对读者启发的价值就越大

2
百大框架排行榜
2017年Android百大框架排行榜

2017年Android百大框架排行榜

2017年Android百大框架排行榜

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团队

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团队
  
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团队成员之一

4.MPAndroidChart

一句话介绍:MPAndroidChart是一款图表框架

上榜理由:github上16.1K个star,以快速、简洁。强大著称的图表框架

官网地址
https://github.com/PhilJay/MPAndroidChart
github
https://github.com/PhilJay/MPAndroidChart
作者:PhilJay

  1. glide

一句话介绍:glide是一款专注于提供流畅划动能力的“图片加载和缓存框架”

上榜理由:15.9k个star,图片加载类框架排名第一的框架,google 在2014开发者大会上演示的camera app就是基于gilde框架开发的。

github https://github.com/bumptech/glide
作者 Bump Technologies团队

6.leakcanary

一句话介绍:一款内存检测框架,服务于java和android客户端
上榜理由:方便,简洁是leakcanary最大的特点,只需在应用的apllication中集成,就可以直接使用它;15.5k个star说明了它有多么受欢迎

github
https://github.com/square/leakcanary
作者 square团队

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

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

9.zxing

一句话介绍:条码图像处理库

上榜理由:如果你用过二维码,你肯定已经间接使用过大名鼎鼎的zxing了。13.9K的star量,让它排在本榜单第九,实至名归,如果你有了解二维码的需求,不妨从了解、修改它源码入手。

github
https://github.com/zxing/zxing
作者 Sean Owen

10.picasso

一句话介绍:强力的图片下载、缓存框架

上榜理由:本榜单出现的第三款图片类框架,不同的是picasso更强调图片下载。

官网地址
http://square.github.io/picasso/
github
https://github.com/square/picasso
作者 square团队

11.lottie-android

一句话介绍:一款可以在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 团队

12.fresco

一句话介绍:一款可以管理图片内存的框架

上榜理由:github上12.8k个star,图片类排行榜第四名,facebook的出身证明了它并非是重复造的*,在管理图片内存领域上有着它的一片天地,渐进式加载、加载gif都是它与前三位相比独有的特性

官网地址:
https://www.fresco-cn.org/
github
https://github.com/facebook/fresco
作者 facebook

13.RxAndroid

一句话介绍:一款Android客户端组件间异步通信的框架

上榜理由:github上12.7k个star,位居组件通信框架的第二名,仅在EventBus之后,如果要问两者的区别,Eventbus是用来取代组件间繁琐的interface,RxAndroid是用来取代AnsyTask的,并不冲突;当然RxAndroid的优点并不仅限于此,更多优雅的实现,可以去官网查阅!

github
https://github.com/ReactiveX/RxAndroid
作者 JakeWharton

14.SlidingMenu

一句话介绍:侧滑菜单栏框架

上榜理由:与Userval-Image-loader 齐名的上古神器框架——为你的app提供侧滑菜单栏的功能;github闪更有10.5k个star,证明了它的经久不衰,即使在Google推出了NavigationDrawer,仍然没有减少开发者对SildingMenu的拥簇,经典总是经得起考验的,这个上古神兽已经四年没有更新了;有太多太多的app使用过它,这些都可以在软件的开源许可上看到!

github
https://github.com/jfeinstein10/SlidingMenu
作者 Jeremy Feinstein

15.PhotoView

一句话介绍:一款ImageView展示框架,支持缩放,响应手势

上榜理由:10.3k的star数量,位于图片类框架排行榜第五位,PhotoView与前四位不同的是这次带来的是图片的展示能力,你一定好奇微信的头像点击放大是如何实现的,很多App的图片显示响应手势按压是如何实现的,了解PhotoView,你一定会开心的!(笔者也不会告诉你ImageView的点击放大效果在Android的sample也有)

github
https://github.com/chrisbanes/PhotoView
作者:chrisbanes

16.material-dialogs

一句话介绍:一款自定义dialog框架
上榜理由:9.9k个star,也是继PhotoView,SlidingMenu之后第三款自定义View框架,也许你还是自定义View的新人,对Dialog使用的还有点生疏,你可以通过它提升你的Dilaog使用能力

github
https://github.com/afollestad/material-dialogs
作者:Aidan Follestad

17.droid-async-http

一句话介绍:一款基于Http协议的异步请求的网络框架,
上榜理由:虽然你有无数个使用retrofit+okhttp的理由,但9.8k个star,证明它仍然值得你深入学习。值得注意的是,它也已经有两年没更新了,你尽管拿去当你懒惰的理由!

github
https://github.com/loopj/android-async-http
作者:James Smith

18.androidannotations

一句话介绍:一款基于注解的快速开发框架
上榜理由:与Butterknife一样基于注解,利用注解快速完成view的初始化,不同的是androidannotations提供了更多的能力:简单的线程模型等;笔者只接触过Butterknife,无法更进一步叙述androidannotations的优势,如果你志在深入了解注解的妙用,可以尝试探索一下!

官网地址
http://androidannotations.org/
github
https://github.com/androidannotations/androidannotations
作者: WonderCsabo

19.fastjson

一句话介绍:一款基于json解析、生成的框架
上榜理由:从它的名字不难看出,快速是它最大的特性,阿里巴巴的出身保证了代码的质量和优越,9.4k的star数量,也是榜单里第一个出现的中国开源框架,涉及网络的app都会用到json,fastjson值得作为你的首选!

github
https://github.com/alibaba/fastjson
作者:alibaba

20.Material-Animations

一句话介绍:一款提供场景转换过渡能力的动画框架
上榜理由:Android动画框架排行榜第二名,9.3k个star数量,与动画框架榜单第一名lottie-android不同的是,Material-Animations提供的是场景切换的动画效果。Android 官网sample中已经提供了部分Transition (转场动画)的展示,作为初学者很难快速拓展到自己项目中,Material-Animations的示例出现为开发者省去了此类麻烦,直接照搬应用到自己的App中吧。

github
https://github.com/lgvalle/Material-Animations
作者:Luis G. Valle

21.tinker
一句话介绍:它是微信官网的Android热补丁解决方案
上榜理由:9.1k个star,微信在用的热补丁方案,心动不如行动

官网地址
http://www.tinkerpatch.com/Docs/intro
github
https://github.com/Tencent/tinker
作者:Tencent

剩下的自己根据名字github上搜索下或者阅读原文就好~~

3
完整项目

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

4.Signal Android

一句话介绍:Signal是一款安全通讯的短信类app,
上榜理由:7.9K的star数量,工具类app的标签属性,让它在排行榜中独一无二,如果你对短信app有兴趣,可以深入探究一番

github
https://github.com/WhisperSystems/Signal-Android
作者:WhisperSystems

5.android-UniversalMusicPlayer

一句话介绍:一款跨设备运行的多媒体app

上榜理由:googlesamples良心推荐,github拥有7.9k个star,可以在Android手机,汽车,平板,穿戴设备上使用,对于仅仅体验过Android手机开发的程序员,会不会很新奇呢?你值得一试!

github
https://github.com/googlesamples/android-UniversalMusicPlayer
作者:Google

6.HomeMirror

一句话介绍:如果你是个爱美的家伙那么你一定需要这面镜子!

上榜理由:工具类App很难再github上有一席之地,除非它提供特别新奇的功能,比如HomeMirror,github上有用7599个star,仅仅因为它提供了镜子的功能。从现在起,Android 手机、pad,都将成为你旅游居家神器,值得拥有!

github
https://github.com/HannahMitt/HomeMirror
作者:Hannah Mittens

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

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

10.facebook-android-sdk

一句话介绍:一款提供接入facebook平台能力的框架

上榜理由:无论是你有接入facebook的需求,还是有学习自制sdk的需求,这都是很棒的途径;如何开发一套企业级sdk,是进阶优秀开发工程师的必须之路,4.1k个star,facebook持久更新质量保证,你值得拥有!

github
https://github.com/facebook/facebook-android-sdk
作者:facebook

11.android-oss

一句话介绍:国外创意社区Kickstarter 开源的Android版客户端

上榜理由:精致的企业级APP,每个页面处理得都很棒,如果你志在成为一个优雅工程师,这款开源项目一定适合你,3.8k个star证明了它不俗的生命力

github:
https://github.com/kickstarter/android-oss
作者:kickstarter

12.k-9

一句话介绍:Android端客户端邮件App

上榜理由:还记得张小龙的成名作——FoxMail吗?如果你想做一款移动端Email App,k-9具有很好的借鉴价值,此外对于应用层协议你也会有更深的认识

官网地址:
https://k9mail.github.io/
github
https://github.com/k9mail/k-9

13.Timber

一句话介绍:一款音乐播放器类App

上榜理由:3K个star,完全按照材料设计规范,提供十几种播放特性,而且还提供App的通用设置能力,这一点做的同样优秀,对于志在提升开发技术的同学值得一试

github
https://github.com/naman14/Timber
作者:Naman Dwivedi

14.remusic

一句话介绍:仿网易云音乐Android版App

上榜理由:学习完Timer,是否还不太满足你的胃口?remusic可以满足你的胃口——它甚至可以拿去直接当上线项目了!2.9K个star,基于Timber的设计(入手的前提是先搞懂Timber)值得入手;有一个问题:如果由你重构,你会如何做呢?

github
https://github.com/aa112901/remusic
作者:MW

15.Douya

一句话介绍:开源豆瓣客户端

上榜理由:一款功能全面、架构设计不俗的开源APP;仅仅是对豆瓣APP设计思路不满而进行的重构项目,可见作者对产品的痴迷和热爱,2.9K个star,证明该项目并不是头脑发热一时兴起的作品,如果每一个idea都能实现,那我们的世界将会多么美妙!

github
https://github.com/DreaminginCodeZH/Douya
作者:Zhang Hai

16.BookReader

一句话介绍:开源小说阅读器

上榜理由:2.7K个star,榜单里第一款阅读器APP,具有很高的学习价值(针对有兴趣往阅读工具类方向发展的同学)

github
https://github.com/JustWayward/BookReader
作者:JustWayward 团队

17.bilibili-android-client

一句话介绍:高仿bilibili的Android客户端

上榜理由:2.5K个star,榜单里第一款视频直播开源App;适合对视频直播、社区互动感兴趣的同学;bilibili-android-client里使用了很多大型框架,此项目并不适合基础薄弱的同学,不要灰心,学习页面的布局设计也是值得的!

github
https://github.com/HotBitmapGG/bilibili-android-client
作者:Hcc

18.AndroidChromium

一句话介绍:Android版chrome浏览器

上榜理由:正如作者宣称的那样:
谷歌浏览器安卓版源码项目
世界级的安卓架构
理清本项目业务逻辑完全可以胜任国内一线公司工程师
  对于志在梳理浏览器框架的你,值得拥有

github
https://github.com/JackyAndroid/AndroidChromium
作者:JackYAndroid

4
开发框架

(排名无先后、只按类型划分)

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

3.android-common

一句话介绍: 一款android快速开发框架

上榜理由:滴滴资深级Android工程师出品,历经多年开发者的检验,以4.3K屹立于快速开发框架榜第三名,该框架提供了图片缓存、Http缓存、DropDownListView、下载模块、开发常用工具类等,作为上古时期程序员最早的总结性开发框架,它是一代人智慧的结晶,值得我们为作者Trinea鼓掌喝彩

github
https://github.com/Trinea/android-common
作者:Trinea

4.Vitamio

一句话介绍:一款支持跨平台的Android多媒体开发框架
上榜理由:如果之前提到的exoplayer不能满足你开发多媒体的需求,那我保证vitamio值得你一试

官网地址:
https://www.vitamio.org/
github
https://github.com/yixia/VitamioBundle
作者:yixia团队

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

5
其他

1.AndroidUtilCode

一句话介绍:提供了数量庞大的工具类
上榜理由:10.8K的star个数,足以证明它是多么受欢迎,欢迎你提供常用的工具类壮大它!

github
https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md

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用例-书籍等资源

6
书籍类项目

(排序无先后)

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