博观而约取,厚积而薄发。这篇文章主要讲述25类Android常用开源框架相关的知识,希望能为你提供帮助。
1、图片加载,缓存,处理
框架名称 | 功能描述 |
Android Universal Image Loader |
一个强大的加载,缓存,展示图片的库,已过时 |
Picasso |
一个强大的图片下载与缓存的库 |
Fresco |
一个用于管理图像和他们使用的内存的库 |
Glide |
一个图片加载和缓存的库,使用的App有:网易新闻 |
GlidePalette |
android Lollipop Palette is now easy to use with Glide |
PicassoPalette |
Android Lollipop Palette is now easy to use with Picasso ! |
Picasso-transformations |
一个为Picasso提供多种图片变换的库 |
Glide-transformations |
一个为Glide提供多种图片变换的库 |
2、图片裁剪
框架名称 | 功能描述 |
uCrop |
Image Cropping Library for Android,使用的App有:薄荷,哔哩哔哩 |
android-crop |
图片裁剪,使用的App有:网易新闻,芒果TV |
cropper |
图片裁剪开源框架 |
Android-Image-Cropper |
Image Cropping Library for Android, optimized for Camera / Gallery |
PhotoCropper |
Android 大图片裁剪终极解决方案 |
android-cropimage |
CropImage Activity from Gallery.apk packaged as a reusable Android library |
PhotoCrop |
A Library which can be used to crop images in Android similar to Facebook and Telegram,使用的App有:快手 |
3、图片选择
框架名称 | 功能描述 |
MultiImageSelector |
图片选择,使用的App有:薄荷 |
BGAPhotoPicker-Android |
Android 图片选择、预览、九宫格图片控件、拖拽排序九宫格图片控件 |
TakePhoto |
轻量级Android照片处理框架 |
RxGalleryFinal |
Android图片单选/多选、拍照、裁剪、压缩。视频选择和录制。GalleryFinal |
boxing |
一个多媒体选择器库,B站出品。可以选择一张或者多张图片,提供预览和裁剪功能。同样支持gif图,选择视频和图像压缩功能。 |
4、图片转换,压缩,滤镜
框架名称 | 功能描述 |
Android-gpuimage |
一个开源的基于GPU的图像处理库,提供各种各样的图像处理滤镜,并且支持照相机和摄像机的实时滤镜,使用的App有:快手 |
photoview |
使用的App有:薄荷,网易新闻 |
circleimageview |
圆形图片,使用的App有:薄荷 |
RoundedImageView |
圆形图片,使用的App有:薄荷 |
SelectableRoundedImageView |
Android ImageView that supports different radii on each corner |
android-gif-drawable |
gif图片,使用的App有:网易新闻,快手 |
Luban |
可能是最接近微信朋友圈的图片压缩算法 |
Compressor |
Compressor is a lightweight and powerful android image compression library |
5、高斯模糊,毛玻璃,图片模糊
框架名称 | 功能描述 |
android-stackblur |
Android StackBlur is a library that can perform a blurry effect on a Bitmap based on a gradient or radius, and return the result. The library is based on the code of Mario Klingemann. |
Blurry |
Blurry is an easy blur library for Android |
blurkit-android |
The missing Android blurring library. Fast blur-behind layout that parallels ios. |
BlurView |
Dynamic iOS-like blur of underlying Views for Android |
ImageBlurring |
Android blurring image(bitmap) by java and jni |
6、缓存
框架名称 | 功能描述 |
LruCache |
Android原生API,内存缓存 |
DiskLruCache |
Java实现基于LRU的磁盘缓存 |
ASimpleCache |
一个为android制定的轻量级的开源缓存框架 |
base-diskcache |
Android 缓存库,融合了DiskLruCache和ASimpleCache |
7、网络请求
框架名称 | 功能描述 |
httpclient |
apache开源的网络请求框架,已过时 |
AsyncHttpClient |
基于httpclient封装,已过时 |
OkHttp |
Square出品,一个Http与Http/2的客户端 |
Retrofit |
Square出品,类型安全的Http客户端 |
Volley |
Google推出的Android异步网络请求框架和图片加载框架,使用的App有:网易新闻 |
从Android 6.0 开始,Google删除了apache的开源网络请求框架httpclient,所以基于httpclient的AsyncHttpClient也不推荐使用了
Volley适合那些请求频繁但数据量不大的场景,不适用于大数据的请求,比如下载文件
【25类Android常用开源框架】Android 6.0 后,Android开始使用OkHttp,而Retrofit是一个网络代理框架,可以更简单的使用OkHttp
8、网络解析
框架名称 | 功能描述 |
Gson |
一个Java序列化/反序列化库,可以将JSON和java对象互相转换 |
Jackson |
Jackson可以轻松地将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象 |
Fastjson |
Java上一个快速的JSON解析器/生成器 |
HtmlPaser |
一种用来解析单个独立html或嵌套html的方式 |
Jsoup |
一个以最好的DOM,CSS和jQuery解析html的库 |
9、数据库
框架名称 | 功能描述 |
OrmLite |
JDBC和Android的轻量级ORM java包 |
Sugar |
用超级简单的方法处理Android数据库 |
GreenDAO |
一种轻快地将对象映射到SQLite数据库的ORM解决方案,使用的App有:薄荷,京东 |
ActiveAndroid |
以活动记录方式为Android SQLite提供持久化 |
SQLBrite |
SQLiteOpenHelper 和ContentResolver的轻量级包装 |
android-database-sqlcipher |
数据库加密 |
storio |
Beautiful API for SQLiteDatabase and ContentResolver |
realm-java |
移动数据库,高性能数据库:一个SQLite和ORM的替换品 |
ObjectBox |
相信不少人都用过GreenDao和EventBus,这两库都是greenrobot公司出品。ObjectBox也是该公司出品。GreenDao号称是最快的与SQLite的对象关系映射(ORM)。但是自从2011年以来,公司声称发现了许多的缺陷,有很多问题影响了性能。所以开发出另外一套性能最好且易用的NoSQL数据库,优于其他数据库5-15倍的性能。 |
10、依赖注入
框架名称 | 功能描述 |
ButterKnife |
将Android视图和回调方法绑定到字段和方法上 |
Dagger2 |
一个Android和java快速依赖注射器 |
AndroidAnotations |
快速安卓开发。易于维护 |
RoboGuice |
Android平台的Google Guice
已退役 |
guice |
Google开发的依赖注入框架 |
11、图表Chart
框架名称 | 功能描述 |
WilliamChart |
创建图表的Android库 |
HelloCharts |
兼容到API8的Android图表库,使用的App有:薄荷 |
MPAndroidChart |
一个强大的Android图表视图/图形库,使用的App有:春雨医生 |
12、后台处理
框架名称 | 功能描述 |
Tape |
一个轻快的,事务性的,基于文件的FIFO的库 |
Android Priority Job Queue |
一个专门为Android轻松调度任务的工作队列 |
13、事件总线
框架名称 | 功能描述 |
EventBus |
安卓优化的事件总线,简化了活动、片段、线程、服务等的通信,使用的App有:薄荷 |
Otto |
一个基于Guava的增强的事件总线 |
HermesEventBus |
一个基于EventBus的、能在进程间发送和接收event的库,在IPC或者插件开发中非常有用 |
14、响应式编程
框架名称 | 功能描述 |
RxJava |
JVM上的响应式扩展 |
RxJavaJoins |
为RxJava提供Joins操作 |
RxAndroid |
Android上的响应式扩展,在RxJava基础上添加了Android线程调度 |
RxBinding |
提供用RxJava绑定Android UI的API |
Agera |
Android上的响应式编程 |
RxLifecycle |
Lifecycle handling APIs for Android apps using RxJava |
15、Log框架
框架名称 | 功能描述 |
Logger |
简单,漂亮,强大的Android日志工具 |
Hugo |
在调试版本上注解的触发方法进行日志记录 |
Timber |
一个小的,可扩展的日志工具 |
16、测试框架
框架名称 | 功能描述 |
Mockito |
Java编写的Mocking单元测试框架 |
Robotium |
Android UI 测试 |
Robolectric |
Android单元测试框架 |
Android自带很多测试工具:JUnit,Monkeyrunner,UiAutomator,Espresso等
17、调试框架
框架名称 | 功能描述 |
Stetho |
调试Android应用的桥梁,使得可以利用Chrome开发者工具进行调试 |
18、性能优化
框架名称 | 功能描述 |
LeakCanary |
内存泄漏检测工具 |
BlockCanary |
轻松找出Android App界面卡顿元凶 |
ACRA |
Android应用程序崩溃报告 |
Google Guava |
Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。 |
google protobuf |
由google开发,并且在google内部使用。Protobuf的作用和xml、json是一回事,但他是二进制格式,性能好、效率高。ProtoBuf开发者指南 |
19、热修复
框架名称 | 功能描述 |
tinker |
腾讯开源的一个热修复框架 |
AndFix |
alibaba热修复框架 |
dexposed |
alibaba热修复框架 |
20、二维码
框架名称 | 功能描述 |
Zxing |
一个二维码开源框架 |
barcodescanner |
使用的App有:薄荷 |
BGAQRCode-Android |
扫描二维码、扫描条形码、相册获取图片后识别、生成带 Logo 二维码、支持微博微信 QQ 二维码扫描样式 |
zxing-android-embedded |
使用的App有:春雨医生,芒果TV |
21、多媒体
框架名称 | 功能描述 |
ijkplayer |
Bilibili开源的视频播放器 |
DanmakuFlameMaster |
Android开源弹幕引擎·烈焰弹幕使,使用的App有:网易新闻 |
Vitamio |
一款全能多媒体开发框架,全面支持硬件解码与 GPU 渲染 |
FFmpeg |
一个基于C语言的多媒体开源框架 |
百度媒体云 |
基于百度视频处理、人脸识别、语音等技术媒体相关的整体解决方案 |
ExoPlayer |
Google开源的视频播放器 |
22、汉语转拼音
框架名称 | 功能描述 |
pinyin4j |
https://github.com/belerweb/pinyin4j |
TinyPinyin |
适用于Java和Android的快速、低内存占用的汉字转拼音库。 |
PinyinSearchLibrary |
The library of PinyinSearch,a Java Library which provide data parsing methods, data matching method and so on for T9 search and Qwerty search.PinyinSearch = T9Search + QwertySearch |
com.pinyin4android |
唯品会使用 |
23、下载
框架名称 | 功能描述 |
MultiThreadDownload |
使用的App有:薄荷 |
FileDownloader |
Android 文件下载引擎,稳定、高效、灵活、简单易用 |
RxDownload |
基于RxJava和Retrofit打造的下载工具, 支持多线程下载和断点续传, 智能判断是否支持断点续传等功能 |
file-downloader |
安卓上轻量级Http/Https文件下载框架,我的目标是让安卓文件下载越简单越好,尽可能以最简洁明了的方式完成复杂需求。 |
24、动画
框架名称 | 功能描述 |
facebook:rebound |
A Java library that models spring dynamics and adds real world physics to your app |
ViewAnimator |
A fluent Android animation library |
Material-Animations |
Android Transition animations explanation with examples |
AndroidViewAnimations |
Cute view animation collection. |
ListViewAnimations |
An Android library which allows developers to easily add animations to ListView items |
recyclerview-animators |
An Android Animation library which easily add itemanimator to RecyclerView items. |
RecyclerViewItemAnimators |
An Android library which provides simple Item animations to RecyclerView items |
AnimationEasingFunctions |
Android Animation Easing Functions. Let’s make animation more real! |
BaseAnimation |
BaseAnimation收集网络Android相关动画集合,自定义控件等,近200多种源码 |
FragmentAnimations |
3D animations for support-v4 Fragment transition. |
AnimatedEditText |
Androids EditText that animates the typed text. EditText is extended to create AnimatedEditText and a PinEntryEditText. |
ViewPagerTransforms |
Library containing common animations needed for transforming ViewPager scrolling for Android v13+ |
lottie-android |
Render After Effects animations natively on Android and iOS |
25、Android选择器类库包括日期时间选择器、单项选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器、星座选择器等
框架名称 | 功能描述 |
material-calendarview |
material design 风格的日历控件使用的App有:薄荷 |
MaterialDateTimePicker |
Pick a date or time on Android in style,使用的App有:薄荷 |
android-times-square |
Standalone Android widget for picking a single date from a calendar view. |
AndroidPicker |
安卓选择器类库,包括日期时间选择器、单项选择器、地址选择器、颜色选择器、文件目录选择器、数字选择器、星座选择器等。 |
Android-PickerView |
仿iOS的PickerView控件,有时间选择和选项选择并支持一二三级联动效果 |
WheelPicker |
Simple and fantastic wheel view in realistic effect for android. |
Android-FilePicker |
Photopicker and document picker for android |
NumberPickerView |
another NumberPicker with more flexible attributes on Android platform |
Android-PickerView-Library |
Simple PickerView for Android |
推荐阅读