Android开发常用流行开源框架记录

发掘了一些Android常用开源框架,记录并分享,希望能在开发当中帮到大家。

缓存:

名称:DiskLruCache

描述:Java实现基于LRU的硬盘缓存

源码地址(可能需要翻墙)

作者:guolin

相关博客:Android DiskLruCache完全解析,硬盘缓存的最佳方案

图片加载:

Android-Universal-Image-Loader

描述:一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。所以,如果你的程序里需要这个功能的话,那么不妨试试它。因为已经封装好了一些类和方法。我们 可以直接拿来用了。而不用重复去写了。其实,写一个这方面的程序还是比较麻烦的,要考虑多线程,缓存,内存溢出等很多方面。但是,你也可以参考这个例子来自己写出更好的程序

github地址:https://github.com/nostra13/Android-Universal-Image-Loader

英文良好的可以直接阅读git上面的开源文档。

相关博客:Android-Universal-Image-Loader 图片异步加载类库的使用(超详细配置)

Picasso

描述:picasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能。

官方地址:http://square.github.io/picasso/

相关博客:Android图片下载缓存库picasso解析

作者:xu_fu

Fresco

描述:Fresco 是一个强大的图片加载组件。

Fresco 中设计有一个叫做 image pipeline 的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。

Fresco 中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。

Fresco 支持 Android2.3(API level 9) 及其以上系统。

地址:http://www.fresco-cn.org/ (中文详细文档)

Glide

描述:Google推荐的图片加载库,Glide和Picasso有90%的相似度,准确的说,就是Picasso的克隆版本。但是在细节上还是有不少区别的。

英文文档:https://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en

相关博客:Google推荐的图片加载库Glide介绍

网络请求:

Android-Async-Http

描述:Android异步请求库

github地址:https://github.com/loopj/android-async-http

相关博客:快速Android开发系列网络篇之Android-Async-Http

AndroidAsync

描述:AndroidAsync 是一个基于nio的异步socket ,http(客户端服务器端),websocket,socket.io库,AndroidAsync 是一个底层的网络协议库,如果你想要一个容易使用,高级的,http请求库,请使用Ion(它是基于AndroidAsync 的),正常来说开发者更倾向于使用 Ion。

如果你需要一个未被封装的Android的raw Socket, HTTP client/server, WebSocket, and Socket.IO, AndroidAsync 正适合你。

github地址:https://github.com/koush/AndroidAsync

相关博客:AndroidAsync :基于nio的异步通信库

Okhttp

相关博客:Android OkHttp完全解析 是时候来了解OkHttp了

作者:鸿洋_

Retrofit

相关博客:Android应用架构之Retrofit使用

作者:喝醉的毛毛虫

github地址:https://github.com/square/retrofit

volley

描述:2013年Google I/O大会上推出了一个新的网络通信框架

相关博客:Android Volley完全解析(一),初识Volley的基本用法

Android Volley完全解析(二),使用Volley加载网络图片

作者:guolin

xutils

github地址:https://github.com/wyouflf/xUtils

xutils3.0

github地址:https://github.com/wyouflf/xUtils3

github都是中文文档

ThinkAndroid

主要有以下模块:

(1) MVC模块:实现视图与模型的分离。

(2) ioc模块:android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。

(3) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。

(4) http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。

(5) 缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置

(6) 图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。

(7) 配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。

(8) 日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印

(9) 下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。

(10) 网络状态检测模块:当网络状态改变时,对其进行检

github地址:https://github.com/white-cat/ThinkAndroid

LoonAndroid

主要有以下模块:

(1) 自动注入框架(只需要继承框架内的application既可)

(2) 图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)

(3) 网络请求模块(继承了基本上现在所有的http请求)

(4) eventbus(集成一个开源的框架)

(5) 验证框架(集成开源框架)

(6) json解析(支持解析成集合或者对象)

(7) 数据库(不知道是哪位写的 忘记了)

(8) 多线程断点下载(自动判断是否支持多线程,判断是否是重定向)

(9) 自动更新模块

(10) 一系列工具类

github地址:https://github.com/gdpancheng/LoonAndroid

网络解析:

Gson

描述:一个Java序列化/反序列化库,可以将Json和Java对象互相转换

github地址:https://github.com/google/gson

相关博客:Google Gson 使用简介

作者:Forhappy && Haippy

jackson

描述:Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

相关博客:Jackson 框架,轻易转换JSON

作者:hoojo

fastjson

描述:阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:

速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)

github地址:https://github.com/alibaba/fastjson

相关博客:JSON 之FastJson解析

HtmlPaser

描述:一种用来解析单个独立HTML或嵌套HTML的方式

相关博客:HtmlParser基础教程

作者:jediael_lu

jsoup

描述:一个以最好的DOM,css和JQuery解析html库

中文文档:jsoup Cookbook(中文版)

数据库:

OrmLite

描述:JDBC和Android的轻量级ORM java包, 在android中使用原始的SQLiteOpenHelper操作数据库显得过于繁琐,而且对于不是很熟悉数据库操作的人来说比较容易出现一些隐藏的漏洞。所以一般都会想到使用相关的ORMLite框架完成开发,类似于J2EE开发中的Hibernate和Mybatis等等,在提高开发效率的同时,也可以有效避免数据库操作对应用带来的潜在影响。

官方地址:http://ormlite.com/

相关博客:Android快速开发系列 ORMLite 框架最佳实践

作者:鸿洋_

Sugar

描述:提供一种非常简便的方式来操作 Android 数据库。

一个简单,简洁,干净的一体化进程以最小的配置。

通过反射自动命名表和列。

支持不同模式版本之间迁移。

github:https://github.com/satyan/sugar

greenDAO

描述:greenDAO是一个对象关系映射(ORM)的框架,能够提供一个接口通过操作对象的方式去操作关系型数据库,它能够让你操作数据库时更简单、更方便。

github:https://github.com/greenrobot/greenDAO.

相关博客:Android 操作数据库的框架——greenDAO的学习

作者:benhuo931115的博客

Activeandroid

描述:ActiveAndroid是采用活动记录(Active Record)架构模式设计的适用于Android平台的轻量级ORM架构。

github:https://github.com/pardom/ActiveAndroid

相关博客:Activeandroid的使用

SQLBrite

描述:SQLite显然是复杂数据保存与查询的首选方案。经过设计与讨论之后,我们构建了一个简化应用SQLite操作的完整方案的原型。这个原型的特性包括诸如自动创建与迁移表格,行的对象映射、类型安全的查询,以及在数据变更时的通知。

github:https://github.com/square/sqlbrite

相关博客:SQLBrite:一个响应式的数据查询框架

Realm for Android

描述:如果你关注安卓开发的最新趋势,你可能已经听说过Realm。Realm是一个可以替代SQLite以及ORMlibraries的轻量级数据库。相比SQLite,Realm更快并且具有很多现代数据库的特性,比如支持JSON,流式api,数据变更通知,以及加密支持,这些都为安卓开发者带来了方便。

相关博客:Realm for Android快速入门教程

依赖注入

ButterKnife

描述:这个开源库可以让我们从大量的findViewById()和setonclicktListener()解放出来,其对性能的影响微乎其微(查看过Butter Knife的源码,其自定义注解的实现都是限定为RetentionPolicy.CLASS,也就是到编译出.class文件为止有效,在运行时不额外消耗性能,其是通过java注解自动生成java代码的形式来完成工作),其也有一个明显的缺点,那就是代码的可读性差一些,但了解了之后,上手也很快

github:https://github.com/JakeWharton/butterknife

相关博客:推荐一个Android开发懒人库 – ButterKnife

Dagger2

描述: 一个Android和java快速依赖注射器

相关博客:

详解Dagger2

Dagger2使用

Android Anotations

描述:快速Android开发,易于维护

相关博客:

Android Support Annotations 使用详解

使用AndroidAnnotations框架写Android

RoboGuice

描述 :Android平台的Google Guice

github:https://github.com/roboguice/roboguice/wiki

相关博客:android roboguice 笔记

图表

WilliamChart

描述:创建图表的Android库,WilliamChart 是一个为安卓项目提供图表控件的开源库,他实现了数字的可视化,

相关博客:WilliamChart图表库

github :https://github.com/diogobernardino/WilliamChart

Hellocharts

Hellocharts-android 是一个能够兼容 API 8+(Android 2.2)的安卓图表库,十分好用,也适用于 API 14+(Android 4.0)。

github:https://github.com/lecho/hellocharts-android

相关博客:hellocharts-android开源图表库(效果非常好)

MPAndroidChart

描述:一个可以拖动缩放的图表库,包含曲线图、直方图、饼状图,其中直方图支持3d效果。

该库的可扩展性强,代码相对规范,最近一次更新有很大改进,如果不喜欢AChartEngine的过于复杂可以考虑在此库的基础上开发自己的图表类。

github地址:https://github.com/PhilJay/MPAndroidChart

相关博客:android开源图表库MPAndroidChart(曲线图、直方图、饼状图)

后台处理

Tape

描述:快如闪电,事务性的,基于文件的Android和java FIFO。

github地址:https://github.com/square/tape

Android Priority Job Queue

Android Priority Job Queue是一款专门为Android平台编写,实现了Job Queue的后台任务队列类库,能够轻松的在后台执行定时任务,提高用户体验和应用的稳定性。

github:https://github.com/path/android-priority-jobqueue

相关博客:Android Priority Jobqueue:Android后台任务队列类库

事件总线

AndroidEventBus

相关博客:Android事件总线 ( AndroidEventBus ) 框架发布

AndroidEventBus是一个Android平台轻量级的事件总线框架, 它简化了Activity、Fragment、Service等组件之间的交互,很大程度上降低了它们之间的耦合,使得我们的代码更加简洁,耦合性更低,提升我们的代码质量。

Otto

Otto框架的主要功能是帮助我们来降低多个类之间的耦合度的(解耦)。

譬如:一个类A和另一个类B之间,如果A要操作B中的某个方法。

官方网站:http://square.github.io/otto/

响应式编程

RxJava

描述:JVM上的响应式扩展

相关博客:深入浅出RxJava(一:基础篇)

RxAndroid

描述:Android 上的响应式扩展,在RxJava基础上添加了Android的线程调度,

github:https://github.com/ReactiveX/RxAndroid

相关博客:Android开发学习之路–RxAndroid之初体验

RxBinding

描述:rxbinding是一个开源项目,可以实现数据层与View层的绑定,当数据发生变化,View会自动更新UI。还有其他功能非常强大

github地址:https://github.com/ogaclejapan/RxBinding

Agera

描述:Agera是用于Android开发者更方便地开发函数,异步,响应式程序的框架,它要求Android SDK版本9以上。

相关博客:初识Agera(一)——基本概念和原理的介绍

Log框架

Logger

android是一个简单、漂亮、功能强大的Android日志程序。

github:https://github.com/orhanobut/logger

相关博客:一个简单、漂亮、功能强大的Android日志程序:logger

hugo

用于打印函数信息及执行时间的工具,仅在debug模式生效

github地址:https://github.com/JakeWharton/hugo

Timber

相关博客:Android调试自测工具01 (Hugo、Timber、Scalpel)

测试框架:

Mockito

相关博客:Android-使用Mockito、Robolectric和RxJava及Retrofit进行单元测试

Robotium

robotium 是 Android 平台上类似 Selenium 的集成测试工具。有JUnit基础的开发者,还是非常容易上手的。

相关文章:Android 自动化测试 Robotium

调试框架:

Stetho

相关博客:OkHttp+Stetho+Chrome调试android网络部分(原创)

github:https://github.com/facebook/stetho

性能框架

LeakCanary

描述:内存泄漏检测工具

相关博客:LeakCanary:检测所有的内存泄漏

ACRA

描述:作为程序,知道程序的错误才能更快的解决问题,优化我们的程序,所以程序具有自动报告错误的功能是很有必要的。ACRA是一个很有用的开源项目,全称为Application Crash Report for Android ,它包括了很多可配置的选项ReportFields

相关博客:Android程序出错报告—ACRA的用法

基于开源项目acra实现的定制化Android crash上报库及后台系统

时间: 2024-12-12 11:48:15

Android开发常用流行开源框架记录的相关文章

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

iOS开发-常用第三方开源框架介绍

iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下G

Android 开发中使用开源框架 DataDroid

DataDroid 框架简介 DataDroid是基于Android平台的一个开源的开发库,基于Android 的RESTful封装用来简化Android应用中的数据管理.该开源库的下载地址为 CSDN资源. DataDriod 在Android项目中的使用 从github上clone下来的源代码中就有很多种类型的数据管理的demo,这里就简单得描述一下通过DataDroid的工作流程进行一个打开摄像头的过程.想看下面项目的源码的可以去我的github查看,地址:Github 1.以单例模式建立

(转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下Github里面流行的iOS库. 首先

iOS开发-常用第三方开源框架

特别说明:有些链接是没有用的,如需下载请在github中搜索即可. 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github

iOS开发常用第三方开源框架 持续更新中...

键盘管理TPKeyboardAvoidingIQKeyboardManager 弹窗HUDMBProgressHUDSVProgressHUDUIView+Toast UIView显示提示CategoryToast-Swift Tosat-swift版本SnailPopupController 快速弹出自定义视图,支持自定义蒙版样式/过渡效果/手势拖动等 上下拉刷新MJRefreshSVPullToRefresh JSON解析MJExtension 网络请求AFNetworkingAlamofi

[转载]Android开发常用调试技术记录

ANDROID 调试技术: 1)Ps 指令 ls –l /proc/27/ cat /proc/27/cmdline       #cmdline文件表示了这个进程所在的命令行. cat /proc/27/status      #status 文件表明了获知这个进程的相关信息. #stat包含更多信息,但较难读. cat /proc/27/task      #task 文件表明了进程信息. 2)vmstat 查看虚拟内存统计信息 3)top 统计CPU的消耗情况 4)dumpstat  du

iOS:开发常用GitHub开源项目(持续更新)

IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire cnoon Swift简洁网络请求库 SBJson stig Json解析引擎 JSONKit johnezang Json解析引擎 MJExtension CoderMJLee 字典转模型框架 KissXML robbiehanson XML解析 RNCryptor rnapier AES加密 F

Android开发技术周报183学习记录

Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了轻微的耗时操作,导致ui线程卡顿. 2.layout过于复杂,无法在16ms完成渲染.使用RelativeLayout替换LinearLayout,说是可以减少布局层次,然而,现在不再建议使用RelativeLayout,因为ConstraintLayout才是一个更高性能的消灭布局层级的神器.Co