热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android常用工具类源码大全

Android常用工具类源码大全

Android 常用工具类源码大全


android

主要介绍总结的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 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。




推荐阅读
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 在多线程并发环境中,普通变量的操作往往是线程不安全的。本文通过一个简单的例子,展示了如何使用 AtomicInteger 类及其核心的 CAS 无锁算法来保证线程安全。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 本文总结了一些开发中常见的问题及其解决方案,包括特性过滤器的使用、NuGet程序集版本冲突、线程存储、溢出检查、ThreadPool的最大线程数设置、Redis使用中的问题以及Task.Result和Task.GetAwaiter().GetResult()的区别。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • 【实例简介】本文详细介绍了如何在PHP中实现微信支付的退款功能,并提供了订单创建类的完整代码及调用示例。在配置过程中,需确保正确设置相关参数,特别是证书路径应根据项目实际情况进行调整。为了保证系统的安全性,存放证书的目录需要设置为可读权限。值得注意的是,普通支付操作无需证书,但在执行退款操作时必须提供证书。此外,本文还对常见的错误处理和调试技巧进行了说明,帮助开发者快速定位和解决问题。 ... [详细]
author-avatar
乌鸦晕倒_767
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有