主要介绍和总结了Android开发中常用的工具,其中大部分也适用于Java。目前包括HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。本文英文版见:AndroidCommonUtils所有代码均在TrineaAndroidCommon@Github,欢迎Star或Fork^_*,本项目除了这些工具外,还包括缓存、下拉ListView等,详细界面介绍,请参阅TrineaAndroid通用API指南。具体使用:你可以直接导入TrineaAndroidCommon作为你项目的库(如何拉取代码和添加公共库),也可以自己提取一部分。1、HttpUtilsHttp网络工具类,主要包括httpGet、httpPost和http参数相关方法,以httpGet为例:以上三种方法,默认使用gzip压缩,使用bufferedReader提高读取速度。HttpRequest可以设置url、timeout、userAgent等http参数。HttpResponse可以获取返回内容,http响应码,http过期时间(Cache-Control的max-age和expires)等,前两种方法可以设置高级参数,丰富。内容被返回。第三种方法可以简单的传入url来获取返回的内容,类似于httpPost。更详细的设置可以直接使用HttpURLConnection或者Apache的HttpClient。源码见HttpUtils.java,更多方法和更详细的参数介绍见HttpUtilsApiGuide。2.DownloadManagerProAndroid系统下载管理DownloadManager增强方法可以获取下载相关信息,如:getStatusById(long)获取下载状态getDownloadBytes(long)获取下载进度信息getBytesAndStatus(long)获取下载进度信息和状态getFileName(long)获取下载文件路径getUri(long)获取下载urigetReason(long)获取下载失败或暂停原因getPausedReason(long)获取下载暂停原因getErrorCode(long)获取下载错误码源代码可以在下载管理器专业版。DownloadManagerProAPI指南。AndroidDownManager的使用参见DownManagerDemo。3、ShellUtilsAndroidShell工具类,可用于查看系统的root权限,在shell或root用户下执行shell命令。例如:checkRootPermission()检查root权限execCommand(String[]commands,booleanisRoot,booleanisNeedResultMsg)在shell环境下执行命令,第二个参数表示是否root权限执行execCommand(Stringcommand,booleanisRoot)的shell环境执行命令源码见ShellUtils.java,更多方法和更详细的参数介绍见ShellUtilsApiGuide。对于静默安装,请参阅静默安装的apk-root权限。4.PackageUtilsAndroid包相关工具,可以用来(root)安装应用,(root)卸载应用,判断是否是系统应用等,如:install(Context,String)安装一个应用,如果是系统应用或者已经root了,会静默安装,否则一般是installuninstall(Context,String)卸载应用,如果是系统应用或者已经root,则静默卸载,否则一般uninstallisSystemApplication(Context,String)判断应用是否为系统应用源码见PackageUtils.java,更多方法和更详细的参数介绍见ShellUtilsApiGuide。对于静默安装,请参阅静默安装的apk-root权限。5、PreferencesUtilsAndroidSharedPreferences相关的工具类可以方便的将相关类型的数据读写到SharedPreferences中,如:putString(Context,String,String)保存string类型的数据putInt(Context,String,int)保存int类型的数据getString(Context,String)获取string类型数据getInt(Context,String)获取int类型数据可以通过修改PREFERENCE_NAME变量来修改preferencename源码可以在PreferencesUtils.java中找到,方法更多更详细参数介绍参见PreferencesUtilsApiGuide。6、JSONUtilsJSONUtils工具类可以方便的将相关类型的数据读写到Json中,如:StringgetString(JSONObjectjsonObject,Stringkey,StringdefaultValue)获取字符串类型valueStringgetString(StringjsonData,Stringkey,StringdefaultValue))获取string类型值表示从json中读取一个String类型key的值getMap(JSONObjectjsonObject,Stringkey)获取mapgetMap(StringjsonData,Stringkey)获取map表示读取某个Map类型的值keyfromjson源码见JSONUtils.java,更多方法和更详细的参数介绍见JSONUtilsApiGuide。7、FileUtils文件工具类,可用于读写文件和操作文件。如:readFile(StringfilePath)读文件writeFile(StringfilePath,Stringcontent,booleanappend)写文件getFileSize(Stringpath)获取文件大小deleteFile(Stringpath)删除文件源码可以在FileUtils.java中找到,更多方法以及更详细的参数介绍,参见FileUtilsApiGuide。8、ResourceUtilsAndroid资源工具类,可用于从android资源目录的raw和assets目录中读取内容,如:geFileFromAssets(Contextcontext,StringfileName)获取assets目录下的一个文件的内容geFileFromRaw(Contextcontext,intresId)获取raw目录下某个文件的源码可以在ResourceUtils.java中找到,更多方法和更详细的参数介绍可以在ResourceUtilsApiGuide中找到。9、StringUtilsString工具类可用于常见的字符串操作,如:isEmpty(Stringstr)判断字符串是否为空或长度为0isBlank(Stringstr)判断字符串是否为空或长度为0或由空格组成utf8Encode(Stringstr)以utf-8格式编码capitalizeFirstLetter(Stringstr)。首字母大写源码见StringUtils.java。更多方法和更详细的参数介绍参见StringUtilsApiGuide。10.ParcelUtilsAndroidParcel工具类,可用于从parcel中读取或写入特殊类型的数据,如:readBoolean(Parcelin)从pacel读取boolean类型数据readHashMap(Parcelin,ClassLoaderloader)读取地图typefromthepacelDatawriteBoolean(booleanb,Parcelout)向parcel写入boolean类型的数据writeHashMap(Map
