主要介绍总结的Android开发中经常使用的工具类,大部分相同适用于Java。

眼下包含HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、 PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、 ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、 ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。

The English version of this article see:Android Common Utils

全部代码都在TrineaAndroidCommon@Github中,欢迎Star或Fork^_*。除这些工具类外此项目还包含缓存、下拉ListView等。具体接口介绍可见TrineaAndroidCommon
API Guide

详细使用:可直接引入TrineaAndroidCommon作为你项目的library(怎样拉代替码及加入公共库),或是自己抽取当中的部分使用。

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、DownloadManagerPro

Android系统下载管理DownloadManager增强方法,可用于包含获取下载相关信息,如:

getStatusById(long) 得到下载状态

getDownloadBytes(long) 得到下载进度信息

getBytesAndStatus(long) 得到下载进度信息和状态

getFileName(long) 得到下载文件路径

getUri(long) 得到下载uri

getReason(long) 得到下载失败或暂停原因

getPausedReason(long) 得到下载暂停原因

getErrorCode(long) 得到下载错误码

源代码可见DownloadManagerPro.java,很多其它方法及更具体參数介绍可见DownloadManagerPro
Api Guide

关于Android DownManager使用可见DownManager
Demo

3、ShellUtils

Android Shell工具类,可用于检查系统root权限。并在shell或root用户下运行shell命令。如:

checkRootPermission() 检查root权限

execCommand(String[] commands, boolean isRoot, boolean isNeedResultMsg) shell环境运行命令。第二个參数表示是否root权限运行

execCommand(String command, boolean isRoot) shell环境运行命令

源代码可见ShellUtils.java,很多其它方法及更具体參数介绍可见ShellUtils
Api Guide
。关于静默安装可见apk-root权限静默安装

4、PackageUtils

Android包相关工具类,可用于(root)安装应用、(root)卸载应用、推断是否系统应用等,如:

install(Context, String) 安装应用,假设是系统应用或已经root,则静默安装。否则一般安装

uninstall(Context, String) 卸载应用,假设是系统应用或已经root,则静默卸载,否则一般卸载

isSystemApplication(Context, String) 推断应用是否为系统应用

源代码可见PackageUtils.java,很多其它方法及更具体參数介绍可见ShellUtils
Api Guide

关于静默安装可见apk-root权限静默安装

5、PreferencesUtils

Android SharedPreferences相关工具类,可用于方便的向SharedPreferences中读取和写入相关类型数据,如:

putString(Context, String, String) 保存string类型数据

putInt(Context, String, int) 保存int类型数据

getString(Context, String) 获取string类型数据

getInt(Context, String) 获取int类型数据

可通过改动PREFERENCE_NAME变量改动preference name

源代码可见PreferencesUtils.java,很多其它方法及更具体參数介绍可见PreferencesUtils
Api Guide

6、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

7、FileUtils

文件工具类。可用于读写文件及对文件进行操作。

如:

readFile(String filePath) 读文件

writeFile(String filePath, String content, boolean append) 写文件

getFileSize(String path) 得到文件大小

deleteFile(String path) 删除文件

源代码可见FileUtils.java,很多其它方法及更具体參数介绍可见FileUtils
Api Guide

8、ResourceUtils

Android Resource工具类,可用于从android资源文件夹的raw和assets文件夹读取内容,如:

geFileFromAssets(Context context, String fileName) 得到assets文件夹下某个文件内容

geFileFromRaw(Context context, int resId) 得到raw文件夹下某个文件内容

源代码可见ResourceUtils.java。很多其它方法及更具体參数介绍可见ResourceUtils
Api Guide

9、StringUtils

String工具类。可用于常见字符串操作。如:

isEmpty(String str) 推断字符串是否为空或长度为0

isBlank(String str) 推断字符串是否为空或长度为0 或由空格组成

utf8Encode(String str) 以utf-8格式编码

capitalizeFirstLetter(String str) 首字母大写

源代码可见StringUtils.java,很多其它方法及更具体參数介绍可见StringUtils
Api Guide

10、ParcelUtils

Android Parcel工具类,可用于从parcel读取或写入特殊类型数据,如:

readBoolean(Parcel in) 从pacel中读取boolean类型数据

readHashMap(Parcel in, ClassLoader loader) 从pacel中读取map类型数据

writeBoolean(boolean b, Parcel out) 向parcel中写入boolean类型数据

writeHashMap(Map<K, V> map, Parcel out, int flags) 向parcel中写入map类型数据

源代码可见ParcelUtils.java。很多其它方法及更具体參数介绍可见ParcelUtils
Api Guide

11、RandomUtils

随机数工具类。可用于获取固定大小固定字符内的随机数。如:

getRandom(char[] sourceChar, int length) 生成随机字符串,全部字符均在某个字符串内

getRandomNumbers(int length) 生成随机数字

源代码可见RandomUtils.java。很多其它方法及更具体參数介绍可见RandomUtils
Api Guide

12、ArrayUtils

数组工具类。可用于数组经常使用操作,如:

isEmpty(V[] sourceArray) 推断数组是否为空或长度为0

getLast(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到数组中某个元素前一个元素,isCircle表示是否循环

getNext(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到数组中某个元素下一个元素,isCircle表示是否循环

源代码可见ArrayUtils.java,很多其它方法及更具体參数介绍可见ArrayUtils
Api Guide

13、ImageUtils

图片工具类,可用于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

14、ListUtils

List工具类,可用于List经常使用操作,如:

isEmpty(List<V> sourceList) 推断List是否为空或长度为0

join(List<String> list, String separator) List转换为字符串。并以固定分隔符切割

addDistinctEntry(List<V> sourceList, V entry) 向list中加入不反复元素

源代码可见ListUtils.java,很多其它方法及更具体參数介绍可见ListUtils
Api Guide

15、MapUtils

Map工具类,可用于Map经常使用操作。如:

isEmpty(Map<K, V> sourceMap) 推断map是否为空或长度为0

parseKeyAndValueToMap(String source, String keyAndValueSeparator, String keyAndValuePairSeparator, boolean ignoreSpace) 字符串解析为map

toJson(Map<String, String> map) map转换为json格式

源代码可见MapUtils.java,很多其它方法及更具体參数介绍可见MapUtils
Api Guide

16、ObjectUtils

Object工具类,可用于Object经常使用操作,如:

isEquals(Object actual, Object expected) 比較两个对象是否相等

compare(V v1, V v2) 比較两个对象大小

transformIntArray(int[] source)  Integer 数组转换为int数组

源代码可见ObjectUtils.java,很多其它方法及更具体參数介绍可见ObjectUtils
Api Guide

17、SerializeUtils

序列化工具类,可用于序列化对象到文件或从文件反序列化对象,如:

deserialization(String filePath) 从文件反序列化对象

serialization(String filePath, Object obj) 序列化对象到文件

源代码可见SerializeUtils.java。很多其它方法及更具体參数介绍可见SerializeUtils
Api Guide

18、SystemUtils

系统信息工具类。可用于得到线程池合适的大小。眼下功能薄弱。后面会进行增强。

如:

getDefaultThreadPoolSize() 得到跟系统配置相符的线程池大小

源代码可见SystemUtils.java,很多其它方法及更具体參数介绍可见SystemUtils
Api Guide

19、TimeUtils

时间工具类。可用于时间相关操作,如:

getCurrentTimeInLong() 得到当前时间

getTime(long timeInMillis, SimpleDateFormat dateFormat) 将long转换为固定格式时间字符串

源代码可见TimeUtils.java。很多其它方法及更具体參数介绍可见TimeUtils
Api Guide

Android经常使用的工具类的更多相关文章

  1. Android开发调试日志工具类[支持保存到SD卡]

    直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...

  2. Android开源项目大全 - 工具类

    主要包括那些不错的开发库,包括依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本向低版本兼容.多媒体相关及其他. 一.依赖注入DI 通过依赖注入减少Vie ...

  3. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  4. Android弹出Toast工具类总结

    Android弹出Toast工具类总结,包括系统自带的,也包括自定义的. public class ToastUtil { public ToastUtil() { } public static T ...

  5. Android 中替代 sharedpreferences 工具类的实现

    Android 中替代 sharedpreferences 工具类的实现 背景 想必大家一定用过 sharedpreferences 吧!就我个人而言,特别讨厌每次 put 完数据还要 commit. ...

  6. 获取 Android APP 版本信息工具类(转载)

    获取 Android APP 版本信息工具类 获取手机APP版本信息工具类 1.获取版本名称 2.获取版本号 3.获取App的名称 package com.mingyue.nanshuibeidiao ...

  7. Android 获取手机的厂商、型号、Android系统版本号等工具类(转载)

    Android 获取手机的厂商.型号.Android系统版本号等工具类 1.获取手机制造厂商 2.获取手机型号 3.获取手机系统当前使用的语言 4.获取Android系统版本号 5.获取手机IMEI串 ...

  8. 关于TornadoFx和Android的全局配置工具类封装实现及思路解析

    原文地址: 关于TornadoFx和Android的全局配置工具类封装实现及思路解析 - Stars-One的杂货小窝 目前个人开发软件存在设置页面,可以让用户自定义些设置,但我发现,存储数据的代码逻 ...

  9. Android开源项目发现--- 工具类快速开发篇(持续更新)

    1. Guava Google的基于java1.6的类库集合的扩展项目 包括collections, caching, primitives support, concurrency librarie ...

  10. Android开源项目发现--- 工具类数据库ORM篇(持续更新)

    orm的db工具类,简化建表.查询.更新.插入.事务.索引的操作 1. greenDAO Android Sqlite orm的db工具类 项目地址:https://github.com/greenr ...

随机推荐

  1. tp 路径表示

    本文实例分析了thinkphp常见路径用法.分享给大家供大家参考.具体如下: 这里介绍的标签主要有: __root__ __self__ __action__ __url__ __app__ __pu ...

  2. python linux安装anaconda

    步骤: 1.在清华大学镜像站中下载anaconda版本:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ https://mirrors.t ...

  3. TheBrain8破解方式

    破解文件下载地址:http://rghost.net/51736270 mac破解方式: 我用的MAC 装的8007版本的,今天竟然提示要升级专业版本了.补救方法是,先打开TB,把之前手贱输入的云服务 ...

  4. iOS学习笔记19-地图(一)定位CoreLocation

    一.定位介绍 现在很多社交.电商.团购应用都引入了地图和定位功能,似乎地图功能不再是地图应用和导航应用所特有的.的确,有了地图和定位功能确实让我们的生活更加丰富多彩,极大的改变了我们的生活方式.要实现 ...

  5. (2015大作业)茹何优雅的手写正则表达式引擎(regular expression engine

    貌似刚开学的时候装了个逼,和老师立了个flag说我要写个正则表达式引擎,然后学期末估计老师早就忘了这茬了,在历时3个月的懒癌发作下,终于在这学期末deadline的时候花了一个下午加晚上在没有网的房间 ...

  6. 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题

    Description 为了使得大家高兴,小Q特意出个自认为的简单题(easy)来满足大家,这道简单题是描述如下:有一个数列A已知对于所有的A[i]都是1~n的自然数,并且知道对于一些A[i]不能取哪 ...

  7. AtCoder Grand Contest 005F - Many Easy Problems

    $n \leq 200000$的树,从树上选$k$个点的一个方案会对$Ans_k$产生大小为“最小的包括这$k$个点的连通块大小”的贡献.求每个$Ans_k$.膜924844033. 看每个点对$An ...

  8. html5对各浏览器的支持情况

    考虑到HTML5标准的制定原则:新特性基于HTML.CSS.DOM 以及 JavaScript:减少对外部插件的需求(比如Flash):独立于设备等,我们选取了HTML 5的几项主要特性来评价浏览器系 ...

  9. HDU 5676 ztr loves lucky numbers【DFS】

    题目链接; http://acm.hdu.edu.cn/showproblem.php?pid=5676 题意: 由4和7组成的且4和7出现次数相同的数称为幸运数字,给定n,求不大于n的最大幸运数字. ...

  10. Java并发编程,Condition的await和signal等待通知机制

    Condition简介 Object类是Java中所有类的父类, 在线程间实现通信的往往会应用到Object的几个方法: wait(),wait(long timeout),wait(long tim ...