android:Android开发不得不收藏的Utils
程序员文章站
2022-07-03 18:49:55
AndroidUtils AndroidUtils Android开发不得不收藏的Utils 之前写这篇文章主要是项目应用到的Utils,发现已经有一个更全面的开源库总结,所以还是非常震惊可以总结的这么全面,在此我准备重新梳理一遍~ AndroidUtils:Android必备utilCode 具体 ......
- androidutils
androidutils android开发不得不收藏的utils
之前写这篇文章主要是项目应用到的utils,发现已经有一个更全面的开源库总结,所以还是非常震惊可以总结的这么全面,在此我准备重新梳理一遍~
androidutils:android必备utilcode
具体demo使用参考开源github:androidutilcode。本文只是稍微记录下方便自己查阅。
- activity相关→activityutils.java
- app相关→apputils.java
- 状态栏相关→barutils.java
- 清除相关→cleanutils.java
- 剪贴板相关→clipboardutils.java
- 关闭相关→closeutils.java
- 常量相关→constutils.java
- 转换相关→convertutils.java
- 崩溃相关→crashutils.java
- 设备相关→deviceutils.java
- 判空相关→emptyutils.java
- 编码解码相关→encodeutils.java
- 加密解密相关→encryptutils.java
- 文件相关→fileutils.java
getfilebypath : 根据文件路径获取文件 isfileexists : 判断文件是否存在 rename : 重命名文件 isdir : 判断是否是目录 isfile : 判断是否是文件 createorexistsdir : 判断目录是否存在,不存在则判断是否创建成功 createorexistsfile : 判断文件是否存在,不存在则判断是否创建成功 createfilebydeleteoldfile: 判断文件是否存在,存在则在创建之前删除 copydir : 复制目录 copyfile : 复制文件 movedir : 移动目录 movefile : 移动文件 deletedir : 删除目录 deletefile : 删除文件 listfilesindir : 获取目录下所有文件 listfilesindir : 获取目录下所有文件包括子目录 listfilesindirwithfilter : 获取目录下所有后缀名为suffix的文件 listfilesindirwithfilter : 获取目录下所有后缀名为suffix的文件包括子目录 listfilesindirwithfilter : 获取目录下所有符合filter的文件 listfilesindirwithfilter : 获取目录下所有符合filter的文件包括子目录 searchfileindir : 获取目录下指定文件名的文件包括子目录 writefilefromis : 将输入流写入文件 writefilefromstring : 将字符串写入文件 readfile2list : 指定编码按行读取文件到链表中 readfile2string : 指定编码按行读取文件到字符串中 readfile2bytes : 读取文件到字符数组中 getfilelastmodified : 获取文件最后修改的毫秒时间戳 getfilecharsetsimple : 简单获取文件编码格式 getfilelines : 获取文件行数 getdirsize : 获取目录大小 getfilesize : 获取文件大小 getdirlength : 获取目录长度 getfilelength : 获取文件长度 getfilemd5 : 获取文件的md5校验码 getfilemd5tostring : 获取文件的md5校验码 getdirname : 根据全路径获取最长目录 getfilename : 根据全路径获取文件名 getfilenamenoextension : 根据全路径获取文件名不带拓展名 getfileextension : 根据全路径获取文件拓展名
- handler相关→handlerutils.java
- 图片相关→imageutils.java
- 意图相关→intentutils.java
- 键盘相关→keyboardutils.java
- 定位相关→locationutils.java
- 日志相关→logutils.java
- 网络相关→networkutils.java
- 手机相关→phoneutils.java
- 拼音相关→pinyinutils.java
- 进程相关→processutils.java
- 正则相关→regexutils.java
- 屏幕相关→screenutils.java
- sd卡相关→sdcardutils.java
- 服务相关→serviceutils.java
- shell相关→shellutils.java
- 尺寸相关→sizeutils.java
- spannablestring相关工具类→spannablestringutils.java
- sp相关→sputils.java
- 字符串相关→stringutils.java
- 线程池相关→threadpoolutils.java
- 时间相关→timeutils.java
- 吐司相关→toastutils.java
- 压缩相关→ziputils.java→test
1.判断手机格式(正则表达式)
2.dp-px;px-dp
- 网络判断 2g - 3g - 4g -wifi
/** * created by ziyang on 16/12/14. * version 1.0 */ public class networkhelper { /** * 没有网络 */ public static final int networktype_invalid = 0; /** * wap网络 */ public static final int networktype_wap = 1; /** * 2g网络 */ public static final int networktype_2g = 2; /** * 3g和3g以上网络,或统称为快速网络 */ public static final int networktype_3g = 3; /** * wifi网络 */ public static final int networktype_wifi = 4; private static boolean isfastmobilenetwork(context context) { telephonymanager telephonymanager = (telephonymanager) context.getsystemservice(context.telephony_service); switch (telephonymanager.getnetworktype()) { case telephonymanager.network_type_1xrtt: return false; // ~ 50-100 kbps case telephonymanager.network_type_cdma: return false; // ~ 14-64 kbps case telephonymanager.network_type_edge: return false; // ~ 50-100 kbps case telephonymanager.network_type_evdo_0: return true; // ~ 400-1000 kbps case telephonymanager.network_type_evdo_a: return true; // ~ 600-1400 kbps case telephonymanager.network_type_gprs: return false; // ~ 100 kbps case telephonymanager.network_type_hsdpa: return true; // ~ 2-14 mbps case telephonymanager.network_type_hspa: return true; // ~ 700-1700 kbps case telephonymanager.network_type_hsupa: return true; // ~ 1-23 mbps case telephonymanager.network_type_umts: return true; // ~ 400-7000 kbps case telephonymanager.network_type_ehrpd: return true; // ~ 1-2 mbps case telephonymanager.network_type_evdo_b: return true; // ~ 5 mbps case telephonymanager.network_type_hspap: return true; // ~ 10-20 mbps case telephonymanager.network_type_iden: return false; // ~25 kbps case telephonymanager.network_type_lte: return true; // ~ 10+ mbps case telephonymanager.network_type_unknown: return false; default: return false; } } /** * 获取网络状态,wifi,wap,2g,3g. * * @param context 上下文 * @return int 网络状态 {@link #networktype_2g},{@link #networktype_3g}, * *{@link #networktype_invalid},{@link #networktype_wap}* * <p>{@link #networktype_wifi} */ public static int getnetworktype(context context) { connectivitymanager manager = (connectivitymanager) context.getsystemservice(context.connectivity_service); networkinfo networkinfo = manager.getactivenetworkinfo(); if (networkinfo != null && networkinfo.isconnected()) { string type = networkinfo.gettypename(); if (type.equalsignorecase("wifi")) { return networktype_wifi; } else if (type.equalsignorecase("mobile")) { string proxyhost = android.net.proxy.getdefaulthost(); return textutils.isempty(proxyhost) ? (isfastmobilenetwork(context) ? networktype_3g : networktype_2g) : networktype_wap; } } else { return networktype_invalid; } return networktype_invalid; } public static boolean isnetworkconn(context context) { return getnetworktype(context) != 0; } }
4.logutils.java debug,release no log,当然可以添加更详细的比如添加时间,msg等等
/** * logutils log工具类 * @author ziyang */ public class logutils { public static boolean isdebug = buildconfig.log_debug; // 下面是传入自定义tag的函数 public static void i(string tag, string msg) { if (isdebug) log.i(tag, msg); } public static void d(string tag, string msg) { if (isdebug) log.i(tag, msg); } public static void e(string tag, string msg) { if (isdebug) log.i(tag, msg); } public static void v(string tag, string msg) { if (isdebug) log.i(tag, msg); } } //在app build.gradle配置 buildtypes { debug { buildconfigfield "boolean", "log_debug", "true" minifyenabled false zipalignenabled true proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' //signingconfig signingconfigs.debug } release { buildconfigfield "boolean", "log_debug", "false" minifyenabled false zipalignenabled true proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro' } }
5.mytoast.java当然可以拓展,时间控制,content内容控制等等
【转自】https://www.jianshu.com/p/ebae69928ce6