欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android:Android开发不得不收藏的Utils

程序员文章站 2022-07-03 18:49:55
AndroidUtils AndroidUtils Android开发不得不收藏的Utils 之前写这篇文章主要是项目应用到的Utils,发现已经有一个更全面的开源库总结,所以还是非常震惊可以总结的这么全面,在此我准备重新梳理一遍~ AndroidUtils:Android必备utilCode 具体 ......
    1. androidutils

androidutils android开发不得不收藏的utils
之前写这篇文章主要是项目应用到的utils,发现已经有一个更全面的开源库总结,所以还是非常震惊可以总结的这么全面,在此我准备重新梳理一遍~

androidutils:android必备utilcode

具体demo使用参考开源github:androidutilcode。本文只是稍微记录下方便自己查阅。

  • activity相关→activityutils.java
android:Android开发不得不收藏的Utils
  • app相关→apputils.java
android:Android开发不得不收藏的Utils

 

  • 状态栏相关→barutils.java
android:Android开发不得不收藏的Utils

 

  • 清除相关→cleanutils.java
android:Android开发不得不收藏的Utils

 

  • 剪贴板相关→clipboardutils.java
android:Android开发不得不收藏的Utils

 

  • 关闭相关→closeutils.java
android:Android开发不得不收藏的Utils

 

  • 常量相关→constutils.java
android:Android开发不得不收藏的Utils

 

  • 转换相关→convertutils.java
android:Android开发不得不收藏的Utils

 

  • 崩溃相关→crashutils.java
android:Android开发不得不收藏的Utils

 

  • 设备相关→deviceutils.java
android:Android开发不得不收藏的Utils

 

  • 判空相关→emptyutils.java
android:Android开发不得不收藏的Utils

 

  • 编码解码相关→encodeutils.java
android:Android开发不得不收藏的Utils

 

  • 加密解密相关→encryptutils.java
android:Android开发不得不收藏的Utils

 

  • 文件相关→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
android:Android开发不得不收藏的Utils

 

  • 图片相关→imageutils.java
android:Android开发不得不收藏的Utils

 

  • 意图相关→intentutils.java
android:Android开发不得不收藏的Utils

 

  • 键盘相关→keyboardutils.java
android:Android开发不得不收藏的Utils

 

  • 定位相关→locationutils.java
android:Android开发不得不收藏的Utils

 

  • 日志相关→logutils.java
android:Android开发不得不收藏的Utils

 

  • 网络相关→networkutils.java
android:Android开发不得不收藏的Utils

 

  • 手机相关→phoneutils.java
android:Android开发不得不收藏的Utils

 

  • 拼音相关→pinyinutils.java
android:Android开发不得不收藏的Utils

 

  • 进程相关→processutils.java
android:Android开发不得不收藏的Utils

 

  • 正则相关→regexutils.java
android:Android开发不得不收藏的Utils

 

  • 屏幕相关→screenutils.java
android:Android开发不得不收藏的Utils

 

  • sd卡相关→sdcardutils.java
android:Android开发不得不收藏的Utils

 

  • 服务相关→serviceutils.java
android:Android开发不得不收藏的Utils

 

  • shell相关→shellutils.java
android:Android开发不得不收藏的Utils

 

  • 尺寸相关→sizeutils.java
android:Android开发不得不收藏的Utils
android:Android开发不得不收藏的Utils
android:Android开发不得不收藏的Utils

 

  • spannablestring相关工具类→spannablestringutils.java
android:Android开发不得不收藏的Utils

 

  • sp相关→sputils.java
android:Android开发不得不收藏的Utils

 

  • 字符串相关→stringutils.java
android:Android开发不得不收藏的Utils

 

  • 线程池相关→threadpoolutils.java
android:Android开发不得不收藏的Utils

 

  • 时间相关→timeutils.java
android:Android开发不得不收藏的Utils

 

  • 吐司相关→toastutils.java
android:Android开发不得不收藏的Utils

 

  • 压缩相关→ziputils.java→test
android:Android开发不得不收藏的Utils

 

1.判断手机格式(正则表达式)

android:Android开发不得不收藏的Utils

 

2.dp-px;px-dp

android:Android开发不得不收藏的Utils

 

  1. 网络判断 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内容控制等等

android:Android开发不得不收藏的Utils

 



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