主要介绍总结的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
。关于AndroidDownManager使用可见DownManager
Demo

3、ShellUtils

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

checkRootPermission() 检查root权限

execCommand(String[] commands, boolean isRoot, booleanisNeedResultMsg) 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

AndroidSharedPreferences相关工具类,可用于方便的向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, StringdefaultValue) 得到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 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 sourceList) 判断List是否为空或长度为0

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

addDistinctEntry(List sourceList, V entry) 向list中添加不重复元素

源码可见ListUtils.java,更多方法及更详细参数介绍可见ListUtils
Api Guide

15、MapUtils

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

isEmpty(Map sourceMap) 判断map是否为空或长度为0

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

toJson(Map 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

来自:EOE

【转】Android常用工具类的更多相关文章

  1. 53. Android常用工具类

    主要介绍总结的Android开发中常用的工具类,大部分同样适用于Java.目前包括HttpUtils.DownloadManagerPro.ShellUtils.PackageUtils.Prefer ...

  2. Android 常用工具类之SPUtil,可以修改默认sp文件的路径

    参考: 1. 利用Java反射机制改变SharedPreferences存储路径    Singleton1900 2. Android快速开发系列 10个常用工具类 Hongyang import ...

  3. android常用工具类

    import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkIn ...

  4. Android 常用工具类之 ScreenUtil

    需求: 截屏 参考 :    Android开发:截屏 screenshot 功能小结 package bvb.de.openadbwireless.utils; import android.app ...

  5. Android 常用工具类之LogUtil,可以定位到代码行,双击跳转

    package cn.utils; import android.util.Log; public class LogUtils { public static boolean isDebug = t ...

  6. Android常用工具类封装---SharedPreferencesUtil

    SharedPreferences常用于保存一些简单的数据,如记录用户操作的配置等,使用简单. public class SharedPreferencesUtil {              // ...

  7. Android 常用工具类之 DimenUtil

    public class DimenUtil { /** sp转换成px */ public static int sp2px(float spValue) { float fontScale = M ...

  8. Android 常用工具类之DeviceInfoUtil

    public class DeviceInfoUtil { private static WifiManager wifiManager = null; // wifi是否已连接 public sta ...

  9. Android 常用工具类之RuntimeUtil

    public class RuntimeUtil { /** 通过查询su文件的方式判断手机是否root */ public static boolean hasRootedSilent() { re ...

随机推荐

  1. APP中的 H5和原生页面如何分辨、何时使用

    一.APP内嵌H5和原生的区别 1.原生的页面运行速度快,比较流畅. H5页面相对原生的运行性能低,特别是一些动画效果有明显卡顿. 2.H5页面的很多交互都没有原生的好,比如弹层.输入时候的页面滑动 ...

  2. window7 32位安装Oracle11g

    http://www.cnblogs.com/wangsaiming/p/3573509.html

  3. JS分两种数据类型,你都知道吗?

    大牛请无视此篇! JS主要分基本数据类型和引用数据类型,这两者区别可大了,此篇看完必有长进,下面进入正题 首先我们看下什么是基本数据类型(概念我就不说了,直接上代码): var i = 10: var ...

  4. keepalived配置文件

    1. 查看进程 ps aux | grep keepalived ,其输出为: [root@lvs-m ~]# ps aux| grep keepalived |grep -v greproot 21 ...

  5. x86_64的内存映射

    对于x86_64来说,逻辑地址由16位选择子和64位偏移量组成(而32位时,逻辑地址由16位段选择符和32位偏移量组成),段寄存器仅仅存放选择子.CPU的分段单元(SU)执行以下操作:[1] 先检查选 ...

  6. tcp粘包和拆包的处理方案

    随着智能硬件越来越流行,很多后端开发人员都有可能接触到socket编程.而很多情况下,服务器与端上需要保证数据的有序,稳定到达,自然而然就会选择基于tcp/ip协议的socekt开发.开发过程中,经常 ...

  7. 更改Debian Linux里面的EDT时区为CST时区

    Debian按默认安装,设置的是EDT时区.这样跟我们的系统就都对不上,因此得 改回CST. 只需要两步即可: 使用vi编辑/etc/timezone,把timezone文件的内容更改为:Asia/S ...

  8. Visual Studio 20周年,我和VS不得不说的故事(内含福利)

    Visual Studio 2017正式版已如期发布(点击这里查看发布全记录)!自去年 11 月正式宣布 Visual Studio 项目之后,微软终于正式推出了“宇宙最强集成开发环境(IDE)”的最 ...

  9. ThinkPhp知识大全(非常详细)

    php框架 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格 ...

  10. C#:判断100--999之前的水仙花数

    //判断100--999之前的水仙花数.水仙花数举例:153=13+53+33. using System;public class Program  {    public static void ...