主要介绍总结的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. Asp.Net Core 项目实战之权限管理系统(8) 功能菜单的动态加载

    0 Asp.Net Core 项目实战之权限管理系统(0) 无中生有 1 Asp.Net Core 项目实战之权限管理系统(1) 使用AdminLTE搭建前端 2 Asp.Net Core 项目实战之 ...

  2. 在javascript中关于变量与函数的提升

    在javascript中关于变量与函数的提升 一.简介 在javascript中声明变量与函数的执行步骤: 1.先预解析变量或函数声明代码,会把用var声明的变量或者函数声明的代码块进行提升操作 2. ...

  3. 怎样的 Hash 算法能对抗硬件破解

    前言 用过暴力破解工具 hashcat 的都知道,这款软件的强大之处在于它能充分利用 GPU 计算,比起 CPU 要快很多.所以在破解诸如 WiFi 握手包.数据库中的口令 Hash 值时,能大幅提高 ...

  4. UML类图中的关系和表示方法

    类图是用来描述程序中的类以及它们之间的关系的,使用类图可以帮助我们简化对系统的理解.在UML类图中比较常见的关系有六种,它们分别是:依赖.关联.聚合.组合.泛化.实现,这六种关系中类之间的紧密程度是依 ...

  5. 我个人的Java学习经验(一家之言)

    声明:本文只是我的个人经验之谈,或者连经验之谈都算不上,因为我觉得自己还是个新手,没有什么经验可谈,就算是我分享一下自己从开始学习Java到现在的一些心路历程吧,各位看官暂且看吧,欢迎交流.第一部分算 ...

  6. 初识html5——试试博文编辑器

    1.html5简介 HTML5 将成为 HTML.XHTML 以及 HTML DOM 的新标准. HTML 的上一个版本诞生于 1999 年.自从那以后,Web 世界已经经历了巨变. HTML5 仍处 ...

  7. c#基础语句——分支语句

    一.if...else... if是如果的意思,else是另外的意思,if后面跟(),括号内为判断条件,如果符合条件则进入if语句执行命令.如果不符合则不进入if语句.else后不用加条件,但是必须与 ...

  8. Java基本数据类型及其封装器的一些千丝万缕的纠葛

    一些概念     想必大家都知道Java的基础数据类型有:char.byte.short.int.long.float.double.boolean 这几种,与C/C++等语言不同的是,Java的基础 ...

  9. UIScrollView 和 UICollectionView 分页效果

    UIScrollView 和 UICollectionView 分页效果 UIScrollView可以滚动显示宽度或高度大于其bounds的内容.有些时候,需要有分页效果.每一页有统一的大小,相邻无缝 ...

  10. ACM 组合数

    组合数 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 找出从自然数1.2.... .n(0<n<10)中任取r(0<r<=n)个数的所有组合 ...