Android常见开源解决方案
原文:http://m.pstatp.com/group/6348269082899497218/?iid=6036708044&app=news_article&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=toutiao_android&utm_campaign=client_share
Android常见开源解决方案
(一)系统框架
1.1 网络请求
名称 | 描述 |
---|---|
Android Async HTTP | Android异步HTTP库 |
AndroidAsync | 异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程。 |
OkHttp | 一个Http与Http/2的客户端 |
Retrofit | 类型安全的Http客户端 |
Volley | Google推出的Android异步网络请求框架和图片加载框架 |
1.2 网络解析
1.2.1 JSON解析
名称 | 描述 |
---|---|
Gson | 一个Java序列化/反序列化库,可以将JSON和java对象互相转换 |
Jackson | Jackson可以轻松地将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象 |
Fastjson | Java上一个快速的JSON解析器/生成器 |
1.2.2 HTML解析
名称 | 描述 |
---|---|
HtmlPaser | 一种用来解析单个独立html或嵌套html的方式 |
Jsoup | 一个以最好的DOM,CSS和jQuery解析html的库 |
1.3 图片加载
名称 | 描述 |
---|---|
Android Universal Image Loader | 一个强大的加载,缓存,展示图片的库 |
Picasso | 一个强大的图片下载与缓存的库 |
Fresco | 一个用于管理图像和他们使用的内存的库 |
Glide | 一个图片加载和缓存的库 |
1.4 图片处理
名称 | 描述 |
---|---|
Picasso-transformations | 一个为Picasso提供多种图片变换的库 |
Glide-transformations | 一个为Glide提供多种图片变换的库 |
Android-gpuimage | 基于OpenGL的Android过滤器 |
1.5 图表处理
名称 | 描述 |
---|---|
WilliamChart | 创建图表的Android库 |
HelloCharts | 兼容到API8的Android图表库 |
MPAndroidChart | 一个强大的Android图表视图/图形库 |
1.6 后台处理
名称 | 描述 |
---|---|
Tape | 一个轻快的,事务性的,基于文件的FIFO的库 |
Android Priority Job Queue | 一个专门为Android轻松调度任务的工作队列 |
1.7 响应式编程
名称 | 描述 |
---|---|
RxJava | JVM上的响应式扩展 |
RxJavaJoins | 为RxJava提供Joins操作 |
RxAndroid | Android上的响应式扩展,在RxJava基础上添加了Android线程调度 |
RxBinding | 提供用RxJava绑定Android UI的API |
Agera | Android上的响应式编程 |
1.8 事件总线
名称 | 描述 |
---|---|
EventBus | 安卓优化的事件总线,简化了活动、片段、线程、服务等的通信 |
OTTO | 一个基于Guava的增强的事件总线 |
1.9 缓存
名称 | 描述 |
---|---|
DiskLruCache | Java实现基于LRU的磁盘缓存 |
1.10 数据库
名称 | 描述 |
---|---|
OrmLite | JDBC和Android的轻量级ORM java包 |
Sugar | 用超级简单的方法处理Android数据库 |
GreenDAO | 一种轻快地将对象映射到SQLite数据库的ORM解决方案 |
ActiveAndroid | 以活动记录方式为Android SQLite提供持久化 |
SQLBrite | SQLiteOpenHelper 和ContentResolver的轻量级包装 |
Realm | 移动数据库,一个SQLite和ORM的替换品 |
1.11 依赖注入
名称 | 描述 |
---|---|
ButterKnife | 将Android视图和回调方法绑定到字段和方法上 |
Dagger2 | 一个Android和java快速依赖注射器。 |
AndroidAnotations | 快速安卓开发。易于维护 |
RoboGuice | Android平台的Google Guice |
1.12 Log框架
名称 | 描述 |
---|---|
Logger | 简单,漂亮,强大的Android日志工具 |
Hugo | 在调试版本上注解的触发方法进行日志记录 |
Timber | 一个小的,可扩展的日志工具 |
1.13 测试框架
名称 | 描述 |
---|---|
Mockito | Java编写的Mocking单元测试框架 |
Robotium | Android UI 测试 |
Robolectric | Android单元测试框架 |
Android自带很多测试工具 | JUnit,Monkeyrunner,UiAutomator,Espresso等 |
1.14 调试框架
名称 | 描述 |
---|---|
Stetho | 调试Android应用的桥梁,使得可以利用Chrome开发者工具进行调试 |
1.15 性能优化
名称 | 描述 |
---|---|
LeakCanary | 内存泄漏检测工具 |
ACRA | Android应用程序崩溃报告 |
(二)控件库
2.1 下拉刷新、上拉加载
名称 | 说明 |
---|---|
Android PullToRefresh | 最经典、最多人用的下拉刷新、加载更多。 |
Android Ultra Pull To Refresh | 非常方便自定义的下拉刷新框架,继承于ViewGroup可以包含任何View,使用起来非常简单,如果想要自定义样式,就像给ListView加一个HeaderView一样简 |
Phoenix | 漂亮的动态刷新库 |
Pull-to-Refresh.Rentals-Android | 一个简单可以自定义的下拉刷新实现,Yalantis 出品。 |
Taurus | 下拉刷新,Yalantis 出品。(是不是有点似曾相识呢?) |
swipeRefreshLayout | 谷歌官方自带 |
2.2 底部导航栏
名称 | 说明 |
---|---|
LuseenBottomNavigation | 很方便的遵循MD设计的底栏 |
ahbottomnavigation | 遵循谷歌设计规范的底栏库 |
BottomBar | 另一个遵循谷歌设计规范的底栏库(PS:之前我使用的时候有点小BUG现在不清楚) |
2.3 二维码
名称 | 说明 |
---|---|
Zxing | 谷歌开发的二维码处理库,功能强大,质量没的说!一维码二维码都能扫!但是使用起来比较繁琐。 |
ZBar | ZBar则比较简单,使用起来容易上手 |
- ZXing项目的示例程序对于摄像头的控制写的非常全面,ZBar的没有
- ZBar基于C语言编写,解码效率高于ZXing项目
- ZBar是日本人写的,对于中文解析会乱码这个肯定有人遇到过的,ZXing不会乱码
- 扫描框的绘制,ZXing的扫描框绘制是自定义View的,截取区域不好控制(至少我没控制好),ZBar的可以自定义,只要你会计算截取区域
2.4 侧滑菜单
名称 | 说明 |
---|---|
NavigationDrawer | Material Design的抽屉模板库,快速搭建侧滑菜单。 |
SlidingMenu | 之前也是个很优秀的侧滑库直到谷歌来搅局。。 |
FlowingDrawer | 超帅的侧滑菜单 |
2.5 侧滑返回
名称 | 说明 |
---|---|
ParallaxSwipeBack | 带视觉差的侧滑返回,类似于新版微信和lofter的侧滑返回效果。引入方便,核心代码只需几十行! |
2.6 文本输入框
名称 | 说明 |
---|---|
MaterialEditText | 方便自定义的EditText控件库 |
2.7 侧贴标签
名称 | 说明 |
---|---|
labelview | 类似淘宝的侧贴标签库 |
FlycoLabelView | 轻量级侧贴标签 |
2.8 侧滑功能项
名称 | 说明 |
---|---|
AndroidSwipeLayout | 滑动Layout,支持单个View,ListView,GridView |
2.9 动画库
名称 | 说明 |
---|---|
animate | 几乎涵盖所有MD动画 |
Material-Animations | MD动画库 |
ExplosionField | 爆破效果的删除动画库 |
LoadingDrawable | 小清新的加载动画 |
2.10 搜索框
名称 | 说明 |
---|---|
floatingsearchview | 自带动画与动态加载数据的搜索框控件 |
2.11 快捷选择
名称 | 说明 |
---|---|
drag-select-recyclerview | 一直觉得魅族的快捷选择很有用,终于找到一个类似功能的还支持recycleView |
2.12 引导页
名称 | 说明 |
---|---|
material-intro | MD风格的引导页 |
SlidingTutorial | 很顺滑的引导页 |
MaterialIntroView | MD式的高亮引导页 |
HTextView | 其实这是个帅炸的文字展示库,可是我用过做引导页而且逼格不错! |
2.13 菜单
名称 | 说明 |
---|---|
android-snake-menu | 类似Tumblr的蛇形菜单 |
coolMenu | 帅炸的视窗菜单 |
BoomMenu | 爆炸式的弹出菜单 |
2.14 图案密码解锁单
名称 | 说明 |
---|---|
android-lockpattern | Android开机的图案密码解锁,支付宝的密码解锁 |
2.15 滑动开关
名称 | 说明 |
---|---|
ToggleButton | 状态切换的 Button,类似 iOS,用 View 实现 |
2.16 对话框
名称 | 说明 |
---|---|
sweet-alert-dialog | 一个带动画效果的自定义对话框样式 |
2.17 进度条
名称 | 说明 |
---|---|
NumberProgressBar | 个简约性感的数字进度条 |
CircularProgressView | 自定义view的方式实现的Material风格的加载提示控件,兼容任何版本。 |
2.18 列表
名称 | 说明 |
---|---|
StickyListHeaders | 拼音字母悬停,GroupName滑动到顶端时会固定不动直到另外一个GroupName到达顶端的ExpandListView,支持快速滑动,支持Android2.3及以上 |
--- | 下拉刷新上拉加载 |
--- | 侧滑功能 |
--- | 拖动排序 |
参考文章:
1、Android常用库之遇见你真舒心
2、15 个 Android 通用流行框架大全
3、Android开源项目第一篇——个性化控件(View)篇
4、2015最流行的Android组件、工具、框架大全
如果需要看源码请移步到我的博客直接点击连接即可:
http://blog.csdn.net/geofferysun/article/details/53008509
Android常见开源解决方案的更多相关文章
- (转)基于即时通信和LBS技术的位置感知服务(二):XMPP协议总结以及开源解决方案
在<基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案>一文中,提到尝试使用XMPP协议来实现即时通信.本文将对XMPP协议框架以及相关的C/S架构进行介绍,协议的底层实现不 ...
- 各种Android UI开源框架 开源库
各种Android UI开源框架 开源库 转 https://blog.csdn.net/zhangdi_gdk2016/article/details/84643668 自己总结的Android开源 ...
- Android 常见Crash Log汇总
一.BinderProxy@4479b390 is not valid; is your activity running? 原因分析: 因为使用了AsyncTask 异步线程在线程完成以后的onPo ...
- Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice
Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC),Guice非常小而且快.Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数 ...
- android 常见内存泄漏原因及解决办法
android常见内存泄漏主要有以下几类: 一.Handler 引起的内存泄漏. 在Android开发中,我们经常会使用Handler来控制主线程UI程序的界面变化,使用非常简单方便,但是稍不注意,很 ...
- 符合我公司GIS开源解决方案的探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这一周,我对GIS开源解决方案中涉及到的开源软件以及相关技术 ...
- 关于WebGIS开源解决方案的探讨
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 公司目前的多数项目采用的是ArcGIS产品+Oracle+W ...
- Atitti.java android反编译解决方案-----虚拟机方案
Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...
- [转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation
原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...
随机推荐
- HashTable 及应用
HashTable-散列表/哈希表,是根据关键字(key)而直接访问在内存存储位置的数据结构. 它通过一个关键值的函数将所需的数据映射到表中的位置来访问数据,这个映射函数叫做散列函数,存放记录的数组叫 ...
- 在thread 引用pthread_t 空指针的问题
错误 pthread_t *thr; pthread_create(thr,NULL,threadhander(),NULL); 正确 pthread_t thr; pthread_create(&a ...
- SelectObject
CPen* SelectObject( CPen* pPen ); CBrush* SelectObject( CBrush* pBrush ); virtual CFont* SelectObjec ...
- WDCP控制面板安装卸载
安装 安装源码 WDCP提供两种安装模式,一种是源码安装,一种是RPM包安装,众所周知,源码安装虽然安装时要比RPM包安装繁琐,但是使用上要节省内存.所以我这里主要介绍源码安装. 首先是下载安装源代码 ...
- flask开发restful api系列(8)-再谈项目结构
上一章,我们讲到,怎么用蓝图建造一个好的项目,今天我们继续深入.上一章中,我们所有的接口都写在view.py中,如果几十个,还稍微好管理一点,假如上百个,上千个,怎么找?所有接口堆在一起就显得杂乱无章 ...
- Swift—下标-备
看下面的示例代码是不是使用过: var studentList: String[] = ["张三","李四","王五"] studentL ...
- v8 源码获取与build
最近准备在工作之余研究下v8,下班时间鼓捣了2天,现在终于能下载,能gclient sync了. 刚开始的目的就是跑一个hello world,按照wiki上的例子来: https://github. ...
- 总结:man, info, hwclock, cal, type, which, dirname, basename, who, which, whatis, makewhatis, hash, tty
man, info, help, date, hwclock, cal, shutdown, reboot, halt, poweroff, type, cd, which, dirname, bas ...
- [LeetCode] 116. Populating Next Right Pointers in Each Node 解决思路
Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode *nex ...
- HDU-4857(拓扑排序)
Problem Description 糟糕的事情发生啦,现在大家都忙着逃命.但是逃命的通道很窄,大家只能排成一行. 现在有n个人,从1标号到n.同时有一些奇怪的约束条件,每个都形如:a必须在b之前. ...