Android史上第一震撼榜单—2017年Android百大框架排行榜,附完整项目
Posted Java和Android架构
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android史上第一震撼榜单—2017年Android百大框架排行榜,附完整项目相关的知识,希望对你有一定的参考价值。
热文导读 | 点击标题阅读
来源:http://www.cnblogs.com/jincheng-yangchaofan/articles/7018780.html
一.榜单介绍
排行榜包括四大类:
单一框架:仅提供路由、网络层、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增强框架)
部分框架介绍:
(由于篇幅有限,下面只讲解部分框架,更全面的讲解查看:,或者点击文末“阅读原文”查阅)
1. Retrofit
一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言
上榜理由:Retrofit以21.8k的stars量雄踞github中android子标题榜首,第一当之无愧。
github https://github.com/square/retrofit
使用:
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专注网络请求的安全高效,笔者将两者区分开,是想让后来学习者知道,这是两套框架,学习框架原理时可以分开学习,以免理解混乱。
github https://github.com/square/okhttp
使用:
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插件进一步学习!
github:https://github.com/JakeWharton/butterknife
使用:
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
使用:
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框架开发的
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
中写入:
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以及两年未更新了,但笔者仍推荐各位使用!
github https://github.com/nostra13/Android-Universal-Image-Loader
作者 nostra13
使用:
8.EventBus
一句话介绍:EventBus是一款本地组件间通信框架
上榜理由:组件间通信框架star量第一:14.8k,在大型项目的Activities,fragments,Threads,Services都可以看到它的使用场景,尽管EventBus在向未创建的组件传递事件时有些局限,仅适合在“活着的”组件间传递消息,但仍不妨碍它活跃在各个大型项目各个场景里。
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,三者一齐封装至你的项目中,按需所用。
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
2.Plaid
一句话介绍:提供设计新闻和灵感的开源app
上榜理由:标准的material design设计,新闻类app,github上9k的star量值得你摒弃市面上参差不齐的新闻app,快点下手研究它吧!
github https://github.com/nickbutcher/plaid
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
使用:github上down源码
5.android-UniversalMusicPlayer
一句话介绍:一款跨设备运行的多媒体app
上榜理由:googlesamples良心推荐,github拥有7.9k个star,可以在Android手机,汽车,平板,穿戴设备上使用,对于仅仅体验过Android手机开发的程序员,会不会很新奇呢?你值得一试!
github https://github.com/googlesamples/android-UniversalMusicPlayer
使用:github上down源码
6.HomeMirror
一句话介绍:如果你是个爱美的家伙那么你一定需要这面镜子!
上榜理由:工具类App很难再github上有一席之地,除非它提供特别新奇的功能,比如HomeMirror,github上有用7599个star,仅仅因为它提供了镜子的功能。从现在起,Android 手机、pad,都将成为你旅游居家神器,值得拥有!
github https://github.com/HannahMitt/HomeMirror
HomeMirror初体验:
7.ExoPlayer
一句话介绍:一款 替代Android原生MediaPlayer的媒体播放器
上榜理由:也许是Google对自家MediaPlayer API不甚满意,所以诞生了ExoPlayer,ExoPlayer提供了强大的扩展API,使用它来制作多媒体播放器更快捷,更容易扩展,对多媒体播放器感兴趣的同仁们可以用它来大展身手了!6.9K个star,证明它有多受开发者们喜爱,更难能可贵的是,google还在更新维护着!
github https://github.com/google/ExoPlayer
使用:
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
9.DanmakuFlameMaster
一句话介绍:android端开源弹幕引擎
上榜理由:bilibili出品,保证了它的纯种品质,并且ndk源码也一并开源,可谓业界良心,该弹幕引擎的开源节省了很多视频直播小伙伴的开发成本,笔者强力推荐!
github https://github.com/Bilibili/DanmakuFlameMaster
使用:
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
使用:
https://developers.facebook.com/docs/android
11.android-oss
一句话介绍:国外创意社区Kickstarter 开源的Android版客户端
上榜理由:精致的企业级APP,每个页面处理得都很棒,如果你志在成为一个优雅工程师,这款开源项目一定适合你,3.8k个star证明了它不俗的生命力
github:https://github.com/kickstarter/android-oss
使用;
clone源码到本地
12.k-9
一句话介绍:Android端客户端邮件App
github https://github.com/k9mail/k-9
使用:
clone项目到本地
13.Timber
一句话介绍:一款音乐播放器类App
上榜理由:3K个star,完全按照材料设计规范,提供十几种播放特性,而且还提供App的通用设置能力,这一点做的同样优秀,对于志在提升开发技术的同学值得一试
github https://github.com/naman14/Timber
使用:
clone源码是一个好习惯
14.remusic
一句话介绍:仿网易云音乐Android版App
上榜理由:学习完Timer,是否还不太满足你的胃口?remusic可以满足你的胃口——它甚至可以拿去直接当上线项目了!2.9K个star,基于Timber的设计(入手的前提是先搞懂Timber)值得入手;有一个问题:如果由你重构,你会如何做呢?
github https://github.com/aa112901/remusic
使用:
clone项目
15.Douya
一句话介绍:开源豆瓣客户端
上榜理由:一款功能全面、架构设计不俗的开源APP;仅仅是对豆瓣APP设计思路不满而进行的重构项目,可见作者对产品的痴迷和热爱,2.9K个star,证明该项目并不是头脑发热一时兴起的作品,如果每一个idea都能实现,那我们的世界将会多么美妙!
github https://github.com/DreaminginCodeZH/Douya
使用:
clone项目到本地
16.BookReader
一句话介绍:开源小说阅读器
上榜理由:2.7K个star,榜单里第一款阅读器APP,具有很高的学习价值(针对有兴趣往阅读工具类方向发展的同学)
github https://github.com/JustWayward/BookReader
使用:
clone到本地
17.bilibili-android-client
一句话介绍:高仿bilibili的Android客户端
上榜理由:2.5K个star,榜单里第一款视频直播开源App;适合对视频直播、社区互动感兴趣的同学;bilibili-android-client里使用了很多大型框架,此项目并不适合基础薄弱的同学,不要灰心,学习页面的布局设计也是值得的!
github https://github.com/HotBitmapGG/bilibili-android-client
使用:clone到本地
18.AndroidChromium
一句话介绍:Android版chrome浏览器
上榜理由:正如作者宣称的那样:
谷歌浏览器安卓版源码项目
世界级的安卓架构
理清本项目业务逻辑完全可以胜任国内一线公司工程师
对于志在梳理浏览器框架的你,值得拥有
github https://github.com/JackyAndroid/AndroidChromium
使用:
clone源码到本地
四.开发框架:
(排名无先后、只按类型划分)
1.libgdx
一句话介绍:一款跨平台的android端游戏开发框架
上榜理由:android端开发框架类第一名,11.7K的star量,游戏框架是它的专属标签,更重要的是它是跨平台的
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
使用:
compile 'org.xutils:xutils:3.5.0'
3.android-common
一句话介绍: 一款android快速开发框架
上榜理由:滴滴资深级Android工程师出品,历经多年开发者的检验,以4.3K屹立于快速开发框架榜第三名,该框架提供了图片缓存、Http缓存、DropDownListView、下载模块、开发常用工具类等,作为上古时期程序员最早的总结性开发框架,它是一代人智慧的结晶,值得我们为作者Trinea鼓掌喝彩
github https://github.com/Trinea/android-common
使用:
clone代码到本地
4.Vitamio
一句话介绍:一款支持跨平台的Android多媒体开发框架
上榜理由:如果之前提到的exoplayer不能满足你开发多媒体的需求,那我保证vitamio值得你一试
github https://github.com/yixia/VitamioBundle
使用:
clone源码到本地
5.Weex
一句话介绍:移动端跨平台开发的解决方案
上榜理由:14.4K个star,有成熟应用案例的企业级混合开发框架,阿里巴巴出品,为什么不试试呢?
github https://github.com/alibaba/weex
6.cordova-android(Hybrid 开发框架、WebApp开发框架)
一句话介绍:跨平台的开发框架
上榜理由:cordova有足够的能力完成混合开发、WebApp开发的需求:不论你是Web开发者,或者是Native开发者,使用cordova都可以作出跨平台的App
github https://github.com/apache/cordova-android
7.react-native
一句话介绍:一款以javascript的语言来操作多个系统语言(Ios、Android)的框架
上榜理由:很难讲react-native属于什么类别,它适合前端工程师开发移动端App,也适合Native开发者进行跨平台的开发,但对于Navitve开发者来说陡峭的学习曲线会吓走一大批“框架爱好者”;前端界有一句名言:Web代表着未来,Native代表着现在,而我们处在现在与未来的道路上;49K个star,似乎让我们离未来更进一步
github https://github.com/facebook/react-native
五.其他:
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的,但我们处在当下通往未来的道路上——学习未来的编程语言,提升自己的工作效率,早点下班打豆豆,何乐而不为?
github:https://github.com/JetBrains/kotlin
使用:
http://kotlinlang.org/docs/reference/ 提供了 api-android用例-书籍等资源
六.书籍类项目
(排序无先后)
1.Android developer中国官网培训课程
一句话介绍:符合中国国情的Google开发者官网的子产品——Android开发者官网
上榜理由:这里有培训课程、API用例课程、Sample用例、依赖库介绍、AndroidStudio官网...等等一系列公开免费的课程,尽管大部分内容还是英文讲解,可是你肯靠着英语词典一篇一篇啃完,相信我,你的Android知识水平将秒杀国内市面上大部分的Android书籍
2.android-architecture
一句话介绍:google提供的Android当下各种基本框架
上榜理由:看完它,mvp,mvvm都将入切瓜砍菜,秋风扫落叶一般...
github https://github.com/googlesamples/android-architecture
3.andorid-open-project
一句话介绍:囊括Android几乎所有的开源项目的导航类目录
上榜理由:23k个star的导航类目录,与其盛名不符的是,该项目的导航、浏览阅读体验做的非常差,建议消遣之余阅读;推荐理由——中国人做的最全的Android 开源项目导航目录
github https://github.com/Trinea/android-open-project
4.awesome-android-ui
一句话介绍:Android的开源项目目录
上榜理由:国外的一款导航目录,23k个star
github https://github.com/wasabeef/awesome-android-ui
看完本文有收获?请分享给更多人
更多学习资料点击下面的“阅读原文”获取
Java和Android架构
以上是关于Android史上第一震撼榜单—2017年Android百大框架排行榜,附完整项目的主要内容,如果未能解决你的问题,请参考以下文章
Q新闻|Swift开源新消息;苹果史上第二款Android App于 Google Play 上架……