收集总结 Android 项目中值得推荐的优秀开源项目,将收集到的开源项目分类汇总到表格中,并在后面对项目进行介绍。
表格中的数据会定期进行更新,希望大家能遇到自己喜欢的优秀项目,学习或者使用。同时,也欢迎大家对不足之处进行指正和改进,欢迎大家提供更有帮助的开源项目和其他信息。
有那么多漂亮好用的轮子,总是忍不住好好地总结分类收藏一番。 而收藏,当然是为了在可能需要的时候能够迅速果断地找到一个合适我们项目的轮子。
分类 | 二级分类 | 框架名称 | 简介 | Star 数 | 最近 更新 |
---|---|---|---|---|---|
UI | 刷新 | Android-PullToRefresh | 比较早的一款下拉刷新框架 | 8.6k | 5年 |
UI | 刷新 | SmartRefreshLayout | 智能下拉刷新框架[详细] | 11k | 8天 |
UI | 刷新 | android-Ultra-Pull-To-Refresh | 下拉刷新框架 | 9.0k | 2年 |
UI | 刷新 | BeautifulRefreshLayout | 众多优秀的下拉刷新汇总 | 2.0k | 2年 |
UI | 图表 | MPAndroidChart | 统计图表库 | 22k | 1天 |
UI | 图表 | hellocharts-android | 统计图表库 | 5.7k | 1月 |
UI | 图表 | smartTable | 自动生成表格框架[详细] | 1.8k | 1月 |
UI | 图表 | AdaptiveTableLayout | 可阅读与编辑CSV文件的库 | 1.5k | 9月 |
UI | 菜单 | SlidingMenu | 比较早的一款侧滑菜单 | 10k | 4年 |
UI | 图表 | TableView | 绘制表格 | 1.5k | 12天 |
UI | 菜单 | MaterialDrawer | 侧滑菜单 | 9.2k | 1月 |
UI | 菜单 | SwipeBackLayout | 类似QQ侧滑菜单 | 5.0k | 16天 |
UI | 图片 | PhotoView | 大图展示 | 13k | 4月 |
UI | 图片 | subsampling-scale-image-view | 大图展示 | 4.0k | 1月 |
UI | 图片 | CircleImageView | 圆形图片 | 9.6k | 1月 |
UI | 图片 | uCrop | 图片剪裁 | 7.0k | 3天 |
UI | 图片 | android-gif-drawable | Gif 加载 | 6.0k | 11天 |
UI | 图片 | Matisse | 图片\视频选择库 | 6.8k | 7天 |
UI | 文本 | richeditor-android | 富文本编辑器 | 3.7k | 1年 |
UI | 弹窗 | material-dialogs | 可定制化的 Dialog API | 13k | 20天 |
UI | 弹窗 | Toasty | 定制不一样的 Toast | 4.1k | 19天 |
UI | 弹窗 | DialogUtil | Dialog 工具 | 0.7k | 23天 |
UI | 弹窗 | android-adDialog | 广告弹窗 | 2.4k | 1年 |
UI | 导航 | ViewPagerIndicator | ViewPager 指示器 | 9.7k | 5年 |
UI | 导航 | BottomBar | 底部导航栏 | 7.8k | 5月 |
UI | 导航 | FlycoTabLayout | TabLayout 库 | 6.3k | 1年 |
UI | 布局 | flexbox-layout | Android 弹性 / 流式布局 | 11k | 1月 |
UI | 布局 | AndroidAutoLayout | 屏幕适配布局 | 6.0k | 11月 |
UI | 布局 | FlowLayout | 流式布局 | 3.7k | 1月 |
UI | 布局 | vlayout | 整套布局方案和组件复用[详细] | 7.8k | 1月 |
UI | 滑动删除 | AndroidSwipeLayout | 滑动删除 | 9.9k | 10月 |
UI | 滚动 | Android-ObservableScrollView | 监听可滚动 View 的滚动事件 | 8.7k | 2年 |
UI | 列表 | UltimateRecyclerView | 功能强大的 RecyclerView | 6.5k | 2月 |
UI | 选择器 | Android-PickerView | 仿 iOS 的选择控件 | 7.2k | 27天 |
UI | 选择器 | AndroidPicker | 安卓选择器类库 | 3.5k | 3月 |
UI | 下拉菜单 | DropDownMenu | 多条件筛选菜单 | 2.7k | 1年 |
UI | 轮播图 | banner | 广告图片轮播控件 | 5.8k | 4月 |
UI | 轮播图 | Android-ConvenientBanner | 通用的广告栏控件 | 3.5k | 2天 |
UI | WebView | AgentWeb | 高度封装的 WebView | 3.6k | 22天 |
UI | 高斯模糊 | 500px-android-blur | 高斯模糊控件 | 2.2k | 1年 |
UI | 高斯模糊 | BlurKit-Android | 高斯模糊控件 | 2.3k | 1年 |
UI | 角标 | android-viewbadger | 角标 / 徽章 | 2.9k | 5年 |
UI | 角标 | BGABadgeView-Android | 徽章控件 | 2.0k | 1月 |
UI | 其他 | AndroidSlidingUpPanel | 上拉面板 | 7.5k | 7月 |
UI | 其他 | AppIntro | 欢迎页 | 7.6k | 1月 |
UI | 其他 | Android-Bootstrap | UI框架 | 6.6k | 9月 |
UI | 其他 | emojicon | 表情文本 | 3.2k | 9月 |
UI | 其他 | RippleEffect | 水波纹效果 | 4.6k | 2年 |
UI | 其他 | InfiniteCycleViewPager | ViewPager | 4.7k | 8月 |
UI | 其他 | LoadingDrawable | 酷炫的加载动画 | 3.2k | 1年 |
UI | 其他 | QMUI_Android | 提高 UI 开发效率的 UI 库 | 4.8k | 8天 |
网络 | 框架 | retrofit | 网络框架 | 27k | 24天 |
网络 | 框架 | okhttp | 网络框架 | 26k | 14天 |
网络 | 框架 | volley | 网络框架 | 1.5k | 4天 |
网络 | 文件下载 | FileDownloader | 文件下载引擎 | 6.6k | 7天 |
网络 | 进度监听 | ProgressManager | okhttp 上传下载进度监听 | 1.5k | 13天 |
图片 | 框架 | glide | 图片框架 | 21k | 16天 |
图片 | 框架 | Android-Universal-Image-Loader | 图片框架 | 16k | 2年 |
图片 | 框架 | picasso | 图片框架 | 15k | 22天 |
图片 | 框架 | fresco | 图片框架 | 14k | 1天 |
图片 | 压缩 | Luban | 最接近朋友圈的图片压缩算法 | 7.5k | 1天 |
图片 | 转换 | glide-transformations | Glide 图像转换器 | 6.0k | 19天 |
图片 | 滤镜 | android-gpuimage | 图像滤镜框架 | 4.8k | 2年 |
图片 | 选择器 | Matisse | 图片视频选择器 | 6.8k | 7天 |
图片 | 选择器 | TakePhoto | 图片选择 / 剪裁 / 压缩 | 4.8k | 1月 |
图片 | 选择器 | PhotoPicker | 仿微信图片选择器 | 2.5k | 4月 |
图片 | 文字识别 | tess-two | Android 图片文字识别[详细] | 2.5k | 21天 |
视频 | 播放器 | JieCaoVideoPlayer | 节操视频播放器 | 6.7k | 3天 |
视频 | 播放器 | ijkplayer | Bilibili 开源播放器 | 18k | 3月 |
视频 | 播放器 | GSYVideoPlayer | 多功能视频播放器 | 5.8k | 2天 |
动画 | AE | lottie-android | 展示 AE 工具所作动画的框架 | 20k | 2天 |
动画 | 转场 | Material-Animations | 安卓转场动画演示 | 11k | 3月 |
动画 | View | AndroidViewAnimations | 安卓视图动画合集 | 9.3k | 9月 |
动画 | 多种 | animate | 多种动画效果 | 2.8k | 2年 |
动画 | 列表 | recyclerview-animators | RecyclerView 条目动画 | 7.8k | 3月 |
动画 | 列表 | spruce-android | 列表视图展现动画 | 2.6k | 3月 |
动画 | 粒子 | Grav | 粒子动画效果 | 2.2k | 1年 |
动画 | 爆炸 | ExplosionField | 爆裂动画效果 | 3.1k | 2年 |
动画 | 兼容 | Transitions-Everywhere | Transitions API 的兼容补丁 | 3.8k | 2月 |
异步 | 链式 | RxJava | 事件驱动的基于异步数据流的编程模式 | 32k | 2天 |
异步 | 链式 | RxAndroid | Android 中的 RxJava 绑定 | 15k | 2月 |
异步 | 链式 | agera | 谷歌开发的安卓链式编程框架 | 7.1k | 2月 |
数据库 | 轻量级 | realm-java | 轻量级数据库 | 9.5k | 11天 |
数据库 | 轻量级 | greenDAO | 轻量级数据库 | 9.9k | 24天 |
文件 | 选择器 | Android-FilePicker | 图片 / 文件选择器 | 1.4k | 27天 |
json | 解析 | gson | 谷歌官方 Json 库 | 12k | 2天 |
json | 解析 | fastjson | 阿里巴巴 Json 库 | 13k | 9天 |
字体 | 框架 | Calligraphy | 自定义字体库 | 7.6k | 1年 |
语言 | 汉字处理 | HanLP | 中文分词 、关键词提取等 | 6.9k | 7天 |
性能 | 卡顿 | AndroidPerformanceMonitor | 非侵入式性能监控组件[详细] | 4.0k | 8月 |
性能 | 卡顿 | BlockCanaryEx | UI 卡顿检测[详细] | 1.7k | 8月 |
性能 | 卡顿 | AndroidDevMetrics | 性能检测[详细] | 1.3k | 2月 |
性能 | 内存 | leakcanary | 检查内存泄漏工具 | 19k | 16天 |
性能 | 生命周期 | RxLifecycle | 使用 RxJava 管理生命周期 | 5.6k | 2月 |
性能 | 缓存 | DiskLruCache | 硬盘缓存工具 | 4.3k | 1年 |
性能 | UI框架 | litho | 高性能安卓 UI 的构建框架 | 4.9k | 1天 |
热修复 | 框架 | tinker | 微信热修复框架 | 11k | 1月 |
热修复 | 框架 | dexposed | 阿里热修复框架 | 3.8k | 2年 |
插件化 | 框架 | DroidPlugin | 360 插件化框架 | 5.6k | 8月 |
插件化 | 框架 | dynamic-load-apk | Apk动态加载框架 | 5.3k | 10月 |
插件化 | 框架 | atlas | 阿里插件化框架 | 6.0k | 5月 |
插件化 | 框架 | Small | 插件化框架 | 4.1k | 17天 |
工具 | 工具类 | AndroidUtilCode | 安卓开发者不得不收集的代码 | 17k | 3天 |
工具 | 工具类 | android-common | 不只是工具类的公共库 | 4.6k | 1年 |
工具 | 工具类 | android-common | 通用 / 辅助 / 工具类的集合 | 2.9k | 11月 |
工具 | 工具类 | Lazy | 常用工具类整理 | 1.6k | 7月 |
工具 | 列表 | BaseRecyclerViewAdapterHelper | RecyclerAdapter 框架 | 13k | 2天 |
工具 | 列表 | baseAdapter | Android 万能的 Adapter | 3.7k | 1年 |
工具 | 列表 | FanLayoutManager | 风扇扇叶旋转效果列表 | 1.7k | 9月 |
工具 | 列表 | CarouselLayoutManager | 传送带效果列表 | 1.5k | 1年 |
工具 | 列表 | ChipsLayoutManager | 流式布局列表 | 2.2k | 1年 |
工具 | 状态栏 | StatusBarUtil | 设置状态栏的工具库 | 5.3k | 15天 |
工具 | 状态栏 | SystemBarTint | 状态栏着色工具 | 4.8k | 3年 |
通信 | 事件 | EventBus | Android 事件总线 | 18k | 5月 |
键盘 | 表情 | XhsEmoticonsKeyboard | 表情键盘解决方案 | 2.3k | 1年 |
键盘 | 冲突 | JKeyboardPanelSwitch | 解决键盘面板冲突 | 2.8k | 3月 |
扫描 | 二维码 | zxing | 二维码扫描 | 18k | 17天 |
注解 | 框架 | androidannotations | 快速开发框架 | 10k | 5月 |
注解 | 绑定 | butterknife | 为 Android View 设计的绑定注解 | 21k | 25天 |
注解 | 注入 | dagger2 | Android 依赖注入框架 | 10k | 3天 |
权限 | 请求 | PermissionsDispatcher | 基于注解处理权限请求 | 7.2k | 12天 |
权限 | 请求 | RxPermissions | 基于 RxJava 处理权限请求 | 6.1k | 3月 |
响应式 | UI | RxBinding | 安卓 UI 响应式编程 | 7.4k | 1月 |
响应式 | 事件 | otto | 事件总线框架 | 5.0k | 17天 |
hybrid | 框架 | JsBridge | Android 与 JavaScript 互调桥梁 | 4.7k | 4月 |
hybrid | 框架 | VasSonic | 轻量级高性能的 hybrid 框架 | 7.7k | 3天 |
崩溃 | 报告 | acra | 崩溃信息收集框架 | 4.3k | 7天 |
崩溃 | 处理 | CustomActivityOnCrash | 崩溃处理 | 2.3k | 5月 |
崩溃 | 预防 | NullAway | 检测 NullPointerExceptions | 2.0k | 4天 |
框架 | MVP | mosby | MVP 框架 | 4.5k | 17天 |
框架 | 多主题 | MagicaSakura | Android 多主题框架 | 2.6k | 17天 |
架构 | Clean | Android-CleanArchitecture | 一种清晰的 Android 架构 | 11k | 2天 |
架构 | Fragment | Fragmentation | 多 Fragment 架构的解决方案 | 6.3k | 1月 |
构建 | 工具 | buck | 快速构建工具 | 5.7k | 1天 |
编译 | 工具 | freeline | 秒级编译方案 | 4.5k | 4月 |
混淆 | 工具 | AndResGuard | Android 资源混淆工具 | 4.6k | 3天 |
测试 | 单元测试 | robolectric | Android 单元测试框架 | 3.9k | 1天 |
测试 | 单元测试 | mockito | Android 单元测试框架 | 6.7k | 13天 |
测试 | 单元测试 | truth | 谷歌的断言和命题框架 | 1.4k | 2天 |
调试 | 框架 | stetho | Android 开发调试神器 | 9.6k | 2月 |
调试 | 日志 | logger | 简单实用漂亮的日志打印框架 | 9.0k | 1月 |
调试 | 数据库 | Android-Debug-Database | 调试手机中数据库 | 4.0k | 2月 |
调试 | 方法 | hugo | 方法调试工具 | 6.0k | 2年 |
反编译 | 工具 | Apktool | 反编译 APK 工具 | 6.1k | 8天 |
反编译 | 工具 | android-classyshark | APK 分析利器 | 4.8k | 25天 |
Demo | Rxjava | RxJava-Android-Samples | 学习 Android 中 Rxjava | 6.4k | 9月 |
Demo | Dagger | u2020 | Dagger 高级教学示例 APP | 5.4k | 5月 |
Demo | MVP | androidmvp | Android 端 MVP 设计 APP | 5.1k | 3月 |
Demo | 框架 | android-architecture-components | Architecture Component 官方演示 | 7.9k | 4天 |
Demo | 测试 | android-testing | 集成四大自动化测试框架的 Demo | 5.3k | 22天 |
Demo | 设计模式 | java-design-patterns | java设计模式指南(英文 | 33k | 12天 |
APP | 仿造 | bilibili-android-client | 高仿哔哩哔哩动画安卓客户端 | 3.5k | 10月 |
APP | 播放器 | android-UniversalMusicPlayer | 谷歌教科书级音乐播放器 | 9.3k | 13天 |
APP | 播放器 | ExoPlayer | 谷歌出品可扩展媒体播放器 | 9.9k | 3天 |
APP | 播放器 | Timber | 音乐播放器 | 4.6k | 3月 |
APP | 播放器 | ListenerMusicPlayer | 开源音乐播放器 | 1.9k | 1年 |
APP | 新闻 | AndroidFire | 新闻阅读 App 框架 | 1.9k | 11月 |
APP | 新闻 | GeekNews | 涵盖最常用主流框架的阅读应用 | 2.9k | 11月 |
APP | MVP | MvpApp | MVP 架构学习 App | 1.7k | 11月 |
APP | 教育 | santa-tracker-android | 谷歌开源的儿童教育和娱乐 App | 1.2k | 4月 |
APP | 壁纸 | muzei | 定时更换桌面精美壁纸 App | 3.5k | 3天 |
面试 | 指南 | interviews | 软件工程技术面试个人指南 | 22k | 23天 |
面试 | 题库 | AndroidInterview-Q-A | 国内一线互联网公司内部面试题库 | 7.2k | 2月 |
学习 | 汇总 | LearningNotes | 学习笔记 | 9.0k | 1月 |
学习 | 汇总 | Android_Data | Android 学习资料收集 | 7.1k | 7月 |
学习 | 翻译 | android-tech-frontier | 定期翻译国外安卓优质文章 | 9.3k | 1年 |
学习 | 源码分析 | android-open-project-analysis | Android 开源项目源码解析 | 6.2k | 1年 |
学习 | RxJava | Awesome-RxJava | RxJava 学习资源 | 4.3k | 1年 |
学习 | 正则 | learn-regex | 轻松学习正则 | 14k | 25天 |
学习 | 算法 | awesome-java-leetcode | 学习数据结构和算法、刷 LeetCode | 3.7k | 1月 |
学习 | ADB | awesome-adb | ADB 用法大全 | 3.8k | 1月 |
其他 | 大全 | Android | GitHub 上最火的 Android 开源项目 | 4.2k | 7月 |
其他 | 大全 | awesome-java | Java框架、库与软件合集 | 16k | 2月 |
其他 | 大全 | awesome-android | Android 实用资源合集 | 5.4k | 8天 |
其他 | 大全 | awesome-android-ui | Android 好用的 UI 合集 | 30k | 2月 |
其他 | 大全 | Awesome-MaterialDesign | Material Design 资源合集 | 5.5k | 2年 |
其他 | 大全 | AndroidLibs | Android 开源代码大全 | 4.0k | 1月 |
其他 | 大全 | awesome-android-tips | 收集常用的 Android 代码 | 2.2k | 1月 |
其他 | 大全 | android-open-project | Android 开源项目分类汇总 | 26k | 3月 |
其他 | 大全 | android-architecture | 谷歌关于架构的示例合集 | 27k | 1月 |
其他 | 交流 | android-discuss | Android 问题交流讨论坛 | 3.4k | 2年 |
补充 | 开发工具 | PocketHub | Android 版 Github | 9.2k | 21天 |
补充 | 开发工具 | ActivityTracker | 查看当前栈顶 Activity | 0.3k | 1年 |
补充 | 开发工具 | lantern | 翻墙利器 | 34k | 1月 |
注:
- 『star 数』为该项目在 GitHub 中所获得的 start 数;
- 『最近更新』为该项目在 GitHub 中距离最近一次更新的时间;
- 『star 数』和『最近更新』是基于:2018-05-11 GitHub 项目数据进行参考。
下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的 Header 和 Footer。
SmartRefreshLayout 是一个“聪明”或者“智能”的下拉刷新布局,由于它的“智能”,它不只是支持所有的 View,还支持多层嵌套的视图结构。它继承自 ViewGroup 而不是 FrameLayout 或 LinearLayout,提高了性能。 也吸取了现在流行的各种刷新布局的优点,包括谷歌官方的 SwipeRefreshLayout,其他第三方的 Ultra-Pull-To-Refresh、TwinklingRefreshLayout 。还集成了各种炫酷的 Header 和 Footer。
项目地址:https://github.com/scwang90/SmartRefreshLayout
博客地址:https://segmentfault.com/a/1190000010066071
VirtualLayout 是一个针对 RecyclerView 的 LayoutManager 扩展, 主要提供一整套布局方案和布局间的组件复用的问题。
通过定制化的 LayoutManager,接管整个 RecyclerView 的布局逻辑;LayoutManager 管理了一系列 LayoutHelper,LayoutHelper 负责具体布局逻辑实现的地方;每一个 LayoutHelper 负责页面某一个范围内的组件布局;不同的 LayoutHelper 可以做不同的布局逻辑,因此可以在一个 RecyclerView 页面里提供异构的布局结构,这就能比系统自带的 LinearLayoutManager、aridLayoutManager 等提供更加丰富的能力。同时支持扩展 LayoutHelper 来提供更多的布局能力。
项目地址:https://github.com/alibaba/vlayout
AndroidPerformanceMonitor(被称作 BlockCanary)是一个Android平台的一个非侵入式的性能监控组件,应用只需要实现一个抽象类,提供一些该组件需要的上下文环境,就可以在平时使用应用的时候检测主线程上的各种卡慢问题,并通过组件提供的各种信息分析出原因并进行修复。
取名为 BlockCanary 则是为了向 LeakCanary 致敬,顺便本库的 UI 部分是从 LeakCanary 改来的,之后可能会做一些调整。
项目地址:https://github.com/markzhai/AndroidPerformanceMonitor
中文文档:https://github.com/markzhai/AndroidPerformanceMonitor/blob/master/README_CN.md
记录主线程中执行的所有方法和它们的执行时间,当 app 卡顿时,将所有耗时方法直接展示给开发者,节省开发者定位卡顿问题的时间。 此项目基于 BlockCanary。
BlockCanaryEx 和 BlockCanary 的区别如下:
- BlockCanaryEx 的运行时代码修改自 BlockCanary,UI 和大部分功能基本一致;
- BlockCanaryEx 添加了方法采样,知道主线程中所有方法的执行时间和执行次数;
- 当应用卡顿时,BlockCanaryEx 更关注 app 代码中,哪些方法耗时最多,重点记录和显示这些耗时方法;
- 添加了 gc 采样,当应用卡顿时,我们可以知道卡顿时是否发生了 gc,以及 gc 的时间;
- 监控 view 性能,计算卡顿时,view的 measure、layout 和 draw 消耗的时间。
项目地址:https://github.com/seiginonakama/BlockCanaryEx
中文文档:https://github.com/seiginonakama/BlockCanaryEx/blob/master/README_ZH.md
AndroidDevMetrics(原先叫 dagger2metrics)是一个性能检测库,用来检测 Activity 生命周期方法执行性能(onCreate(), onStart(), onResume())、帧速率性能和 Dagger 2 注入性能。它会告诉你在 app 中需要花多少时间来显示特定的界面,还有(如果你使用了Dagger 2)在依赖图表中提供每个对象消耗了多少时间。它不会告诉你性能问题或瓶颈的确切原因(目前!),但它可以指出你首先应该去查找的地方。
项目地址:https://github.com/frogermcs/AndroidDevMetrics
文字识别一般都用的 Tesseract OCR ,它是由 Google 负责维护,是最好的开源 OCR Engine 之一,并且支持中文。不过因为 Tesseract 使用 C++ 实现的,在 Android 中不能直接使用,需要封装JavaAPI才能在Android平台中进行调用。
tess-two 是 TesseraToolsForAndroid(tesseract-adroid-tools)的一个分支,它添加了一些额外功能。TesseraToolsForAndroid 包含了 Tesseract OCR 和 Leptonica 图片处理库的一整套 API 和 build 文件。
项目地址:https://github.com/rmtheis/tess-two
Android 自动生成表格框架,支持二维数组展示,导入 Excel 表格,合并单元格等。还有很多功能点,包括动态添加首尾数据,分页,格式化字体,背景等。
项目地址:https://github.com/huangyanbin/smartTable
博客地址:https://juejin.im/post/5a55ae6c5188257350511a8c
博客地址2:https://juejin.im/post/5a5dce7651882573256bd043
博客地址3:https://juejin.im/post/5a7a8eef5188257a84621eda