如果你是一名有经验的Android开发者,那么你一定积累了不少的工具类,这些工具类是帮助我们快速开发的基础。如果你是新手,那么有了这些辅助类,可以让你的项目做起来更加的简单。

下面介绍一个在GitHub中发现的强大的工具集开源项目,名字叫

android-common

项目GitHub地址:https://github.com/Trinea/android-common

做有了这个项目,你可以从中抽取部分你项目中可能会用到的类,来帮你解决很多的问题。

  主要包括的功能:

缓存(图片缓存、预取缓存、网络缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)及Android常用工具类(网络、下载、Android资源操作、shell、文件、Json、随机数、Collection等等)。
示例源码:TrineaAndroidDemo。
使        用:拉取代码导入IDE,右击你的工程->properties->Android,在library中选择TrineaAndroidCommon。
Api Guide:TrineaAndroidCommon API Guide。

示例APK:

     本地下载

一. 缓存类

主要特性:(1).使用简单 (2).轻松获取及预取取新图片 (3).包含二级缓存 (4).可选择多种缓存算法(FIFO、LIFO、LRU、MRU、LFU、MFU等13种)或自定义缓存算法 (5).可方便的保存及初始化恢复数据 (6).省流量性能佳(有且仅有一个线程获取图片) (7).支持http请求header设置及不同类型网络处理(8).可根据系统配置初始化缓存 (9).扩展性强 (10).支持等待队列 (11)包含map的大多数接口。

1. 图片缓存

使用见:图片缓存的使用
适用:获取图片较多且图片使用频繁的应用,包含二级缓存,如新浪微博、twitter、微信头像、美丽说、蘑菇街、花瓣、淘宝等等。效果图如下:

2. 图片SD卡缓存

使用见:图片SD卡缓存的使用
适用:应用中获取图片较多且图片较大的情况。需要二级缓存及ListView或GridView图片加载推荐使用上面的ImageCache。效果图如下:

3. 网络缓存

使用见:Android网络缓存
适用:网络获取内容不大的应用,尤其是api接口数据,如新浪微博、twitter的timeline、微信公众账号发送的内容等等。效果图如下:

4. 预取数据缓存

使用见:预取数据缓存
缓存类关系图如下:其中HttpCache为后续计划的http缓存

二. 公用的view

1. 下拉刷新及滚动到底部加载更多的Listview

使用: 下拉刷新及滚动到底部加载更多listview的使用
实现原理: http://trinea.iteye.com/blog/1562281。效果图如下:

2. 滑动一页(一个Item)的Gallery

使用及实现原理:滑动一页(一个Item)的Gallery的使用。效果图如下:
 

3. 滑动到底部或顶部响应的ScrollView

使用及实现原理: 滚动到底部或顶部响应的ScrollView使用。效果图如下:

三. 工具类

具体介绍可见:Android常用工具类
目前包括HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。

      1、HttpUtils


Http网络工具类,主要包括httpGet、httpPost以及http参数相关方法,以httpGet为例:
static HttpResponse httpGet(HttpRequest request)
static HttpResponse httpGet(java.lang.String httpUrl)
static String httpGetString(String httpUrl)
包含以上三个方法,默认使用gzip压缩,使用bufferedReader提高读取速度。
HttpRequest中可以设置url、timeout、userAgent等其他http参数
HttpResponse中可以获取返回内容、http响应码、http过期时间(Cache-Control的max-age和expires)等
前两个方法可以进行高级参数设置及丰富内容返回,第三个方法可以简单的传入url获取返回内容,httpPost类似。更详细的设置可以直接使用HttpURLConnection或apache的HttpClient。
源码可见HttpUtils.java,更多方法及更详细参数介绍可见HttpUtils Api Guide。

2、JSONUtils

JSONUtils工具类,可用于方便的向Json中读取和写入相关类型数据,如:
String getString(JSONObject jsonObject, String key, String defaultValue) 得到string类型value
String getString(String jsonData, String key, String defaultValue) 得到string类型value
表示从json中读取某个String类型key的值

getMap(JSONObject jsonObject, String key) 得到map
getMap(String jsonData, String key) 得到map
表示从json中读取某个Map类型key的值
源码可见JSONUtils.java,更多方法及更详细参数介绍可见JSONUtils Api Guide。

3、FileUtils

文件工具类,可用于读写文件及对文件进行操作。如:
readFile(String filePath) 读文件
writeFile(String filePath, String content, boolean append) 写文件
getFileSize(String path) 得到文件大小
deleteFile(String path) 删除文件
源码可见FileUtils.java,更多方法及更详细参数介绍可见FileUtils Api Guide。

4、ResourceUtils

Android Resource工具类,可用于从android资源目录的raw和assets目录读取内容,如:
geFileFromAssets(Context context, String fileName) 得到assets目录下某个文件内容
geFileFromRaw(Context context, int resId) 得到raw目录下某个文件内容
源码可见ResourceUtils.java,更多方法及更详细参数介绍可见ResourceUtils Api Guide。

5、StringUtils

String工具类,可用于常见字符串操作,如:
isEmpty(String str) 判断字符串是否为空或长度为0
isBlank(String str) 判断字符串是否为空或长度为0 或由空格组成
utf8Encode(String str) 以utf-8格式编码
capitalizeFirstLetter(String str) 首字母大写
源码可见StringUtils.java,更多方法及更详细参数介绍可见StringUtils Api Guide。

6. Android系统下载管理DownloadManager使用

使用示例:Android系统下载管理DownloadManager功能介绍及使用示例
功能扩展:Android下载管理DownloadManager功能扩展和bug修改 效果图如下:

7. Android APK root权限静默安装

使用示例:Android APK root权限静默安装

8. Android root权限

直接调用ShellUtils.execCommand方法

9. 图片工具类

(1)Drawable、Bitmap、byte数组相互转换; (2)根据url获得InputStream、Drawable、Bitmap
图片工具类,可用于Bitmap, byte array, Drawable之间进行转换以及图片缩放,目前功能薄弱,后面会进行增强。如:
bitmapToDrawable(Bitmap b) bimap转换为drawable
drawableToBitmap(Drawable d) drawable转换为bitmap
drawableToByte(Drawable d) drawable转换为byte
scaleImage(Bitmap org, float scaleWidth, float scaleHeight) 缩放图片
源码可见ImageUtils.java,更多方法及更详细参数介绍可见ImageUtils Api Guide。

关于项目中常用的工具类,就先介绍这么多,如果在以后的工作中碰到新的工具类,在另行补充,或者各位读者有更好的工具类也不妨分享出来,大家一同进步!

Android项目中常用的工具类集(史上最全整理)相关推荐

  1. java 项目中常用的工具类总结

    1.文件 1.根据图片的链接,下载图片 package com.lingxu.module.BigDataJoinMessage.util;import java.io.FileOutputStrea ...

  2. Java常用工具类整合(史上最全)

    JSON转换工具 package com.taotao.utils;import java.util.List;import com.fasterxml.jackson.core.JsonProces ...

  3. C#200个基础工具类,史上最全快收藏下载

    场景 包含工具类部分如下: CSV文件转换;DataTable转实体;Excel操作类;FTP操作类;Html操作类;IP辅助类;JSON操作;JS操作;URL的操作类;XML操作类;处理多媒体的公共 ...

  4. Java 验证表单工具类,史上最全

    Java 验证表彰工具类,包含各种验证如邮箱,密码,整数,等等,全的让你想不到 package com.wiker.utils; import java.util.regex.*; /**** @ve ...

  5. Android 项目中常用到的第三方组件

    项目中常用到的第三方组件 1 社会化分享 ShareSDK-Core-2.5.9.jar ShareSDK-QQ-2.5.9.jar ShareSDK-QZone-2.5.9.jar ShareSDK ...

  6. java中常用的工具类

    1. 常用零散工具类 1.1[DateUtil.java]日期处理的工具类 /*** 时间日期处理工具* String -> Date* Date -> String* 以及生成含有日期的 ...

  7. java并发编程中常用的工具类 Executor

    /***************************************************  * TODO: description .  * @author: gao_chun  * ...

  8. Netflix如何在上万台机器中管理微服务?(史上最全)

    疯狂创客圈为小伙伴奉上以下珍贵的学习资源: 疯狂创客圈 经典图书 : 极致经典 < Java 高并发 三部曲 > 面试必备 + 大厂必备 + 涨薪必备 疯狂创客圈 经典图书 : <N ...

  9. android 开发工具类,Android中常用开发工具类—持续更新...

    一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...

最新文章

  1. Linux下安装JDK和Eclipse
  2. matlab中ismember_相当于Matlab“ismember”in numpy(Python)?
  3. CRUD之delete操作
  4. 网站内页权重高于首页的原因及解决方法攻略总结!
  5. python-os模块
  6. 聚类 高维聚类 聚类评估标准 EM模型聚类
  7. babel import语法 js_Babel 的理解
  8. 递归求和的复习-计算m~n整数和
  9. C# Winform 窗体美化(八、Icon)
  10. 与nfs相关的计算机服务设置,在服务器端配置nfs
  11. wamp xampp mysql端口冲突_解决xampp端口冲突
  12. go 对象json转map
  13. Windows Server 2016忘记密码破解方法
  14. 九种NPP\GPP数据集介绍和下载
  15. 哈希表、哈希桶(C++实现)
  16. android 卸载预装软件,手机自带软件怎么卸载?安卓预装软件卸载方法
  17. 转:让老板头疼的90后,管不得?
  18. HCIP-Datacom 分解实验1:访问控制列表
  19. 排线颜色及排序视觉检测系统
  20. 云原生时代,企业如何选取研发模式,并通过云效流水线落地

热门文章

  1. java appkey_如何使用Microsoft Graph API获取AppKey
  2. 数值选择器之mobiscroll的免费使用
  3. “带头大哥现象”看市场监管
  4. 数据可视化图表ECharts视频教程
  5. 算法衡量auc_优化AUC两遍学习算法
  6. html手机编辑器内含css,打造属于自己的 HTML/CSS/JavaScript 实时编辑器
  7. [译] 代码中添加注释之好坏丑
  8. STM32烧录错误【PDSC: Sequence Execution failed error-Debug access failed - cannot read address 0xE00FFFE】
  9. 迷宫问题-DFS-BFS
  10. js判断对象属性是否存在之深入理解