Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库
一、依赖注入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) RESTclient:定义client接口,自己主动生成REST请求的实现
(5) 没有你想象的复杂:AndroidAnnotations仅仅是在在编译时生成对应子类
(6) 不影响应用性能:仅50kb。在编译时完毕,不会对执行时有性能影响。
PS:与roboguice的比較:roboguice通过执行时读取annotations进行反射,所以可能影响应用性能。而AndroidAnnotations在编译时生成子类。所以对性能没有影响roboguice
帮你处理了非常多代码异常,利用annotation使得更少的代码完毕项目
项目地址:https://github.com/roboguice/roboguice
文档介绍:https://github.com/roboguice/roboguice/wikibutterknife
利用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.htmlpicasso
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地址:id=cn.trinea.android.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持久化到SharedPreferencesandroid-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?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-examplesHttpCache
Http缓存
项目地址:https://github.com/Trinea/AndroidCommon
Demo地址:id=cn.trinea.android.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#examplesokhttp
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/downloadsDroppy
支持多种样式的下拉菜单
项目地址: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/_pagesSprinkles
Android Sqlite orm的db工具类,比較显著的特点就是配合 https://github.com/square/retrofit 能保存从server获取的数据
项目地址: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.shtmlSchematic
依据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/GuavaExplainedVolley
Google提供的网络通信库,使得网络请求更简单、更高速
项目地址:https://android.googlesource.com/platform/frameworks/volley
文档介绍:http://commondatastorage.googleapis.com/io-2013/presentations/110%20-%20Volley-%20Easy,%20Fast%20Networking%20for%20Android.pdfAndroidCommon
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/shipfasterCleanAndroidCode
整合了Dagger Otto AndroidAnnotations,方便高速开发
项目地址:https://github.com/pyricau/CleanAndroidCodexUtils
基于Afinal。包括DbUtils、ViewUtils、HttpUtils、BitmapUtils四大模块,可用于高速开发
项目地址:https://github.com/wyouflf/xUtilsAfinal
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.orgUltimateAndroid
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/barberdevice-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
Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库的更多相关文章
- Android开源项目发现--- 效率开发工具篇(持续更新)
1.Json2Java 根据JSon数据自动生成对应的Java实体类,还支持Parcel.Gson Annotations对应代码自动生成.期待后续的提取父类以及多url构建整个工程的功能 项目地址: ...
- [转]Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多 ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇——开发工具库篇,**主要介绍常用的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容 ...
- GitHub 优秀的 Android 开源项目(转)
今天查找资源时看到的一篇文章,总结了很多实用资源,十分感谢原作者分享. 转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介 ...
- GitHub 优秀的 Android 开源项目
转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...
- GitHub 优秀Android 开源项目
阅读目录 1.Xabber客户端 2.oschina客户端 3.手机安全管家 4.星座连萌 5.玲闹铃 6.魔乐盒 7.PWP日历 8.Apollo音乐播放器 9.夏普名片识别 10.高仿人人网 11 ...
- 【转】GitHub 优秀的 Android 开源项目
转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...
- [转]GitHub 优秀的 Android 开源项目
GitHub 优秀的 Android 开源项目 主要介绍那些不错个性化的View,包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageV ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
随机推荐
- android自定义控件---添加表情
android自定义控件---添加表情 一.定义layout文件,图片不提供了 <?xml version="1.0" encoding="utf-8"? ...
- android绑定Service失败原因
今天抄一个代码,学习Service,中间Service的绑定一直是失败的. bindService返回false 上网查询的话都是一些,比如说TabHost的问题 发现和自己的问题不一样. 最后想了想 ...
- MFC网页访问的实现示例
本示例使用MFC 类CInternetSession 建立连接,使用 CHttpFile读取内容. 首先,建立一个MFC对话框项目,界面如下: 1. 添加头文件: #include <afxin ...
- 使用 Spring RestTemplate 调用 rest 服务时自定义请求头(custom HTTP headers)
在 Spring 3.0 中可以通过 HttpEntity 对象自定义请求头信息,如: private static final String APPLICATION_PDF = "app ...
- sql: sybase与oracle中insert into select和select into的用法
1. sybase与oracle中insert into select和select into的用法 http://wjlvivid.iteye.com/blog/1921679 Sybase 一.首 ...
- javascript 中对this关键字的一些理解
var self = this 可能会觉得奇怪为什么我会定义一个_self的变量, 因为在js里,this不用对于其他的对象语言,他的解析过程与运行过程中this会改变的.这里简单说说js里this的 ...
- struts2 <s:iterator/>怎样取得循环的索引
<s:iterator value="list" id="user" status="L"> <s:property va ...
- php数据库操作类
config.db.php <?php $db_config["hostname"] = "localhost"; //服务器地址 $db_config[ ...
- Android的StrictMode
转自:http://blog.csdn.net/tonyfield/article/details/8238251 Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Goo ...
- 大豆生物柴油驱动的大巴斯(Bus)
请看下图: 这是大豆生物柴油(Soybean biodiesel)驱动的大巴斯(Bus)的外观,感觉非常有劲. 回想历史,1893年,德国学者Rudolf Diesel(1858-1913)发明了一种 ...