原文: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常见开源解决方案

小山拉家常 2016-11-02 15:38

(一)系统框架

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常见开源解决方案的更多相关文章

  1. (转)基于即时通信和LBS技术的位置感知服务(二):XMPP协议总结以及开源解决方案

    在<基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案>一文中,提到尝试使用XMPP协议来实现即时通信.本文将对XMPP协议框架以及相关的C/S架构进行介绍,协议的底层实现不 ...

  2. 各种Android UI开源框架 开源库

    各种Android UI开源框架 开源库 转 https://blog.csdn.net/zhangdi_gdk2016/article/details/84643668 自己总结的Android开源 ...

  3. Android 常见Crash Log汇总

    一.BinderProxy@4479b390 is not valid; is your activity running? 原因分析: 因为使用了AsyncTask 异步线程在线程完成以后的onPo ...

  4. Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC),Guice非常小而且快.Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数 ...

  5. android 常见内存泄漏原因及解决办法

    android常见内存泄漏主要有以下几类: 一.Handler 引起的内存泄漏. 在Android开发中,我们经常会使用Handler来控制主线程UI程序的界面变化,使用非常简单方便,但是稍不注意,很 ...

  6. 符合我公司GIS开源解决方案的探讨

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这一周,我对GIS开源解决方案中涉及到的开源软件以及相关技术 ...

  7. 关于WebGIS开源解决方案的探讨

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 公司目前的多数项目采用的是ArcGIS产品+Oracle+W ...

  8. Atitti.java android反编译解决方案-----虚拟机方案

    Atitti.java android反编译解决方案-----虚拟机方案 哈哈,终极解决方案是虚拟机...c++也可以反编译为汇编代码,但无需担心,因为读懂汇编太麻烦..只要不能拿到c++源码就可.. ...

  9. [转]收集android上开源的酷炫的交互动画和视觉效果:Interactive-animation

    原文链接:http://www.open-open.com/lib/view/open1411443332703.html 描述:收集android上开源的酷炫的交互动画和视觉效果. 1.交互篇 2. ...

随机推荐

  1. 高放的c++学习笔记之重载运算与类型转换

    ▲基本概念 (1)重载运算符是具有特殊名字的函数,它们的名字又operator和其后要定义的运算符号共同构成.. (2)对于一个运算符号来说它或者是类的成员,或者至少含有一个类类型的参数. (3)我们 ...

  2. 晓说智能指针shared_ptr为何可以实现跨模块分配和释放内存

    最近做项目, 有个地方是外包人员写的, 其中有个函数,大致这样 void getInfo(std::shared_ptr<Info>& outInfo); 这个函数是一个dll(链 ...

  3. spring boot了解

    spring4倾向于基于注解的配置,强化的注解的功能,对比与spring3还是有很多的区别:spring boot对spring的各个组件功能管理,基于默认配置即可简单构建一个spring4的项目,对 ...

  4. Linux定时任务crontab命令使用详解

    1.crontab功能介绍: crontab的功能是在一定的时间间隔内定时执行一些命令. 2.crontab参数详解: 1 crontab -u //设定某个用户的cron服务,一般root用户在执行 ...

  5. MOOTOOLS和JQUERY如何同时存在,解决冲突

    mootools-jquery 今天在做EcStore前台的做效果时,由于Jquery的插件比较多,于是就使用了Jquery的插件,但是发现会引起Mootools的冲突. 于是猛找资料,终于找到了,现 ...

  6. JS函数定义与匿名函数的调用

    一.函数声明.函数表达式.匿名函数 函数声明:function fnName () {…};使用function关键字 声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName ...

  7. php发送post请求的三种方法示例

    本文分享下php发送post请求的三种方法与示例代码,分别使用curl.file_get_content.fsocket来实现post提交数据,大家做个参考. php发送post请求的三种方法,分别使 ...

  8. CentOS 网络设置修改 指定IP地址 DNS 网关(转)

    CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记)   环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 ...

  9. 使用开源word操作组件DocX的记录

    1.DocX简介 1.1 简介 DocX是一个在不需要安装word的情况下对word进行操作的开源轻量级.net组件,是由爱尔兰的一个叫Cathal Coffey的博士生开发出来的.DocX使得操作w ...

  10. php处理字符串格式的计算公式

    有时候我们对每一种产品都有一个提成公式,而这个计算提成的公式是以字符串格式存在表中的 当我们用这个计算公式时,他并不像我们写的:$a=2+3*5;这样简单的能计算出结果,而它是个字符串 所以,我们就必 ...