>Github 地址 https://github.com/ShaunSheep/Android_100_TOP-Projects
一. 榜单介绍
排行榜包括四大类:
单一框架: 仅提供路由网络层 UI 层通信层或其他单一功能的框架
混合开发框架: 提供开发 hybrid apph5 与 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 子标题榜首, 第一当之无愧
官网地址 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 子标题第二名大型公司比如淘宝也封装的是 okhttpRetrofit2.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
使用:
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
使用:
下载地址 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 包
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
使用:
- 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 的优点并不仅限于此, 更多优雅的实现, 可以去官网查阅!
github https://github.com/ReactiveX/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 使用过它, 这些都可以在软件的开源许可上看到!
github https://github.com/jfeinstein10/SlidingMenu
作者 Jeremy Feinstein
使用:
在 gihub 上 fork 源码, 集成进项目中
15.PhotoView
一句话介绍: 一款 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);
16.material-dialogs
一句话介绍: 一款自定义 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
- }
- 17.droid-async-http
一句话介绍: 一款基于 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
- }
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
使用:
- compile com.alibaba:fastjson:1.1.58.android
- 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
使用:
down 源码, 修改学习
21.tinker
一句话介绍: 它是微信官网的 Android 热补丁解决方案
上榜理由: 9.1k 个 star, 微信在用的热补丁方案, 心动不如行动
官网地址 http://www.tinkerpatch.com/Docs/intro
github https://github.com/Tencent/tinker
作者: Tencent
22.ViewPagerIndicator
一句话介绍: 一款基于 ViewPager 的页面指示器开源框架
上榜理由: 上古神器, 尽管已经五年未更新了, 但你仍然可以在淘宝等 app 中看到它的使用场景, 8.9K 的 star 量让它不愠不火的在矗立在榜单里
官网地址 http://viewpagerindicator.com/
github https://github.com/JakeWharton/ViewPagerIndicator
作者: JakeWharton
使用:
下载 地址 https://github.com/JakeWharton/Android-ViewPagerIndicator/zipball/master
23.Android-CleanArchitecture
一句话介绍: 一个讲解设计框架的 demo
上榜理由: 它不是框架, 你可以把它当作一本书, 它将教会你如何设计简洁的架构, 工程里有一个 sample app, 配合图文讲解, 你将对 Android 客户端的架构有更深一层的认识 8.8k 的 star 数量, 证明了它是一本好书哟
github https://github.com/android10/Android-CleanArchitecture
作者: Fernando Cejas
24..Android-PullToRefresh
一句话介绍: 一款为普通视图提供刷新 UI 的视图框架
上榜理由: 8.2K 的 star 数量使它位居刷新类 UI 框架榜首, 强大的兼容能力, 该框架支持 ListView,GrdiView,WebViewScrollView,ViewPager 等众多 View 增加刷新的能力, 如果你有增加上拉加载, 下拉加载的需求, 你应该考虑它了!
github https://github.com/chrisbanes/Android-PullToRefresh
作者: Chris Banes
使用:
github fork 源码, 集成到项目中
25.flexbox-layout
一句话介绍: 一款弹性伸缩布局
上榜理由: 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
- }
- 26.AndroidSwipeLayout
一句话介绍: 非常强大滑动式布局
上榜理由: 滑动删除是国产 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"
- }
或下载
- AndroidSwipeLayout-v1.1.8.jar
- 27.realm-java
一句话介绍: 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/
28.greenDAO
一句话介绍: 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
- }
29.stetho
一句话介绍: 一款提供在 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
- 30.BaseRecyclerViewAdapterHelper
一句话介绍: 强大流畅的 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
- }
31.AndroidViewAnimations
一句话介绍: 一款提供可爱动画集合的框架
上榜理由: 正如作者所说, 它囊括了开发需求过程中所有的动画效果, 集成进了这个简洁可爱的动画框架 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));
- 32. MaterialDrawer
一句话介绍: 强大的塑料风格的抽屉框架
上榜理由: 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();
- 33.Android-ObservableScrollView
一句话介绍: 一款让视图滑动更具有视觉效果的滑动式框架
上榜理由: 7.5K 的 star 数量, 证明了它曾经的价值, github 上提供了 12 种滑动效果, 你可以用它弥补其他框架的不足, 提升你的 App 体验!
github https://github.com/ksoichiro/Android-ObservableScrollView
作者: Soichiro Kashima
使用:
- compile com.github.ksoichiro:android-observablescrollview
- 34.CircleImageView
一句话介绍: 圆角 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"/>
35.logger
一句话介绍: 一款让 log 日志优雅显示的框架
上榜理由: logger 作为调试框架, 并未给出很强大的能力, 它最大的亮点是优雅的输出 log 信息, 并且支持多种格式: 线程 JsonXmlListMap 等, 如果你整日沉迷于汪洋大海般的 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);
- 36.agera
一句话介绍: 一款服务于 Android 平台的响应式编程框架
上榜理由: google 专门推出一套响应式编程框架服务于 Android 开发者, 相比于之响应式编程框架榜首的 RxJava RxAndroid, 它更轻量, 两者最大的不同点在于 agera 基于 push eventpull 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
- 37.BottmBar
一句话介绍: 一款底部导航栏视图框架
上榜理由: 底部栏里的王者框架, 6.3K 的 star 数量, 证明了它的优秀, 完全遵循材料设计规范, 上手非常方便如果说缺点, 无法设置 icon 与 titile 的间距, 无法自定义视图的大小等, 但这些都可以通过修改源代码解决, 笔者献丑也修改了一套符合国内开发者的底部导航框架, 即将开源
github https://github.com/roughike/BottomBar
作者: Iiro Krankka
使用:
- compile com.roughike:bottom-bar:2.3.1
- 38.Calligraphy
一句话介绍: 一款自定义字体框架
上榜理由: 如果你还在为一键修改 App 内所有字体样式而烦恼, 6.3K 个 star 的 Calligraphy 就值得你拥有, 它可以同时修改整个整个项目的 Textview 字体, 也可以单独 设置某个 Textview 的字体, 还在等什么, 快来试试吧!
github https://github.com/chrisjenx/Calligraphy
作者: Christopher Jenkins
使用:
- dependencies {
- compile uk.co.chrisjenx:calligraphy:2.3.0
- }
- 39.AndroidSlidingUpPanel
一句话介绍: 可拖动的滑动面板视图框架
上榜理由: 如果你的项目需要一个可拖拽的滑动式面板(展示某些详情信息, 播放音乐, 地图信息等), 那么推荐你使用它, 6.3k 个 star, 来自创业公司 umano 的作品, 证明它是用心推出的杰作
github https://github.com/umano/AndroidSlidingUpPanel
作者: umano
使用:
- dependencies {
- repositories {
- mavenCentral()
- }
- compile com.sothree.slidinguppanel:library:3.3.1
- }
40.AppIntro
一句话介绍: 一款提供快速制作欢迎页的框架
上榜理由: 笔者从未把打算把欢迎页框架纳入排行榜当中, 作为国内开发者, 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
- }
41.recyclerview-animators
一句话介绍: 一款为 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
- }
- 42.dagger
一句话介绍: 一款通过依赖注入降低程序间耦合的开发框架
上榜理由: 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 youre using classes in dagger.android youll 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
43.Android-Bootstarp
一句话介绍: 一款提供在 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}
- }
- 44.RxBinding
一句话介绍: 一款提供 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
45.ListViewAnimations
一句话介绍: 一款为 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
- }
46.UItimateRecyclerView
一句话介绍: 一款提供刷新加载更多动画特效等额外能力的 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
- }
47.uCrop
一句话介绍: 一款优雅的图片裁剪框架
上榜理由: 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
48.RxJava-Android-Samples
一句话介绍: 一款介绍 RxJava 使用场景的 app
上榜理由: 榜单出现的第一个仅仅为告诉你如何使用另一个项目的开源项目, 它可以说是 RxJava 的用例, 你想得到的想不到的 RxJava 用法这里都有, 这就是为什么它以 5.2k 个 star 矗立在这份榜单里的原因遗憾自己没有创作这么一个受人追捧的 demo? 赶快动手写个其他的 XX 项目用例吧
github https://github.com/kaushikgopal/RxJava-Android-Samples
作者: kaushikgopal
使用:
clone 到本地慢慢探索吧
49.AndroidAutoLayout
一句话介绍: 一个提供适配能力的框架
上榜理由: 5.2K 个 star, 鸿洋老弟的作品, 适合小项目的开发团队, 拿到设计 MM 的 px 像素设计稿是不是很头疼捏? 这个框架一键式搞定你的问题, 它有很多的不足, 但在追求完美适配的路上, 你值得探索和了解它! 笔者并不推荐把它应用到已经成熟运行的项目中, 毕竟市面上已经有太多的适配解决方案了, 适配问题就像是个大杂烩, 想炒一盘好菜, 就得备好各种佐料(适配小方案), 当你把各种小佐料用的炉火纯青的时候, 你离美食大厨就不远了
github https://github.com/hongyangAndroid/AndroidAutoLayout
作者: 张鸿洋
使用:
- dependencies {
- compile com.zhy:autolayout:1.4.5
- }
- 50.EffectiveAndroidUI
一句话介绍: 一款讲解高效展示 UI 的教学型 App
上榜理由: 编程新手很难对 MVC MVP,MVVM 等模式有深刻的理解, 如果有一个示例型 app, 那对初学者会有很大裨益, 笔者在遇到它时也是相见恨晚 4.8K 个 star, 证明了它经受了广大开发者的考验与审视, 其中 Effective UI 的编程思想更是与 Android 官方课程里的 Effective UI 课程不谋而合, 并且, 此项目还包含了 fragmentdagger 主题样式 Butterknife 等众多小知识点, 作为编程初学者的学习用例再适合不过了
github https://github.com/pedrovgs/EffectiveAndroidUI
作者: Pedro Vicente
使用:
clone 项目到本地
51.Luban
一句话介绍: 最接近微信的图片压缩框架
上榜理由: 好的思路总是可以让你大放异彩, Luban 仅以图片压缩单一功能, 俘获了 4.8K 个 star, 证明了它在图片压缩上的造诣, 它可能不是最优秀的, 但它是让你我最接近伟大的项目
github https://github.com/Curzibn/Luban
作者: Curzibn
使用:
- compile top.zibin:Luban:1.1.1
- 52.DroidPlugin
一句话介绍: 一款热门的插件化开发框架
上榜理由: 4.8K 个 star, 插件化框架榜单第一名,,360 团队出品, 框架质量有保证, 有成功案例 360 手机助手, 并且持续维护着
github https://github.com/DroidPluginTeam/DroidPlugin/blob/master/readme_cn.md
作者: Andy Zhang
使用:
clone 项目到本地
53. otto
一句话介绍: 一款老旧且强大的事件总线框架
上榜理由: 4.8K 个 star, 是 square 团队早先推出的事件响应型框架, 淘宝 app 的事件驱动也是基于此框架封装的, 如今 square 已经建议开发者采用 RxJava RxAndroid 来代替 otto 了但 otto 仍有与 EventBus 横向对比的价值, 纵向来说, otto 与 square 自家开发的 Rx 系列框架的差异同样值得开发者们去探究
github https://github.com/square/otto
作者: square
使用:
- repositories {
- mavenCentral()
- maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
- }
- compile com.michaelpardo:activeandroid:3.1.0-SNAPSHOT
- 54.u2020
一句话介绍: 一款提供 Dagger 的高级教学示例的 app(额, 名字是有点绕)
上榜理由: 4.7K 个 star,JakeWharton 牵头开发的教学类 app, 教你使用 Dagger 在其他高级框架的用法, 它展示了 Dagger 与 ButterKnifeRetrofitMoshiPicassoOkhttpRxJavaTimberMadgeLeakCanar 等众多优秀框架结合起来的高级用法, 你也可以借鉴到自己的项目当中
github https://github.com/JakeWharton/u2020
作者: JakeWharton
55.buck
一句话介绍: buck 是一个快速构建系统
上榜理由: facebook+google 出身的作者, 对构建代码的出色理解, 加上大型团队的维护, 以及增量更新时的快速高效, 让 buck 成为了微信 Android 团队构建项目的首选, 构建大型项目时, 它比 gradle 更快, 然而中小公司并不适合此框架, 但作为立志在框架设计领域有一番作为的人们, 欢迎来一探究竟
官网地址: https://buckbuild.com/
github https://github.com/facebook/buck
作者: facebook
使用:
- linux or mac system +docs
- 56.PermissionsDispatcher
一句话介绍: 一款基于注解的提供解决运行时危险权限方案的框架
上榜理由: 自 Android6.0 Google 提出危险权限一词起, 用户安全性被提到一定的高度, 一些运行时对用户较为危险的权限将不再自动被开发者获取, 需要经过用户批准, 开发者才可以继续使用该权限, 如果你曾经被权限问题搞的抓耳挠腮, 建议你试试这个框架, 它足够解决你的问题
官网地址: https://hotchemi.github.io/PermissionsDispatcher/
github https://github.com/hotchemi/PermissionsDispatcher
作者: Shintaro Katafuchi
使用:
- 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/ }
- }
57.android-gif-drawable
一句话介绍: 一款提供展示 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.+
- }
58.Apktool
一句话介绍: 一款反编译 apk 的工具
上榜理由: 开源的反编译工具, 对于志在了解 apk 逆向破解的诸位, 值得拥有, 4.5k 个 star, 逆向破解 apk 神器!
github https://github.com/iBotPeaches/Apktool
官网地址: https://ibotpeaches.github.io/Apktool/
作者: Connor Tumbleson
59.dynamic-load-apk
一句话介绍: 插件化开发框架
上榜理由: 4.5k 个 star, 位于插件化开发框架第二名(第一名来自 360 团队), 全面的文档介绍让你很快就能上手插件化开发, 如果你喜欢大段文字讲解, 那么这个项目一定适合你
github:https://github.com/singwhatiwanna/dynamic-load-apk
作者: singwhatiwanna
使用:
github 上的文档配合作者博客更配哟
60.atlas
一句话介绍: 淘宝推出的组件化开发框架
上榜理由: 淘宝团队所出的精品, atlas 框架提供了解耦组件动态的开发能力, 4.5k 个 star 让他位列组件化开发框架第一名
github https://github.com/alibaba/atlas
作者: alibaba
61.volley
一句话介绍: google 推荐使用的 Android 端网络请求框架
上榜理由: 4.4k 个 star, 并不是他不够优秀, 而是使用 volley 已经渐渐成为广大开发者的习惯
github https://github.com/google/volley(新版 volley 地址)
作者: google
使用:
clone 源码到本地
62.androidmvp
一句话介绍: 一款展示 Android 端 Mvp 设计的 demo
上榜理由: 榜单里为数不多仅凭展示某种设计模式就获得 4.2K 个 star 的项目, 如果你有尝试 mvp 的打算, androidmvp 可以作为你的前哨站
github https://github.com/antoniolg/androidmvp
作者: Antonio Leiva
使用:
clone 到本地
63.SwipeBackLayout
一句话介绍: 一款可以让你通过滑动手势关闭页面的的框架
上榜理由: 仿微信滑动退出当前聊天界面的效果, 提供了 activity 的滑动关闭能力, 通过这种思路, 实现 fragment 的滑动关闭轻而易举; 笔者坚持建议诸位 clone 源码到本地探索一番; 4.2k 个 star 证明很多人都喜爱它
github https://github.com/ikew0ng/SwipeBackLayout
作者: ike_w0ng
使用:
- compile me.imid.swipebacklayout.lib:library:1.0.0
- 64.FlycoTabLayout
一句话介绍: 一款可以让作出多种多样指示器效果的框架
上榜理由: 尽管我们没有理由为了给 app 加入页面指示器功能就集成 2.5M 的依赖库, 但是作为了解 viewpager 或 swip views 的指示器设计原理的优秀框架, 你值得打开它试试, 笔者建议单独拆分所需源码, 加入到自己的项目中去 4.1K 个 star, 二次开发的作品, 仍然推荐!
github https://github.com/H07000223/FlycoTabLayout
作者: Flyco
65.android-testing
一句话介绍: 一款展示四大自动化测试框架用例的 demo(Espresso,UiAutomator,AndroidJunitRunner,JUnit4)
上榜理由: 学习者经常会陷入似懂非懂的境地, 如果你有幸学习过 Android Testing Support Library site 的课程, 那么你一定对 android 的四大测试框架迫不及待, 这款 demo 非常适合你, 快来学习这个 4.1k 个 star 的明星项目吧
github https://github.com/googlesamples/android-testing
作者: googlesampes 团队
66.FileDownloader
一句话介绍: 一款高效稳定灵活易用的文件下载引擎
上榜理由: 4.1k 证明了它有多受人喜爱, 文件下载看似简单的背后暗藏了多少的坑坑点点, 我知道你有能力自己实现文件下载功能, 但优秀的框架可以提升你的设计编码能力, 这款框架可以提升你的实力!
github https://github.com/lingochamp/FileDownloader
作者: LingoChamp 团队
使用:
- dependencies {
- compile com.liulishuo.filedownloader:library:1.5.5
- }
- 67.JieCaoVideoPlayer
一句话介绍: 基于 MediaPlayer apiVideoView 的多媒体播放框架
上榜理由: 榜单里第三款多媒体播放框架, 它以灵巧的身姿挤入本榜单, 精巧是它最大的优点, 不到 100k, 拥有它, 你就可以快速开发类似今日头条那样的视频播放效果, 4k 个 star, 证明它值得一试
github https://github.com/lipangit/JieCaoVideoPlayer
作者: Nathen
使用:
- compile fm.jiecao:jiecaovideoplayer:5.5.4
- 68.glide-transformations
一句话介绍: 为众多著名图片加载框架提供图片形状变幻能力的框架
上榜理由: 在榜单靠前的部分已经介绍过 glide,Picasso,Fresco 等图片加载框架, glide-transformations 就是一款为他们提供图片变形能力的框架, 使用起来非常简单, 因此受到了大家的喜爱, github 上有 3.8K 个 star
github https://github.com/wasabeef/glide-transformations
作者: Daichi Furiya
使用:
- repositories {
- 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));
- 69.android-gpuimage
一句话介绍: 一款基于 OpenGL 的图片渲染引擎
上榜理由: 放下 GpuImage 在 IOS 平台的荣誉不谈, Android 版的 android-gpuimage 就提供多达 70 多种图片渲染效果, 你还在好奇美图秀秀是如何实现图片变幻的? 有了它, 一切都不是问题如果你是美图工具类的工程师, 此框架的建设思路也会对你大有裨益笔者也是通过 android-gpuimage 仿造了美图 App 并俘获女友芳心的, 再次为它的实力点赞 ios 版 + android 版一共 19k 个 star, 已经证明了它的实力, 还在等什么呢?
github:https://github.com/CyberAgent/android-gpuimage
作者: CyberAgent 团队
使用:
- repositories {
- jcenter()
- }
- dependencies {
- compile jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1
- }
更多的改造方法, 还需要阅读 Ios 的编程文档, 对于有毅力的小伙伴强力推荐!
70.RxPermissions
一句话介绍: 一款基于 RxJava 完成权限申请的框架
上榜理由: 榜单里第二款提供权服务的框架, 基于 RxJava 的设计, 让你可以专心写业务, 3.7K 个 star 已经证明了它的实用价值
github https://github.com/tbruyelle/RxPermissions
作者: Thomas Bruyelle
使用:
- 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
- }
- });
71.freeline
一句话介绍: 一款动态替换的编译构建框架
上榜理由: 继 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.
72.RxLifecycle
一句话介绍: 一款提供在使用 RxJava 过程中管理 Activity 和 Fragment 生命周期能力的框架
上榜理由: 在榜单靠前的部分, 你已经了解 RxJava 和 RxAndroid 的强大之处, 但部分粗心的开发者因为没有及时取消订阅而产生严重的内存泄漏, 不要担心, RxLifecycle 可以为你解决难题, 在 gtihub 上拥有 3.7K 个 star, 国内知名软件知乎和淘宝也都在使用它
github https://github.com/trello/RxLifecycle
作者: trello 团队
使用:
clone 源码到本地
73.classyshark
一句话介绍: 一款可执行文件浏览器
上榜理由: 榜单里继 Apktool 之后第二款 apk 逆向工具, 如果你喜欢优雅的图形数据展示, 那么你一定不能错过他, classyshark 可以将破解的结果以图形化展示用户, 方便分析, 3.7K 个 star, 让它暂列 apk 逆向工具第二位!
github https://github.com/google/android-classyshark
作者: google
使用:
下载 JAR
74.acra
一句话介绍: 一款提供记录 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 源码到本地更方便了
75.DiskLruCache
一句话介绍: 一款提供磁盘文件缓存管理能力的框架
上榜理由: 3.7k 个 star 并不足以说明 DiskLruCache 的优秀, 仅仅以管理磁盘文件能力单独拎出来成为一个框架, 作者需要很大的勇气, 很幸运, 作者做到了, 并且也成为 Google 官网提倡的缓存 ; 如还记得上次做一键清除缓存查看缓存文件大小功能是什么时候吗? DiskLruCache 一句话就可以搞定!
github https://github.com/JakeWharton/DiskLruCache
作者: JakeWharton
使用:
compile com.jakewharton:disklrucache:2.0.2
或者下载 latest .jar
76.dexposed
一句话介绍: 一款支撑阿里大部分 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
- }
- 77.Litho
一句话介绍: 一款提供高效构建 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
- }
78.mosby
一句话介绍: 一款提供构建 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/" }
- }
79.AndResGuard
一句话介绍: 一款提供资源文件路径混淆 的工具
上榜理由: 如果你是个对 APK 大小很敏感的人, 那么 AndResGuard 一定适合你, 它的原理类似 Java Proguard, 但是只针对资源他会将原本冗长的资源路径变短, 例如将 res/drawable/wechat 变为
r/d/a,3.4K 个 star, 证明了在优化 APK 道路上, 你不是一个人在战斗!
github https://github.com/shwenzhang/AndResGuard
作者: wechat team
使用:
clone 项目到本地, 其实也就是个三两句话的文档
80.StatusBarUtil
一句话介绍: 一款提供设置沉浸式状态栏样式能力的框架
上榜理由: 设计师 MM 总是抱怨系统状态栏不优雅? 那就给她一个完美的沉浸式状态栏 StatusBarUtil 可以随心所欲的设置状态栏样式, 3.3K 个 star, 足以说明它有多受设计 MM 的喜爱
github https://github.com/laobie/StatusBarUtil
作者: Jaeger
使用:
- compile com.jaeger.statusbarutil:library:1.4.0
- 81.robolectric
一句话介绍: 一款不依赖于 Android 设备的单元测试框架,
上榜理由: sample 中列举了如何对 Android 四大组件和常见功能测试的用例, 3.2K 个 star, 值得充满好奇心的人尝试
官网地址: http://robolectric.org/
github https://github.com/robolectric/robolectric
作者: robolectric
使用:
- testCompile "org.robolectric:robolectric:3.3.2"
- 82.Fragmentation
一句话介绍: 一款提供管理 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
- 83.Small
一句话介绍: 轻巧的插件化框架
上榜理由: 作为插件框架榜单的新成员, 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
- }
84.JsBridge
一句话介绍: 一款提供 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
- }
85.richeditor-android
一句话介绍: 一款强大的富文本编辑框架
上榜理由: 2.8k 个 star, 榜单里第一个为 TextView 提供扩展能力的框架, 你暂时不需要它, 但不能不知道它
github https://github.com/wasabeef/richeditor-android
作者: Daichi Furiya
使用:
- repositories {
- jcenter()
- }
- dependencies {
- compile jp.wasabeef:richeditor-android:1.2.2
- }
86.Transitions-Everywhere
一句话介绍: 一款教你正确使用 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"
- }
- 87.android-viewbadger
一句话介绍: 能够快速的为 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();
- 88.AndroidWiFiADB
一句话介绍: 一款不用数据线也可以让你调试手机设备 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
- 889.emojicon
一句话介绍: 一款提供在 TextViewEdiText 展示表情包能力的框架
上榜理由: 2.7k 个 star,, 榜单第二款增强 TextView 显示能力的框架, 这款专为表情包设计, 如果你曾经好奇微信 QQ 的表情显示是如何做到的? 这款框架一定能满足你的求知欲
90.packer-ng-plugin
一句话介绍: 一款打爆工具插件
上榜利用: 笔者尽力维护榜单涉及范围的全面性, 因此引入此插件项目项目号称完成 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
- }
- }
- }
91.android-priority-jobqueue
一句话介绍: 一款提供后台任务管理能力的框架
上榜理由: 如果你是个志在深入研究多线程操作的开发者, 这个项目一定不要错过, 不论是 Activity 重新加载 Service 使用线程池时的任务优先级和并发问题, 都不要担心, Job Manage 会照顾优先级, 持久性, 负载平衡, 延迟, 网络控制, 分组, 2.4K 个 star, 优秀的多线程管理能力, 况且它依赖的第三方框架很少, 值得你一试
github https://github.com/yigit/android-priority-jobqueue
作者: Yigit Boyar
92.Android-Debug-Database
一句话介绍: 一款提供测试 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
- 93.conceal
一句话介绍: 一款 facebook 提供的加密本地大文件的框架
上榜理由: 如果还在担心 App 内的图片的隐私问题, 这款 facebook 提供的文件加密框架足以解决你的问题, facebook 客户端的图片和数据都是使用 conceal 加密的
官网地址: http://facebook.github.io/conceal/
github https://github.com/facebook/conceal
作者; facebook
使用:
clone 项目到本地 / 官网下载 jar
94.ARouter
一句话介绍: 一款提供服务页面跳转路由的框架
上榜理由: 正如作者宣称的那样, 该框架提供: 从外部 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
95.MagicaSakura
一句话介绍: 一款提供多主题切换能力的框架
上榜理由: 框架所提供的能力, 一直是本榜单所看重的, 这款由 bilibili 提供的多主题框架, 作为榜单所涉及范围能补充, 1.9 个 star, 感谢 bilibili 团队所作出的贡献!
github https://github.com/Bilibili/MagicaSakura
作者: Bilibili
使用:
- compile com.bilibili:magicasakura:0.1.6@aar
- 96.CustomActivityOnCrash
一句话介绍: 一款当 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 apps launch activity)
- .errorActivity(YourCustomErrorActivity.class) //default: null (default error activity)
- .eventListener(new YourCustomEventListener()) //default: null
- .apply();
- }
97.XhsEmoticonsKeyboard
一句话介绍: 最开心的开源表情解决方案
上榜理由: 如果你还在发愁如何为你的 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
- }
三. 完整项目
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 的语言来操作多个系统语言 (IosAndroid) 的框架
上榜理由: 很难讲 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
笔者寄语:
今年我们的权威框架之旅就结束了, 是否感觉到意犹未尽? 那太好了, 欢迎各位读者加入 Android 百大框架排行榜的讨论之中, 可以来文章原文的底部评论留言, 参与讨论:
1. 我认为 XX 框架应该上榜, 理由 XX
2. 我发现文章有几处错误, 在 XX 部分
3. 对于笔者的某些观点我不能苟同, 比如 XX, 我认为 XX
...
笔者希望收到有理有据的评论和未上榜的框架推荐, 届时笔者会抽取一部分参与评论的小伙伴将, 发放共计 100RMB 的物质奖励!
2017-06-19 北京
来源: http://www.bubuko.com/infodetail-2514668.html