美文网首页
让你的Android开发效率提高10倍的开源工具库Android

让你的Android开发效率提高10倍的开源工具库Android

作者: 拆迁特工 | 来源:发表于2017-01-22 17:41 被阅读0次

    AndroidTools

    github地址:AndroidTools (喜欢这个工具的,可以star一下,以后方便找到,Happy coding!)

    English README

    关于AndroidTools

    这个项目包含了我们Android开发中常用的工具类。集成这个项目后,我们自己就不用写各种Utils类了,这将会简化你的代码,节省开发者的宝贵时间,让我们把注意力转到最重要的业务上来,使我们的开发变得更容易。Happy coding!

    如何使用AndroidTools

    1.在根目录的build.gradle文件中repositories的末尾添加如下:

    allprojects {
          repositories {
              ...
              maven { url 'https://jitpack.io' }
          }
      }
    

    2.在你的app/build.gradle文件中添加依赖:

    dependencies {
            compile 'com.github.mazouri:AndroidTools:1.0'
      }
    

    3.在你的application类中初始化AndroidTools:

    public class YourApplication extends Application {
    
      @Override
      public void onCreate() {
          super.onCreate();
    
            //必须调用init方法
          Tools.init(this); 
          
          //可选 如果你想看到AndroidTools内部打印的log, 要加上这一行
          Tools.openToolsLog(true); 
      }
    }
    

    4.然后你可以像下面这样使用【Tools.工具类型.具体方法】:

    // 日志工具,此方法为指定tag打印log
    Tools.log().tag(App.class.getSimpleName()).d("print log with tag()"); 
    
    // 字符串工具,此方法为 判断字符串是否为空
    Tools.string().isEmpty(App.class.getSimpleName()); 
    
    // 网络工具类,此方法为 判断是否连接wifi
    Tools.network().isWifiConnected(this);  
    

    Screenshots

    device_info.gif

    归类总结,方便大家查阅

    你也可以通过docs进行查阅.

    Tools

    方法 描述
    Tools.app() 获取Application, 即Context

    All tools list: AppTool, ApkTool, InputMethodTool, IntentTool, ProcessTool, SnackbarTool, ToastTool, ConstantsTool, ConvertTool, DeviceTool, NetworkTool, BitmapTool, CloseTool, ExternalStorageTool, FileTool, SPTool, LogTool, RegexTool, SecureTool, ShellTool, StringTool, TimeTool, UnitTool.

    AppTool

    //usage examples:
    Tools.appTool().getAllRunningService(Tools.app()); //获取所有运行的服务
        Tools.appTool().startService(Tools.app(), MockService.class); //启动服务
    
    方法 描述
    getAllRunningService 获取所有运行的服务
    startService 启动服务
    stopService 停止服务
    bindService 绑定服务
    unbindService 解绑服务
    getAppVersionCode 获取应用版本号
    getLauncherActivity 获取launcher activity
    getPackageName 获取应用包名
    getTopActivityName 获取顶层activity名称
    getVersionNameFromPackage 获取应用版本名称
    getAppVersionCode 获取应用版本号
    isActivityExists 判断是否存在Activity
    isAppForeground 判断App是否处于前台
    isProessRunning 进程是否运行
    isProessRunning 进程是否运行
    isRunningForeground 判断应用是否在前台运行
    isServiceRunning 服务是否运行
    launchActivity 打开Activity

    ApkTool

    //usage examples:
    Tools.apk().getAppDetailsSettings(Tools.app()); // 获取App具体设置
    
    方法 描述
    getAppDetailsSettings 获取App具体设置
    getAppIcon 获取App图标
    getAppName 获取App名称
    getAppPath 获取App路径
    getAppSignature 获取App签名
    getAppSignatureSHA1 获取应用签名的的SHA1值
    getChannelFromApk 从apk中获取版本信息
    installApp 安装App
    installAppSilent 静默安装App
    uninstallAppSilent 静默卸载App
    isAppDebug 判断App是否是Debug版本
    isAppInstall 检查手机上是否安装了指定的软件
    isAppRoot 判断App是否有root权限
    isSystemApp 判断App是否是系统应用
    launchApp 打开App
    uninstallApp 卸载App

    InputMethodTool

    //usage examples:
    Tools.inputMethod().isActiveSoftInput(Tools.app()); // 判断输入法是否处于激活状态
    
    方法 描述
    hideInputSoftFromWindowMethod 隐藏键盘 :强制隐藏
    isActiveSoftInput 判断输入负是否处于激活状态
    showInputSoftFromWindowMethod 显示输入法

    ProcessTool

    //usage examples:
    Tools.process().getAllBackgroundProcesses(); // 获取后台服务进程
    
    方法 描述
    getAllBackgroundProcesses 获取所有的后台服务进程
    getForegroundProcessName 获取前台线程包名
    killAllBackgroundProcesses 杀死所有的后台服务进程
    killBackgroundProcesses 杀死后台服务进程

    IntentTool

    //usage examples:
    Tools.intent().getInstallAppIntent("/sdcard/mock.apk"); // 获取安装App的意图
    
    方法 描述
    getAppDetailsSettingsIntent 获取App具体设置的意图
    getCaptureIntent 获取拍照的意图
    getComponentIntent 获取其他应用组件的意图
    getInstallAppIntent 获取安装App的意图
    getLaunchAppIntent 获取打开App的意图
    getShareImageIntent 获取分享图片的意图
    getShareTextIntent 获取分享文本的意图
    getShutdownIntent 获取分享文本的意图
    getUninstallAppIntent 获取分享文本的意图

    SnackbarTool

    //usage examples:
    Tools.snackbar().dismissSnackbar()(); // 取消snackbar显示
    
    方法 描述
    addView 为snackbar添加布局 在show...Snackbar之后调用
    dismissSnackbar 取消snackbar显示
    showIndefiniteSnackbar 显示自定义时长snackbar
    showLongSnackbar 显示长时snackbar
    showShortSnackbar 显示短时snackbar

    ProcessTool

    //usage examples:
    Tools.process().getAllBackgroundProcesses(); // 获取后台服务进程
    
    方法 描述
    getAllBackgroundProcesses 获取后台服务进程

    ToastTool

    //usage examples:
    Tools.toast().showToast(Toast.app, "show toast"); // 获取后台服务进程
    
    方法 描述
    showToast 显示Short型Toast
    showToastLong 显示Long型Toast

    ConvertTool

    //usage examples:
    Tools.convert().dp2px(50f); // dp转px
    
    方法 描述
    bitmap2Bytes bitmap转byteArr
    bitmap2Drawable bitmap转drawable
    bits2Bytes bits转bytes
    byte2FitMemorySize 字节数转合适内存大小 保留3位小数
    byte2MemorySize 字节数转以unit为单位的内存大小
    bytes2Bitmap byteArr转bitmap
    bytes2Bits bytes转bits
    bytes2Chars byteArr转charArr
    bytes2Drawable byteArr转drawable
    bytes2HexString byteArr转hexString
    bytes2InputStream byteArr转inputStream
    bytes2OutputStream outputStream转byteArr
    dp2px dp转px
    px2dp px转dp
    px2sp px转sp
    sp2px sp转px
    drawable2Bitmap drawable转bitmap
    drawable2Bytes drawable转byteArr
    hexString2Bytes hexString转byteArr
    input2OutputStream inputStream转outputStream
    inputStream2Bytes inputStream转byteArr
    inputStream2String inputStream转string按编码
    memorySize2Byte 以unit为单位的内存大小转字节数
    millis2FitTimeSpan 毫秒时间戳转合适时间长度
    millis2TimeSpan 毫秒时间戳转以unit为单位的时间长度
    output2InputStream outputStream转inputStream
    outputStream2Bytes outputStream转byteArr
    outputStream2String outputStream转string按编码
    string2InputStream string转inputStream按编码
    string2OutputStream string转outputStream按编码
    timeSpan2Millis 以unit为单位的时间长度转毫秒时间戳
    view2Bitmap view转Bitmap

    DeviceTool

    //usage examples:
    Tools.device().getAllSDCardSize(); // 获取SD大小
    
    方法 描述
    coptyToClipBoard 复制到剪切板
    existSDCard 判断SDCard是否可用
    getAllSDCardSize 获取SD大小
    getAppPackageNamelist 获取非系统应用包名
    getAvailaleSDCardSize 获取可用空间大小
    getIMEI 获取IMEI
    getLatestCameraPicture 获取最后一次拍照的图片
    getLocalIPAddress 获取本机IP地址
    getMac 获取MAC地址
    getNavigationBarHeight 获取navigationbar高度
    getScreenPix 获取手机大小(分辨率)
    getStatusBarHeight 获取statusbar高度
    getTopBarHeight 获取状态栏高度+标题栏(ActionBar)高度
    getUDID 获取UDID
    goHome 主动回到Home,后台运行
    isOnline 是否有网络
    isSoftKeyAvail 判断是否有软控制键
    vibrate 震动

    NetworkTool

    //usage examples:
    Tools.network().getDataEnabled()(); // 判断移动数据是否打开
    
    方法 描述
    getDataEnabled 判断移动数据是否打开
    getDomainAddress 获取域名ip地址
    getIPAddress 获取IP地址
    getNetType 判断手机连接的网络类型(wifi,2G,3G,4G)
    getNetworkOperatorName 获取网络运营商名称 如中国移动、中国联通、中国电信
    is4G 判断网络是否是4G
    isNetworkConnected 判断是否连接网络
    isWifiConnected 判断是否连接wifi
    openWirelessSettings 打开网络设置界面 3.0以下打开设置界面
    setDataEnabled 打开或关闭移动数据

    BitmapTool

    //usage examples:
    Tools.bitmap().toRoundCorner(); // 转化成圆bitmap
    
    方法 描述
    bitmapToByte Bitmap转bytes
    bitmapToDrawable Bitmap转Drawable
    bitmapToString bitmap转换成Base64编码String
    byteToBitmap bytes转Bitmap
    compressBimap 质量压缩图片-压缩在maxSize以内
    compressBitmap 等比压缩(宽高等比缩放)
    compressBitmap 压缩bitmp到目标大小(质量压缩)
    compressBitmap 质量压缩图片-压缩在1M以内
    compressBitmap 质量压缩图片
    compressBitmap 图片缩放-尺寸缩放
    compressBitmapBig 图片缩放-尺寸缩放
    compressBitmapSmall 图片缩放-尺寸缩放
    compressImage 质量压缩图片-压缩在1M以内
    compressImage 质量压缩图片
    compressImage 质量压缩图片-压缩在maxSize以内
    createBitmapThumbnail 生成bitmap缩略图
    drawableToBitmap drawable转Bitmap
    getDegress 根据path, 获取图片旋转角度
    rotateBitmap 旋转bitmap
    saveBitmap 保存Bitmap到文件
    scaleImage 缩放image
    scaleImageTo 缩放image到指定高、宽

    CloseTool

    //usage examples:
    Tools.close().closeIO(in); // 关闭IO
    
    方法 描述
    closeIO 关闭IO
    closeIOQuietly 安静关闭IO

    ExternalStorageTool

    //usage examples:
    Tools.externalStorage().isAvailable(); // sdcard是否可用
    
    方法 描述
    getAllStorageLocations 获取所有可用sdcard
    getSdCardPath 获取sdcard路径
    isAvailable sdcard是否可用
    isWritable sdcard是否可写

    FileTool

    //usage examples:
    Tools.file().getFileByPath("/sdcard/mock.txt"); // 根据文件路径获取文件
    
    方法 描述
    copyDir 复制目录
    copyFile 复制文件
    createFileByDeleteOldFile 判断文件是否存在,存在则在创建之前删除
    createOrExistsDir 判断目录是否存在,不存在则判断是否创建成功
    createOrExistsFile 判断文件是否存在,不存在则判断是否创建成功
    deleteDir 删除目录
    deleteFile 删除文件
    deleteFilesInDir 删除目录下的所有文件
    getDirLength 获取目录长度
    getDirName 获取全路径中的最长目录
    getFileByPath 根据文件路径获取文件
    getFileCharsetSimple 简单获取文件编码格式
    getFileExtension 获取全路径中的文件拓展名
    getFileLastModified 获取文件最后修改的毫秒时间戳
    getFileLength 获取文件长度
    getFileLines 获取文件行数
    getFileMD5 获取文件的MD5校验码
    getFileMD5ToString 获取文件的MD5校验码
    getFileName 获取全路径中的文件名
    getFileNameNoExtension 获取全路径中的不带拓展名的文件名
    getFileSize 获取文件大小
    isDir 判断是否是目录
    isFile 判断是否是文件
    isFileExists 判断文件是否存在
    listFilesInDir 获取目录下所有文件包括子目录
    listFilesInDirWithFilter 获取目录下所有符合filter的文件包括子目录
    moveDir 移动目录
    moveFile 移动文件
    readFile2Bytes 读取文件到字符数组中
    readFile2List 指定编码按行读取文件到链表中
    readFile2String 指定编码按行读取文件到字符串中
    rename 重命名文件
    searchFileInDir 获取目录下指定文件名的文件包括子目录 大小写忽略
    writeFileFromIS 将输入流写入文件
    writeFileFromString 将字符串写入文件

    SPTool

    //usage examples:
    Tools.sp().saveShareBoolean("mock_key", true); // 存储moke_key的值到shared_preference的文件
    
    方法 描述
    name 设置SharedPreference的xml文件名,默认为AndroidTools.xml
    saveShareBoolean 存储布尔值
    saveShareInt 存储整型值
    saveShareString 存储字符串

    LogTool

    //three kinds of LogTool usage:
    Tools.log().d("print log with default generated tag"); //默认tag ==> 打印结果为【类名.方法名[第几行]】:App.onCreate(line:20)
    Tools.log().tag(App.class.getSimpleName()).d("print log with tag()");//指定tag
    Tools.log().d(App.class.getSimpleName(), "print log with set tag");//指定tag
    
    方法 描述
    setDebug 设置是否打印log
    tag 设置tag

    RegexTool

    //usage examples:
    Tools.regex().isEmail("wangdd_bj@163.com"); // 获取后台服务进程
    
    方法 描述
    isUserName 是否为用户名
    isPassword 是否为密码
    isMobile 是否为手机号
    isEmail 是否为邮箱
    isChinese 是否为中文
    isIDCard 是否为身份证号(中国)
    isUrl 是否为URL
    isIPAddress 是否为IP地址
    isPlateNum 是否为车牌号(中国)
    isVehicleVin 是否为车辆vin码

    ShellTool

    //usage examples:
    Tools.shell().execCmd("ls /sdcard/", ""); // 获取后台服务进程
    
    方法 描述
    execCmd 是否是在root下执行命令

    StringTool

    //usage examples:
    Tools.string().isEmpty(); // 是否为null或者长度为0或者都是空格
    
    方法 描述
    isEmpty 是否为null或者长度为0或者都是空格
    isBlank 是否为null或者长度为0或者都是空格
    length 字符串长度,如果为null,返回0
    nullStrToEmpty 将空对象转化为空字符串
    capitalizeFirstLetter 首字母大写
    utf8Encode 编码为utf-8
    fullWidthToHalfWidth 全角转半角
    halfWidthToFullWidth 半角转全角
    sqliteEscape 数据库字符转义

    TimeTool

    //usage examples:
    Tools.time().millis2String(System.currentTimeMillis()); // 将时间戳转为时间字符串
    
    方法 描述
    date2Millis 将Date类型转为时间戳
    date2String 将Date类型转为时间字符串
    getChineseZodiac 获取生肖
    getFitTimeSpan 获取合适型两个时间差
    getFitTimeSpanByNow 获取合适型与当前时间的差
    getFriendlyTimeSpanByNow 获取友好型与当前时间的差
    getNowTimeDate 获取当前Date
    getNowTimeMills 获取当前毫秒时间戳
    getNowTimeString 获取当前时间字符串
    getTimeSpan 获取两个时间差
    getTimeSpanByNow 获取与当前时间的差
    getWeek 获取星期
    getWeekIndex 获取星期 注意:周日的Index才是1,周六为7
    getWeekOfMonth 获取月份中的第几周 注意:国外周日才是新的一周的开始
    getWeekOfYear 获取年份中的第几周 注意:国外周日才是新的一周的开始
    getZodiac 获取星座
    isLeapYear 判断是否闰年
    isSameDay 判断是否同一天
    millis2Date 将时间戳转为Date类型
    millis2String 将时间戳转为时间字符串
    string2Date 将时间字符串转为Date类型
    string2Millis 将时间字符串转为时间戳

    UnitTool

    //usage examples:
    Tools.unit().c2f(27f); // 摄氏度转华氏度
    
    方法 描述
    c2f 摄氏度转华氏度
    f2c 华氏度转摄氏度
    km2mi km转mile
    mi2km mile转km
    l2gal 升转加仑
    l100km2mpg 百公里油耗转mpg
    mpg2l100km mpg转百公里油耗

    SecureTool

    方法 描述
    encryptMD2ToString MD2加密
    encryptMD5ToString MD5加密
    encryptMD5File2String MD5加密文件
    encryptSHA1ToString SHA1加密
    encryptSHA224ToString SHA224加密
    encryptSHA256ToString SHA256加密
    encryptSHA384ToString SHA384加密
    encryptSHA512ToString SHA512加密
    hashTemplate hash加密模板
    encryptHmacMD5ToString HmacMD5加密
    encryptHmacSHA1ToString HmacSHA1加密
    encryptDES2Base64 DES加密后转为Base64编码
    encryptDES2HexString DES加密后转为16进制
    encryptDES DES加密
    decryptBase64DES DES解密Base64编码密文
    decryptHexStringDES DES解密16进制密文
    decryptDES DES解密
    encrypt3DES2Base64 3DES加密后转为Base64编码
    encrypt3DES2HexString 3DES加密后转为16进制
    encrypt3DES 3DES加密
    decrypt3DES 3DES解密
    encryptAES2Base64 AES加密后转为Base64编码
    encryptAES AES加密
    decryptAES AES解密

    github地址:AndroidTools (喜欢这个工具的,可以star一下,以后方便找到,Happy coding!)

    更多更新请持续关注AndroidTools

    相关文章

      网友评论

          本文标题:让你的Android开发效率提高10倍的开源工具库Android

          本文链接:https://www.haomeiwen.com/subject/vwjobttx.html