您的位置:首页 > 理论基础 > 计算机网络

Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库

2015-07-06 15:55 1121 查看

一、依赖注入DI

通过依赖注入减少View、服务、资源简化初始化,事件绑定等重复繁琐工作

AndroidAnnotations(Code Diet)

android快速开发框架

项目地址:https://github.com/excilys/androidannotations

文档介绍:https://github.com/excilys/androidannotations/wiki

官网网址:http://androidannotations.org/

特点:(1) 依赖注入:包括view,extras,系统服务,资源等等

(2) 简单的线程模型,通过annotation表示方法运行在ui线程还是后台线程

(3) 事件绑定:通过annotation表示view的响应事件,不用在写内部类

(4) REST客户端:定义客户端接口,自动生成REST请求的实现

(5) 没有你想象的复杂:AndroidAnnotations只是在在编译时生成相应子类

(6) 不影响应用性能:仅50kb,在编译时完成,不会对运行时有性能影响。

PS:与roboguice的比较:roboguice通过运行时读取annotations进行反射,所以可能影响应用性能,而AndroidAnnotations在编译时生成子类,所以对性能没有影响

roboguice

帮你处理了很多代码异常,利用annotation使得更少的代码完成项目

项目地址:https://github.com/roboguice/roboguice

文档介绍:https://github.com/roboguice/roboguice/wiki

butterknife

利用annotation帮你快速完成View的初始化,减少代码

项目地址:https://github.com/JakeWharton/butterknife

文档介绍:http://jakewharton.github.io/butterknife/

Dagger

依赖注入,适用于Android和Java

项目地址:https://github.com/square/dagger

文档介绍:http://square.github.io/dagger/





二、图片缓存

Android-Universal-Image-Loader

图片缓存,目前使用最广泛的图片缓存,支持主流图片缓存的绝大多数特性。

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

Demo地址:https://github.com/Trinea/TrineaDownload/blob/master/universal-imageloader-demo.apk?raw=true

文档介绍:http://www.intexsoft.com/blog/item/74-universal-image-loader-part-3.html

picasso

square开源的图片缓存

项目地址:https://github.com/square/picasso

文档介绍:http://square.github.io/picasso/

特点:(1)可以自动检测adapter的重用并取消之前的下载

(2)图片变换

(3)可以加载本地资源

(4)可以设置占位资源

(5)支持debug模式

ImageCache

图片缓存,包含内存和Sdcard缓存

项目地址:https://github.com/Trinea/AndroidCommon

Demo地址:https://play.google.com/store/apps/details?id=cn.trinea.android.demo

文档介绍:http://www.trinea.cn/android/android-imagecache/

特点:(1)支持预取新图片,支持等待队列

(2)包含二级缓存,可自定义文件名保存规则

(3)可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法

(4)可方便的保存及初始化恢复数据

(5)支持不同类型网络处理

(6)可根据系统配置初始化缓存等

Cube ImageLoader

阿里巴巴一淘使用的图片加载,综合了Android-Universal-Image-Loader 和 square 等组件优点,简单易用,良好的中文文档支持

项目地址:https://github.com/etao-open-source/cube-sdk

Demo地址:https://github.com/liaohuqiu/cube-sdk/raw/master/cube-sdk-sample.apk

效果图:

文档介绍:http://cube-sdk.liaohuqiu.net/

fresco

一款强大的图片缓存工具,由 Facebook开发

项目地址:https://github.com/facebook/fresco

文档介绍:http://frescolib.org/

特点:(1) 两个内存缓存加上磁盘缓存构成了三级缓存

(2) 支持流式,可以类似网页上模糊渐进式显示图片

(3) 对多帧动画图片支持更好,如 Gif、WebP

(4) 更多样的显示,如圆角、进度条、点击重试、自定义对焦点

(5) 更多样的加载,如支持 EXIF、全面支持 WebP

(6) 支持 Android 2.3+





三、网络相关

Asynchronous Http Client for Android

Android异步Http请求

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

文档介绍:http://loopj.com/android-async-http/

特点:(1) 在匿名回调中处理请求结果

(2) 在UI线程外进行http请求

(3) 文件断点上传

(4) 智能重试

(5) 默认gzip压缩

(6) 支持解析成Json格式

(7) 可将Cookies持久化到SharedPreferences

android-query

异步加载,更少代码完成Android加载

项目地址:https://github.com/androidquery/androidquery
https://code.google.com/p/android-query/

Demo地址:https://play.google.com/store/apps/details?id=com.androidquery

文档介绍:https://code.google.com/p/android-query/#Why_AQuery?

特点:https://code.google.com/p/android-query/#Why_AQuery?

Async Http Client

Java异步Http请求

项目地址:https://github.com/AsyncHttpClient/async-http-client

文档介绍:http://sonatype.github.io/async-http-client/

Ion

支持图片、json、http post等异步请求

项目地址:https://github.com/koush/ion

文档介绍:https://github.com/koush/ion#more-examples

HttpCache

Http缓存

项目地址:https://github.com/Trinea/AndroidCommon

Demo地址:https://play.google.com/store/apps/details?id=cn.trinea.android.demo

文档介绍:http://www.trinea.cn/android/android-http-cache

特点是:(1) 根据cache-control、expires缓存http请求

(2) 支持同步、异步Http请求

(3) 在匿名回调中处理请求结果

(4) 在UI线程外进行http请求

(5) 默认gzip压缩

Http Request

项目地址:https://github.com/kevinsawicki/http-request

文档介绍:https://github.com/kevinsawicki/http-request#examples

okhttp

square开源的http工具类

项目地址:https://github.com/square/okhttp

文档介绍:http://square.github.io/okhttp/

特点:(1) 支持SPDY( http://zh.wikipedia.org/wiki/SPDY )协议。SPDY协议是Google开发的基于传输控制协议的应用层协议,通过压缩,多路复用(一个TCP链接传送网页和图片等资源)和优先级来缩短加载时间。

(2) 如果SPDY不可用,利用连接池减少请求延迟

(3) Gzip压缩

(4) Response缓存减少不必要的请求

Retrofit

RESTFUL API设计

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

文档介绍:http://square.github.io/retrofit/

RoboSpice

Android异步网络请求工具,支持缓存、REST等等

项目地址:https://github.com/stephanenicolas/robospice

Demo地址:https://github.com/stephanenicolas/RoboDemo/downloads

Droppy

支持多种样式的下拉菜单

项目地址:https://github.com/shehabic/Droppy





四、数据库 orm工具包

orm的db工具类,简化建表、查询、更新、插入、事务、索引的操作

greenDAO

Android Sqlite orm的db工具类

项目地址:https://github.com/greenrobot/greenDAO

文档介绍:http://greendao-orm.com/documentation/

官网网址:http://greendao-orm.com/

特点:(1) 性能佳

(2) 简单易用的API

(3) 内存小好小

(4) 库大小小

ActiveAndroid

Android Sqlite orm的db工具类

项目地址:https://github.com/pardom/ActiveAndroid

文档介绍:https://github.com/pardom/ActiveAndroid/wiki/_pages

Sprinkles

Android Sqlite orm的db工具类,比较显著的特点就是配合 https://github.com/square/retrofit 能保存从服务器获取的数据

项目地址:https://github.com/emilsjolander/sprinkles

文档介绍:http://emilsjolander.github.io/blog/2013/12/18/android-with-sprinkles/

Realm

移动端的数据库,适用于 Phone、Tablet、Wearable,支持 ORM,线程安全、支持连表及数据库加密,比 SQLite 性能更好

项目地址:https://github.com/realm/realm-java

文档介绍:http://realm.io/docs/java/0.72.0/

ormlite-android

项目地址:https://github.com/j256/ormlite-android

文档介绍:http://ormlite.com/sqlite_java_android_orm.shtml

Schematic

根据SQLite生成ContentProvider

项目地址:https://github.com/SimonVT/schematic





DBFlow

Android SQLite ORM工具库。综合了 Active Android, Schematic, Ollie,Sprinkles等库的优点;通过注解实现,性能好;能生成ContentProvider。

项目地址:https://github.com/Raizlabs/DBFlow

文档介绍:https://github.com/Raizlabs/DBFlow#usage-docs

五、Android公共库

Guava

Google的基于java1.6的类库集合的扩展项目,包括collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O等等. 这些高质量的API可以使你的JAVa代码更加优雅,更加简洁

项目地址:https://code.google.com/p/guava-libraries/

文档介绍:https://code.google.com/p/guava-libraries/wiki/GuavaExplained

Volley

Google提供的网络通信库,使得网络请求更简单、更快速

项目地址:https://android.googlesource.com/platform/frameworks/volley

文档介绍:http://commondatastorage.googleapis.com/io-2013/presentations/110%20-%20Volley-%20Easy,%20Fast%20Networking%20for%20Android.pdf

AndroidCommon

Android公共库

项目地址:https://github.com/Trinea/AndroidCommon

Demo地址:https://play.google.com/store/apps/details?id=cn.trinea.android.demo

文档介绍:http://www.trinea.cn/android/android-common-lib/

包括:(1)缓存(图片缓存、预取缓存、网络缓存)

(2) 公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)

(3) Android常用工具类(网络、下载、Android资源操作、shell、文件、Json、随机数、Collection等等)

shipfaster

整合了Dagger Otto Retrofit Robolectric Picasso OkHttp,方便快速开发

项目地址:https://github.com/pyricau/shipfaster

CleanAndroidCode

整合了Dagger Otto AndroidAnnotations,方便快速开发

项目地址:https://github.com/pyricau/CleanAndroidCode

xUtils

基于Afinal,包含DbUtils、ViewUtils、HttpUtils、BitmapUtils四大模块,可用于快速开发

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

Afinal

Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据

项目地址:https://github.com/yangfuhai/afinal

官网网址:http://www.afinal.org

UltimateAndroid

UltimateAndroid是一个快速开发Android应用的框架,框架目前主要包含的功能有View Injection,ORM,异步网络请求和图片加载,自动化脚本测试,磁盘LRU等功能.同时提供了类似于TripleDes、Webview快速设置、Md5处理、String处理,Https处理等常用工具类,还有超过100多种UI控件效果。

项目地址:https://github.com/cymcsg/UltimateAndroid

官网网址:http://blog.marshalchen.com/UltimateAndroid/





SAF

SAF(Simple Android Framework)是一个简单的android框架,它为开发Android app提供了基础性组件。

项目地址:https://github.com/fengzhizi715/SAF

官网网址:http://www.salesuite.cn/

包括:(1)Event Bus(事件总线)

(2) Rest Client(http的框架)

(3) Image Cache(图片缓存)

(4) Dependency Injection(依赖注入)

(5) Sqlite ORM(sqlite的orm)

(6) Router(Activity、Fragment的Router)

(7) Utils(各种常用的工具类)

Barber

Custom View 神器。通过简单的注解帮助你大大减少 Custom View 中的代码量。由于和 ButterKnife 一样使用了 Annotation Proccessor ,所以对程序性能没有影响。

项目地址:https://github.com/hzsweers/barber

device-year-class

A library that analyzes an Android device's specifications and calculates which year the device would be considered "high end”.(facebook开发的检测手机主流配置工具)

项目地址:https://github.com/facebook/device-year-class
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: