缓存框架

DiskLruCache   Java实现基于LRU的磁盘缓存
ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。

图片加载

Android Universal Image Loader  应该是使用最多的图片缓存,支持主流图片缓存的绝大多数特性

特性:

  • 多线程图片加载(同步或者异步)
  • 尽可能多的配置选项(线程池,加载器,解析器,内存/磁盘缓存,显示参数等等)
  • 图片可以缓存在内存中,或者设备文件目录下,或者SD卡中
  • 可以监听加载进度
  • 可以自定义显示每一张图片时都带不同参数
  • 支持Widget
Picasso 一个强大的图片下载与缓存的库

特性:

  • 可以自动检测adapter的重用并取消之前的下载
  • 图片变换
  • 可以加载本地资源
  • 可以设置占位资源
  • 支持debug模式
Fresco  Facebook 开源的一个强大的图片加载组件。用于管理图像和他们使用的内存的库

特性:

  • 内存管理,两个内存缓存加上磁盘缓存构成了三级缓存
  • 支持流式,图片的渐进式呈现
  • 支持Gif图和WebP格式
  • 更多样的显示,如圆角、进度条、点击重试、自定义对焦点
  • 支持Android2.3+
Glide   一个高效、开源、 Android设备上的媒体管理框架。灵活的API,可以和很多网络框架进行整合

特性:

  • GIF动画的解码
  • 本地视频剧照的解码
  • Activity生命周期的集成
  • 转码的支持
  • 动画的支持
  • OkHttp和Volley的支持
  • 其他功能:图片加载过程中占位符等

图片处理

Picasso-transformations 一个为Picasso提供多种图片变换的库
Glide-transformations   一个为Glide提供多种图片变换的库
Android-gpuimage  GPUImage是个功能十分强大、又十分易用的图像处理库。提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜
ImageFilterForAndroid 国内的代震军开源的滤镜效果框架。

网络请求

Android Async HTTP  Android异步HTTP库

特性:

  • 在匿名回调中处理请求结果
  • 在UI线程外进行http请求
  • 请求使用ThreadPool来处理并非资源的使用
  • 文件断点上传
  • 智能重试
  • 默认gzip压缩
  • 内置Json解析
  • 可将Cookies持久化到SharedPreferences
AndroidAsync  异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程
OkHttp  一个Http与Http/2的客户端

特性:

  • 支持HTTP2和SPDY
  • 如果SPDY不可用,利用连接池减少请求延迟
  • 使用GZIP压缩
  • Response缓存减少不必要的请求
Retrofit   Square开源的Android和Java的REST风格请求库.
Volley  Google推出的Android异步网络请求框架和图片加载框架

特性:

  • JSON,图像等的异步下载
  • 网络请求的排序
  • 网络请求的优先级处理
  • 缓存
  • 多级别取消请求
  • 和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)
Android Lite Http 一款‘智能’的HTTP框架类库。国人开发的一套框架
HttpCache Trinea大神写的Http缓存工具
Http Request Java HTTP请求库
Ion  Android异步网络和图片加载

网络解析

Gson  一个Java序列化/反序列化库,可以将JSON和java对象互相转换
Jackson Jackson可以轻松地将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象
Fastjson  阿里巴巴开源JSON解析库,是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法, 把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。各种JSON库的比较

特性:

  • 速度最快,测试表明,fastjson具有极快的性能,超越任其他的java json parser。包括自称最快的jackson
  • 功能强大,完全支持java bean、集合、Map、日期、Enum,支持范型,支持自省
  • 无依赖,能够直接运行在Java SE 5.0以上版本
  • 支持Android
HtmlPaser  一种用来解析单个独立html或嵌套html的方式
Jsoup 一个以最好的DOM,CSS和jQuery解析html的库

数据库

OrmLite  OrmLite不是Android平台专用的orm框架,它是一个Java orm,OrmLite For Android增加了对Android平台的支持。
Sugar   用超级简单的方法处理Android数据库

特性:

  • 配置少
  • 自动生成表结构
  • 支持在不同模式版本直接切换
GreenDAO  GreenDAO是一个轻量级,快速的orm框架。简化建表、查询、更新、插入、事务、索引的操作

特性:

  • 性能突出(比ormlite快4-5倍), performance
  • 库小,核心包小于100k
  • 简单易用的API
  • 支持protobuf
  • 自动生成数据库访问代码
ActiveAndroid   ActiveAndroid是一个轻量级的orm框架,名称命令方式类似于Yii、Rails等使用的orm框架ActiveRecord
SQLBrite    SQLiteOpenHelper 和ContentResolver的轻量级包装
Realm  移动端的数据库,适用于 Phone、Tablet、Wearable,支持 ORM,线程安全、支持连表及数据库加密,比 SQLite 性能更好。

特性:

  • 着重移动端
  • 简单易用的API
  • 支持线程安全,关系数据库和加密
  • 访问快速
  • 跨平台
DBFlow 一个速度极快,功能强大,而且非常简单的 Android 数据库 ORM 库

依赖注入

ButterKnife 将Android视图和回调方法绑定到字段和方法上,利用annotation帮你快速完成View的初始化,减少代码

特性:

  • 支持 Activity 中的 View 注入
  • 支持 View 中的 View 注入
  • 支持 View 事件回调函数注入
Dagger2 一个Android和java快速依赖注射器
AndroidAnotations   快速安卓开发。易于维护

特性:

  • 依赖注入:包括view,extras,系统服务,资源等等
  • 简单的线程模型,通过annotation表示方法运行在ui线程还是后台线程
  • 事件绑定:通过annotation表示view的响应事件,不用在写内部类
  • REST客户端:定义客户端接口,自动生成REST请求的实现
  • 没有你想象的复杂:AndroidAnnotations只是在在编译时生成相应子类
  • 不影响应用性能:仅50kb,在编译时完成,不会对运行时有性能影响。
RoboGuice   Android平台的Google Guice

图表库

WilliamChart    创建图表的Android库
HelloCharts 兼容到API8的Android图表库
MPAndroidChart  一个强大的Android图表视图/图形库
EazeGraph Android图表和图表库
AndroidCharts:一款易于使用的Android图表动画类库,包含曲线/折线图、饼图、时钟图、柱状图

后台处理

Tape 一个轻快的,事务性的,基于文件的FIFO的库
Android Priority Job Queue  一个专门为Android轻松调度任务的工作队列

事件总线

EventBus  安卓优化的事件总线,简化了活动、片段、线程、服务等的通信

特性:

  • 非注解
  • 便利,以onEvent方法来接收
  • 性能优化,是android上最快的事件总线框架
  • 单例
  • 事件继承
Otto  一个基于Guava的增强的事件总线
AndroidEventBusbboyfeiyu开源的事件总线框架,吸收了greenrobot的EventBus以及square的otto的优点, 并在此基础上做出了相应的改进,使得事件总线框架更适合用户的使用习惯,也使得事件的投递更加的精准、灵活

响应式编程

RxJava  JVM上的响应式扩展
RxJavaJoins 为RxJava提供Joins操作
RxAndroid  Android上的响应式扩展,在RxJava基础上添加了Android线程调度
RxBinding  提供用RxJava绑定Android UI的API
Agera   Android上的响应式编程
RxLifecycle RxAndroid的生命周期控制
RxPermissions RxJava实现的Android运行时权限控制
RxFile RxJava实现,从文件,图片或者视频中获取缩略图
xBus EventBus的RxJava实现。 最简单的RxBus实现
Retrolambda:可以在Android上使用Lambdas表达式
Agera Agera(瑞典文的意思是"采取行动")是一个超轻量级的Android库,帮助Android应用中有生命周期的组件(比如:Activities)或者组件中的对象(比如:Views)预准备数据。 通过加入函数式响应式编程,Agera可以在 什么时机, 什么线程 和 什么数据 层面上更清晰的分离数据处理流程,并且使用一个接近自然语言的单个表达式就能编写一个复杂的异步流。

from Agera中文wiki
Google Agera vs Reactivex:Reddit的讨论详细对比

Log框架 

Logger  简单,漂亮,强大的Android日志工具
Hugo    在调试版本上注解的触发方法进行日志记录
Timber  一个小的,可扩展的日志工具
DebugLog 可以帮你创建更简单和更容易理解的调试日志,能够友好的显示调试信息所在类和函数。

测试框架

Mockito Java编写的Mocking单元测试框架
Robotium    Android UI 测试
Robolectric Android单元测试框架
Android自带很多测试工具:JUnit,Monkeyrunner,UiAutomator,Espresso等

调试框架

Stetho  调试Android应用的桥梁,使得可以利用Chrome开发者工具进行调试

性能优化

LeakCanary  内存泄漏检测工具
ACRA  Android应用程序崩溃报告

Android插件

DynamicAPK 实现Android多apk/dex方式的apk加载,支持资源分包
AndroidDynamicLoader 点评的插件化实现方式,是用 Fragment 以及 Schema 的方式实现
dynamic-load-apk  Apk动态加载框架,热部署,利用 ClassLoader 以及 Activity 代理的方式解决。
android-pluginmgr  一种无须规范限制的动态加载解决方案,插件不需要依赖任何API

Features:

  • 插件为普通apk,无须依赖任何jar
  • Activity生命周期由系统自己管理
  • 使用简单,只需要了解一个类PluginManager的两个方法
  • 启动Activity的效率高
  • 不修改插件,被加载的插件仍然可以独立安装。
DroidPlugin DroidPlugin 是360手机助手在Android系统上实现了一种新的插件机制:它可以在无需安装、修改的情况下运行APK文件,此机制对改进大型APP的架构,实现多团队协作开发具有一定的好处

热修补框架

Dexposed  基于Xposed的AOP框架,方法级粒度,可以进行AOP编程、插桩、热补丁、SDK hook等功能。
AndFix  阿里巴巴的另一个团队的hot fix方案。同样是方法的hook,AndFix不像Dexposed从Method入手,而是以Field为切入点。
Nuwa 纯java实现的hot fix方案
HotFix 安卓App热补丁动态修复框架
DroidFix  AndroidHotFix/Android 代码热修复
AnoleFix Another hotfix 另一个热修复方案 Alpha,来自InstantRun 和 Robust 类似
Amigo  饿了么团队开源的 Android hotfix框架
Tinker 微信开源的Android Hot fix方案

视频处理

ExoPlayer Android的可扩展媒体播放器
VideoPlayerManager:帮助开发者使用MediaPlayer
Easy Video Player:易于使用的视频播放器
ijkplayer Android / iOS视频播放器基于FFmpeg n3.2,支持MediaCodec,VideoToolbox
mp4parser 用于读取,写入和创建MP4文件的Java API
AndroidFFmpeg  FFmpeg视频解析的例子
Vitamio  Vitamio是一款Android 与iOS 平台上的全能多媒体开发框架
  • 全面支持硬件解码与 GPU 渲染
  • 能够流畅播放 720P 甚至 1080P 高清 MKV,FLV,MP4,MOV,TS,RMVB 等常见格式的视频
  • 在 Android 与 iOS 上跨平台支持 MMS, RTSP, RTMP, HLS(m3u8)等常见的多种视频流媒体协议,包括点播与直播

Camera操作

cwac-camera  commonsguy开源的camera操作封装。
SquareCamera  正方的摄像机,有前后摄像头等操作。
CameraModule  Yalantis开源的摄像机,有自动聚焦功能等。
OpenCamera  完整的摄像机,功能很全,不过代码有点乱。
StickerCamera  这是一款集成了相机,图片裁剪,给图片贴贴图打标签的相机应用。

动画

Android View Animations:一个非常强大的开源动画库,开发者可以用来创建各种效果
RecyclerView Animators:可实现RecyclerView动画
 lottie-android  动画类框架排行榜第一名,一款可以在 Android 端快速展示 Adobe Afeter Effect(AE) 工具所做动画的框架,利用 json 文 件快速实现动画效果是它最大的便利,而这个 json 文件也是由 Adobe 提供的 AE 工具制作的,在 AE 中装一个 Bodymovin 的插件,使用这个插件最终将动画效果生成 json 文件,这个 json 文件即可由 LottieAnimationView 解析并生成绚丽的动画效果,而且它还支持跨平台
Material-Animations一款提供场景转换过渡能力的动画框架,与 lottie-android 不同的是,Material-Animations 提供的是场景切换的动画效果
 

日期&时间

TimesSquare for Android:一款非常漂亮的日历控件
Material Calendar View:一款Material Design风格的日历控件

文件

Android-FilePicker:一个phtoopicker,用于Android设备选择文件或者目录
Material File Picker:一个Material design风格的文件选择工具

手势

Sensey:可以在Android应用程序里面添加手势操作,使用简单
Android 3D Touch – PeekView:可以在Android平台上实现类似iOS上面的3D Touch功能

蓝牙

Android-BluetoothSPPLibrary:开发者用它可以通过蓝牙与微控制器(microcontroller)或Android设备进行通信
RxAndroidBle:基于RxJava技术,可用较低的电量操作蓝牙

UI界面

1. material-dialogs

       是一款自定义View框架,如多你还是一个自定义 View 的新人,对 Dialog 使用还有点生疏,那么通过使用 material-dialogs 可以提升你的 Dilaog 使用能力

GitHub 地址:material-dialogs GitHub 地址

 

2. flexbox-layout

        是一款弹性伸缩布局,FlexboxLayout 作为 LinearLayout 和 RelativeLayout 的替代者,值得大家在项目开发中去尝试使用,毕竟是 Google 出品

GitHub 地址:flexbox-layout GitHub 地址

 

3. AndroidSwipeLayout

       非常强大的滑动式布局,滑动删除是我们 app 中的常见需求,商品详情的上下滑动需求在实际开发中我们也是经常遇到,AndroidSwipeLayout 在 GitHub 上有 8300 个 stars,证明还是值得使用

GitHub 地址:AndroidSwipeLayout GitHub 地址

 

4. BaseRecyclerViewAdapterHelper

强大的通用 RecyclerView 适配器,在 GitHub Android 适配器排行榜第一

GitHub 地址:BaseRecyclerViewAdapterHelper GitHub 地址

 

5. MaterialDrawer

强大的材料风格的抽屉框架,非常灵活,易于使用

GitHub 地址:MaterialDrawer GitHub 地址

 

6. Android-ObservableScrollView

一款让视图滑动更具有视觉效果的滑动式框架,在 GitHub 上提供了 12 种滑动效果,可以用来提升 App 的滑动体验

GitHub 地址:Android-ObservableScrollView GitHub 地址

 

7. AppIntro

       一款提供快速制作欢迎页的框架,在国内的 App 开发中,ViewPager 开发 App 的欢迎页已经是标配的需求,但是 AppIntro 也是绝对值得你一看

GitHub 地址:AppIntro GitHub 地址

 

8. ViewPagerIndicator

      一款基于 ViewPager 的页面指示器开源框架,作者是 Android 大神 JakeWharton,只是已经很长时间没有更新了,大家可以参考使用

GitHub 地址:ViewPagerIndicator GitHub 地址

UI界面

1. material-dialogs

       是一款自定义View框架,如多你还是一个自定义 View 的新人,对 Dialog 使用还有点生疏,那么通过使用 material-dialogs 可以提升你的 Dilaog 使用能力

GitHub 地址:material-dialogs GitHub 地址

 

2. flexbox-layout

        是一款弹性伸缩布局,FlexboxLayout 作为 LinearLayout 和 RelativeLayout 的替代者,值得大家在项目开发中去尝试使用,毕竟是 Google 出品

GitHub 地址:flexbox-layout GitHub 地址

 

3. AndroidSwipeLayout

       非常强大的滑动式布局,滑动删除是我们 app 中的常见需求,商品详情的上下滑动需求在实际开发中我们也是经常遇到,AndroidSwipeLayout 在 GitHub 上有 8300 个 stars,证明还是值得使用

GitHub 地址:AndroidSwipeLayout GitHub 地址

 

4. BaseRecyclerViewAdapterHelper

强大的通用 RecyclerView 适配器,在 GitHub Android 适配器排行榜第一

GitHub 地址:BaseRecyclerViewAdapterHelper GitHub 地址

 

5. MaterialDrawer

强大的材料风格的抽屉框架,非常灵活,易于使用

GitHub 地址:MaterialDrawer GitHub 地址

 

6. Android-ObservableScrollView

一款让视图滑动更具有视觉效果的滑动式框架,在 GitHub 上提供了 12 种滑动效果,可以用来提升 App 的滑动体验

GitHub 地址:Android-ObservableScrollView GitHub 地址

 

7. AppIntro

       一款提供快速制作欢迎页的框架,在国内的 App 开发中,ViewPager 开发 App 的欢迎页已经是标配的需求,但是 AppIntro 也是绝对值得你一看

GitHub 地址:AppIntro GitHub 地址

 

8. ViewPagerIndicator

      一款基于 ViewPager 的页面指示器开源框架,作者是 Android 大神 JakeWharton,只是已经很长时间没有更新了,大家可以参考使用

GitHub 地址:ViewPagerIndicator GitHub 地址

其它

 leakcanary

       一款内存检测框架,服务于 Java 和 Andorid 客户端,方便简洁是 leakcanary 最大的特点,只需要在应用的 apllication 中集成,就可以直接使用它,15.9k 的 stars 足够说明它的厉害,最关键是是,它也是 square 团队的作品,就这一条,不用说相信大家也都明白

GitHub 地址:leakcanary GitHub 地址

 

ARouter

       一款提供服务、页面跳转的路由框架,由阿里出品,该框架提供:从外部 URL 映射到内部页面、跨模块的页面跳转(模块化必备,页面解耦),拦截跳转过程等能力,绝对是一个企业级的开发框架

GitHub 地址:ARouter GitHub 地址

 

buttterknife

       使用注解生成模板代码,将 view 与方法和参数绑定,配合 Android Studio 提供的 Buttter Knife 插件,帮组开发者省却了频繁的 findViewId 的烦恼,最新的 Buttter Knife 还提供了 onclick 绑定以及字符串的初始化,初学者可以查阅 Buttter Knife 以及 ButtterKnife 进一步学习,作者是 JakeWharton,是大名鼎鼎的 square 的团队成员之一

GitHub 地址:butterknife GitHub 地址