1. 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
  1. getFileByPath : 根据文件路径获取文件
  2. isFileExists : 判断文件是否存在
  3. rename : 重命名文件
  4. isDir : 判断是否是目录
  5. isFile : 判断是否是文件
  6. createOrExistsDir : 判断目录是否存在,不存在则判断是否创建成功
  7. createOrExistsFile : 判断文件是否存在,不存在则判断是否创建成功
  8. createFileByDeleteOldFile: 判断文件是否存在,存在则在创建之前删除
  9. copyDir : 复制目录
  10. copyFile : 复制文件
  11. moveDir : 移动目录
  12. moveFile : 移动文件
  13. deleteDir : 删除目录
  14. deleteFile : 删除文件
  15. listFilesInDir : 获取目录下所有文件
  16. listFilesInDir : 获取目录下所有文件包括子目录
  17. listFilesInDirWithFilter : 获取目录下所有后缀名为suffix的文件
  18. listFilesInDirWithFilter : 获取目录下所有后缀名为suffix的文件包括子目录
  19. listFilesInDirWithFilter : 获取目录下所有符合filter的文件
  20. listFilesInDirWithFilter : 获取目录下所有符合filter的文件包括子目录
  21. searchFileInDir : 获取目录下指定文件名的文件包括子目录
  22. writeFileFromIS : 将输入流写入文件
  23. writeFileFromString : 将字符串写入文件
  24. readFile2List : 指定编码按行读取文件到链表中
  25. readFile2String : 指定编码按行读取文件到字符串中
  26. readFile2Bytes : 读取文件到字符数组中
  27. getFileLastModified : 获取文件最后修改的毫秒时间戳
  28. getFileCharsetSimple : 简单获取文件编码格式
  29. getFileLines : 获取文件行数
  30. getDirSize : 获取目录大小
  31. getFileSize : 获取文件大小
  32. getDirLength : 获取目录长度
  33. getFileLength : 获取文件长度
  34. getFileMD5 : 获取文件的MD5校验码
  35. getFileMD5ToString : 获取文件的MD5校验码
  36. getDirName : 根据全路径获取最长目录
  37. getFileName : 根据全路径获取文件名
  38. getFileNameNoExtension : 根据全路径获取文件名不带拓展名
  39. 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

  1. 网络判断 2G - 3G - 4G -wifi
  1. /**
  2. * Created by ziyang on 16/12/14.
  3. * Version 1.0
  4. */
  5. public class NetWorkHelper {
  6. /**
  7. * 没有网络
  8. */
  9. public static final int NETWORKTYPE_INVALID = 0;
  10. /**
  11. * wap网络
  12. */
  13. public static final int NETWORKTYPE_WAP = 1;
  14. /**
  15. * 2G网络
  16. */
  17. public static final int NETWORKTYPE_2G = 2;
  18. /**
  19. * 3G和3G以上网络,或统称为快速网络
  20. */
  21. public static final int NETWORKTYPE_3G = 3;
  22. /**
  23. * wifi网络
  24. */
  25. public static final int NETWORKTYPE_WIFI = 4;
  26. private static boolean isFastMobileNetwork(Context context) {
  27. TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
  28. switch (telephonyManager.getNetworkType()) {
  29. case TelephonyManager.NETWORK_TYPE_1xRTT:
  30. return false; // ~ 50-100 kbps
  31. case TelephonyManager.NETWORK_TYPE_CDMA:
  32. return false; // ~ 14-64 kbps
  33. case TelephonyManager.NETWORK_TYPE_EDGE:
  34. return false; // ~ 50-100 kbps
  35. case TelephonyManager.NETWORK_TYPE_EVDO_0:
  36. return true; // ~ 400-1000 kbps
  37. case TelephonyManager.NETWORK_TYPE_EVDO_A:
  38. return true; // ~ 600-1400 kbps
  39. case TelephonyManager.NETWORK_TYPE_GPRS:
  40. return false; // ~ 100 kbps
  41. case TelephonyManager.NETWORK_TYPE_HSDPA:
  42. return true; // ~ 2-14 Mbps
  43. case TelephonyManager.NETWORK_TYPE_HSPA:
  44. return true; // ~ 700-1700 kbps
  45. case TelephonyManager.NETWORK_TYPE_HSUPA:
  46. return true; // ~ 1-23 Mbps
  47. case TelephonyManager.NETWORK_TYPE_UMTS:
  48. return true; // ~ 400-7000 kbps
  49. case TelephonyManager.NETWORK_TYPE_EHRPD:
  50. return true; // ~ 1-2 Mbps
  51. case TelephonyManager.NETWORK_TYPE_EVDO_B:
  52. return true; // ~ 5 Mbps
  53. case TelephonyManager.NETWORK_TYPE_HSPAP:
  54. return true; // ~ 10-20 Mbps
  55. case TelephonyManager.NETWORK_TYPE_IDEN:
  56. return false; // ~25 kbps
  57. case TelephonyManager.NETWORK_TYPE_LTE:
  58. return true; // ~ 10+ Mbps
  59. case TelephonyManager.NETWORK_TYPE_UNKNOWN:
  60. return false;
  61. default:
  62. return false;
  63. }
  64. }
  65. /**
  66. * 获取网络状态,wifi,wap,2g,3g.
  67. *
  68. * @param context 上下文
  69. * @return int 网络状态 {@link #NETWORKTYPE_2G},{@link #NETWORKTYPE_3G},
  70. * *{@link #NETWORKTYPE_INVALID},{@link #NETWORKTYPE_WAP}*
  71. * <p>{@link #NETWORKTYPE_WIFI}
  72. */
  73. public static int getNetWorkType(Context context) {
  74. ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
  75. NetworkInfo networkInfo = manager.getActiveNetworkInfo();
  76. if (networkInfo != null && networkInfo.isConnected()) {
  77. String type = networkInfo.getTypeName();
  78. if (type.equalsIgnoreCase("WIFI")) {
  79. return NETWORKTYPE_WIFI;
  80. } else if (type.equalsIgnoreCase("MOBILE")) {
  81. String proxyHost = android.net.Proxy.getDefaultHost();
  82. return TextUtils.isEmpty(proxyHost)
  83. ? (isFastMobileNetwork(context) ? NETWORKTYPE_3G : NETWORKTYPE_2G)
  84. : NETWORKTYPE_WAP;
  85. }
  86. } else {
  87. return NETWORKTYPE_INVALID;
  88. }
  89. return NETWORKTYPE_INVALID;
  90. }
  91. public static boolean isNetWorkConn(Context context) {
  92. return getNetWorkType(context) != 0;
  93. }
  94. }

4.LogUtils.java debug,release no log,当然可以添加更详细的比如添加时间,msg等等

  1. /**
  2. * LogUtils log工具类
  3. * @author ziyang
  4. */
  5. public class LogUtils {
  6. public static boolean isDebug = BuildConfig.LOG_DEBUG;
  7. // 下面是传入自定义tag的函数
  8. public static void i(String tag, String msg)
  9. {
  10. if (isDebug)
  11. Log.i(tag, msg);
  12. }
  13. public static void d(String tag, String msg)
  14. {
  15. if (isDebug)
  16. Log.i(tag, msg);
  17. }
  18. public static void e(String tag, String msg)
  19. {
  20. if (isDebug)
  21. Log.i(tag, msg);
  22. }
  23. public static void v(String tag, String msg)
  24. {
  25. if (isDebug)
  26. Log.i(tag, msg);
  27. }
  28. }
  29. //在app build.gradle配置
  30. buildTypes {
  31. debug {
  32. buildConfigField "boolean", "LOG_DEBUG", "true"
  33. minifyEnabled false
  34. zipAlignEnabled true
  35. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  36. //signingConfig signingConfigs.debug
  37. }
  38. release {
  39. buildConfigField "boolean", "LOG_DEBUG", "false"
  40. minifyEnabled false
  41. zipAlignEnabled true
  42. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  43. }
  44. }

5.MyToast.java当然可以拓展,时间控制,content内容控制等等

  1.  

【转自】https://www.jianshu.com/p/ebae69928ce6

android:Android开发不得不收藏的Utils的更多相关文章

  1. Android 程序员不得不收藏的个人博客(持续更新...)

    本文已收录我的 Github ,持续更新中 ,欢迎点赞 ! 每周打开一次收藏夹里的个人博客,已经成为了我的人生一大乐趣. 相比各大博客平台,我一直更加偏爱个人博客.在每个人自己的这一亩三分地里,你能看 ...

  2. 99%的Android开发不得不面对的三道坎,到底该怎么破?

    今年比往年要特殊一些,受疫情的影响,很多公司都出现了裁员现象.以至于最近很多技术同学也在纷纷向我倒苦水. 王鹏便是其中的一员,王鹏之前是在一线城市的一家小型互联网公司做Android应用开发.从毕业实 ...

  3. 2021年正确的Android逆向开发学习之路

    2021年正确的Android逆向开发学习之路 说明 文章首发于HURUWO的博客小站,本平台做同步备份发布.如有浏览或访问异常或者相关疑问可前往原博客下评论浏览. 原文链接 2021年正确的Andr ...

  4. 转——Android应用开发性能优化完全分析

    [工匠若水 http://blog.csdn.net/yanbober 转载请注明出处.] 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉 ...

  5. !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结

    http://hujiaweibujidao.github.io/blog/2013/11/18/android-ndk-and-opencv-development-3/ Android Ndk a ...

  6. Android 应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  7. 【转】Android应用开发性能优化完全分析

    http://blog.csdn.net/yanbober/article/details/48394201 1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关 ...

  8. Android应用开发性能优化完全分析

    1 背景 其实有点不想写这篇文章的,但是又想写,有些矛盾.不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结.我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只 ...

  9. Android项目开发全程(四)-- 将网络返回的json字符串轻松转换成listview列表

    前面几篇博文介绍了从项目搭建到获取网络字符串,对一个项目的前期整体工作进行了详细的介绍,本篇接着上篇介绍一下怎么样优雅将网络返回的json字符串轻松转换成listview列表. 先上图,看一下效果. ...

随机推荐

  1. Flask依赖和启动流程回顾

    flask 有两个核心依赖库:werkzeug 和 jinja,而 werkzeug 又是两者中更核心的. werkzeug werkzeug负责核心的逻辑模块,比如路由.请求和应答的封装.WSGI ...

  2. 如何使用Keras的Model visualization功能

    问题 安装上graphviz和pydot之后调用出现如下问题 ['dot', '-Tpng', '/tmp/tmp1KPaiV'] return code: 1 stdout, stderr: War ...

  3. SpringBoot配置Cors解决跨域请求问题

    一.同源策略简介 同源策略[same origin policy]是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源. 同源策略是浏览器安全的基石. 什么是源 源[or ...

  4. Database Management System 基础01:管理自己的任何事

    前言 系列文章:[传送门] 这Database Management System 系列准备也慢慢的写出来了.Database Management是我学习的一块,这块出的也许比较慢.比较忙吧,坚持每 ...

  5. 想入职阿里的Java开发者必看,阿里巴巴面试官实战经验分享!

    最近社区Java技术进阶群的小伙伴总是会问,如何面试阿里Java技术岗,需要什么条件,做哪些准备:小编就这些问题找到了阿里技术团队中在一线真正带Java开发团队并直接参与技术面试的专家,分享了自身在筛 ...

  6. linux:终端常用命令 + vi命令修改文件及保存 方法

    首先介绍一下Ubuntu下各个目录的一般作用: /  这就是根目录,一台电脑有且只有一个根目录,所有的文件都是从这里开始的.举个例子:当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录 ...

  7. 痞子衡嵌入式:ARM Cortex-M内核那些事(1)- 内核架构编年史

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM内核架构历史. 众所周知,ARM公司是一家微处理器行业的知名企业,ARM公司本身并不靠自有的设计来制造或出售CPU,而是将处理器架 ...

  8. zookeeper实现动态感知服务器上下线

      在实际的生产环境中我们一般都是集群环境部署的,同一个程序我们会部署在相同的几台服务器中,这时我们可以通过负载均衡服务器去调度,但是我们并不能很快速的获知哪台服务器挂掉了,这时我们就可以使用zook ...

  9. 深入理解Java虚拟机阅读心得(一)

    JVM(Java Virtual Machine) 即Java虚拟机,是一种用于计算设备的规范,用于运行Java程序编译后得到的字节码文件(Class文件) 一.JVM的内存区域 1.程序计数器(Pr ...

  10. Layui table 组件的使用:初始化加载数据、数据刷新表格、传参数

    背景 笔者之前一直使用 bootstrap table ,因为当前项目中主要使用 Layui 框架,于是也就随了 Layui table ,只是在使用的时候出现了一些问题,当然也是怪自己不熟悉的锅吧! ...