{"id":13602080,"url":"https://github.com/AbrahamCaiJin/CommonUtilLibrary","last_synced_at":"2025-04-11T08:31:26.113Z","repository":{"id":40650385,"uuid":"89673219","full_name":"AbrahamCaiJin/CommonUtilLibrary","owner":"AbrahamCaiJin","description":"快速开发工具类收集，史上最全的开发工具类，欢迎Follow、Fork、Star","archived":false,"fork":false,"pushed_at":"2020-05-11T01:16:47.000Z","size":801,"stargazers_count":2833,"open_issues_count":9,"forks_count":803,"subscribers_count":86,"default_branch":"master","last_synced_at":"2024-11-07T05:38:27.415Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://github.com/AbrahamCaiJin/CommonUtilLibrary","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AbrahamCaiJin.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-28T06:06:58.000Z","updated_at":"2024-11-02T23:31:34.000Z","dependencies_parsed_at":"2022-08-27T01:42:31.721Z","dependency_job_id":null,"html_url":"https://github.com/AbrahamCaiJin/CommonUtilLibrary","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbrahamCaiJin%2FCommonUtilLibrary","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbrahamCaiJin%2FCommonUtilLibrary/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbrahamCaiJin%2FCommonUtilLibrary/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AbrahamCaiJin%2FCommonUtilLibrary/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AbrahamCaiJin","download_url":"https://codeload.github.com/AbrahamCaiJin/CommonUtilLibrary/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248361536,"owners_count":21090923,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T18:01:13.712Z","updated_at":"2025-04-11T08:31:25.472Z","avatar_url":"https://github.com/AbrahamCaiJin.png","language":"Java","funding_links":[],"categories":["Java","工具库"],"sub_categories":[],"readme":"#\n[![Travis branch](https://img.shields.io/badge/Github-Abraham-ff69b4.svg)](https://github.com/AbrahamCaiJin)\n[![Travis](https://img.shields.io/badge/简书-Abraham-blue.svg)](http://www.jianshu.com/u/8a0908d85e0a)\n[![CircleCI](https://img.shields.io/badge/Blog-Abraham-brightgreen.svg)](http://blog.csdn.net/u014727709?viewmode=contents)\n[![TeamCity (simple build status)](https://img.shields.io/badge/Weibo-Abraham%20-lightgrey.svg)](http://weibo.com/p/1005053895373916/home?from=page_100505\u0026mod=TAB\u0026is_all=1#place)\n[![Travis](https://img.shields.io/badge/QQ群-523167548%20-ff69b4.svg)](https://shang.qq.com/wpa/qunwpa?idkey=4898a63b0283bc98cc61daeeb9eb6648a34886cf554a3ec272063ef5d999b012)\u003c/br\u003e\n\n如果您觉得本项目不错的话，来个star支持下作者吧！\n\n快速开发工具类收集，史上最全的开发工具类 [CommonUtilLibrary](https://github.com/AbrahamCaiJin/CommonUtilLibrary)\n\n[![GitHub stars](https://img.shields.io/github/stars/AbrahamCaiJin/CommonUtilLibrary.svg?style=social\u0026label=Star)](https://github.com/AbrahamCaiJin/CommonUtilLibrary) [![GitHub forks](https://img.shields.io/github/forks/AbrahamCaiJin/CommonUtilLibrary.svg?style=social\u0026label=Fork)](https://github.com/AbrahamCaiJinCommonUtilLibrary) [![GitHub watchers](https://img.shields.io/github/watchers/AbrahamCaiJin/CommonUtilLibrary.svg?style=social\u0026label=Watch)](https://github.com/AbrahamCaiJin/CommonUtilLibrary)\n\n常用的自定义view和第三方类库 [CommonUILibrary](https://github.com/AbrahamCaiJin/CommonUILibrary)\n\n[![GitHub stars](https://img.shields.io/github/stars/AbrahamCaiJin/CommonUILibrary.svg?style=social\u0026label=Star)](https://github.com/AbrahamCaiJin/CommonUILibrary) [![GitHub forks](https://img.shields.io/github/forks/AbrahamCaiJin/CommonUILibrary.svg?style=social\u0026label=Fork)](https://github.com/AbrahamCaiJin/CommonUILibrary) [![GitHub watchers](https://img.shields.io/github/watchers/AbrahamCaiJin/CommonUILibrary.svg?style=social\u0026label=Watch)](https://github.com/AbrahamCaiJin/CommonUILibrary)\n\nViewPager无限滚动循环，支持Fragment和View，可自定义 [LoopViewPager](https://github.com/AbrahamCaiJin/LoopViewPager)\n\n[![GitHub stars](https://img.shields.io/github/stars/AbrahamCaiJin/LoopViewPager.svg?style=social\u0026label=Star)](https://github.com/AbrahamCaiJin/LoopViewPager) [![GitHub forks](https://img.shields.io/github/forks/AbrahamCaiJin/LoopViewPager.svg?style=social\u0026label=Fork)](https://github.com/AbrahamCaiJin/LoopViewPager) [![GitHub watchers](https://img.shields.io/github/watchers/AbrahamCaiJin/LoopViewPager.svg?style=social\u0026label=Watch)](https://github.com/AbrahamCaiJin/LoopViewPager)\n\n底部导航+LinearLayout+Navigation+RecycleView+CardView+个人中心 [BottomAndShapeDemo](https://github.com/AbrahamCaiJin/BottomAndShapeDemo)\n\n[![GitHub stars](https://img.shields.io/github/stars/AbrahamCaiJin/BottomAndShapeDemo.svg?style=social\u0026label=Star)](https://github.com/AbrahamCaiJin/BottomAndShapeDemo) [![GitHub forks](https://img.shields.io/github/forks/AbrahamCaiJin/BottomAndShapeDemo.svg?style=social\u0026label=Fork)](https://github.com/AbrahamCaiJin/BottomAndShapeDemo) [![GitHub watchers](https://img.shields.io/github/watchers/AbrahamCaiJin/BottomAndShapeDemo.svg?style=social\u0026label=Watch)](https://github.com/AbrahamCaiJin/BottomAndShapeDemo)\n\n\n个人博客 [AbrahamCaiJin.github.io](https://github.com/AbrahamCaiJin/AbrahamCaiJin.github.io)\n\n[![GitHub stars](https://img.shields.io/github/stars/AbrahamCaiJin/AbrahamCaiJin.github.io.svg?style=social\u0026label=Star)](https://github.com/AbrahamCaiJin/AbrahamCaiJin.github.io) [![GitHub forks](https://img.shields.io/github/forks/AbrahamCaiJin/AbrahamCaiJin.github.io.svg?style=social\u0026label=Fork)](https://github.com/AbrahamCaiJin/AbrahamCaiJin.github.io) [![GitHub watchers](https://img.shields.io/github/watchers/AbrahamCaiJin/AbrahamCaiJin.github.io.svg?style=social\u0026label=Watch)](https://github.com/AbrahamCaiJin/AbrahamCaiJin.github.io)\n\n\n\n# API\n\n## 银行卡管理 → [BankCheck](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/BankCheck.java)\n    checkBankCard       : 校验银行卡卡号是否合法\n    getBankCardCheckCode: 从不含校验位的银行卡卡号采用 Luhm 校验算法获得校验位\n    getNameOfBank       : 通过银行卡的前六位确定判断银行开户行及卡种\n## SharePreference缓存数据 → [AppSharePreferenceMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppSharePreferenceMgr.java)\n    put     : 保存数据的方法\n    get     : 获取数据的方法\n    putImage: 保存图片到SharedPreferences\n    getImage: 从SharedPreferences读取图片\n    remove  : 移除某个key值已经对应的值\n    clear   : 清除所有数据\n    contains: 查询某个key是否已经存在\n    getAll  : 返回所有的键值对\n## 提供App数据清理工作的类 → [AppCleanMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppCleanMgr.java)\n    cleanInternalCache   ： 清除本应用内部缓存数据\n    cleanExternalCache   ： 清除本应用外部缓存数据\n    cleanDatabases       ： 清除本应用所有数据库\n    cleanSharedPreference： 清除本应用SharedPreference\n    cleanDatabaseByName  ： 根据名字清除本应用数据库\n    cleanFiles           ： 清除本应用files文件\n    cleanApplicationData ： 清除本应用所有的数据\n    getAppClearSize      ： 获取App应用缓存的大小\n## 缓存工具类 → [AppACache](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppACache.java)\n    put             : 保存String数据到缓存中\n    getAsString     : 读取String数据\n    getAsJSONObject : 读取JSONObject数据\n    getAsJSONArray  : 读取JSONArray数据\n    getAsBinary     : 获取byte数据\n    getAsObject     : 读取Serializable数据\n    getAsBitmap     : 读取bitmap数据\n    getAsDrawable   : 读取Drawable数据\n    file            : 获取缓存文件\n    remove          : 除某个key\n    clear           : 清除所有数据\n## App应用退出 → [AppExit2Back](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppExit2Back.java)\n    exitApp: 退出App程序应用\n## 管理和回收Activity → [AppDavikActivityMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppDavikActivityMgr.java)\n    getScreenManager      : 单例堆栈集合对象\n    removeActivity        : 堆栈中销毁并移除\n    removeAllActivity     : 栈中销毁并移除所有Act对象\n    currentActivity       : 取当前Act对象\n    getCurrentActivityName: 获得当前Act的类名\n    addActivity           : 将Act纳入推栈集合中\n    exitApp               : 退出栈中所有Activity\n## 获取App应用版本信息 → [AppApplicationMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppApplicationMgr.java)\n    getAppName             : 获取本地apk的名称\n    getVersionName         : 获取本地Apk版本名称\n    getVersionCode         : 获取本地Apk版本号\n    getMetaData            : 根据key获取xml中Meta的值\n    getAppIcon             : 获取应用图标\n    getAppFirstInstallTime : 获取应用第一次安装日期\n    getAppLastUpdateTime   : 获取应用更新日期\n    getAppSize             : 获取应用大小\n    getAppApk              : 获取应用apk文件\n    getAppInstaller        : 获取应用的安装市场\n    getAppSign             : 获取应用签名\n    getAppTargetSdkVersion : 获取应用兼容sdk\n    getAppUid              : 获取应用uid\n    getNumCores            : 获取Cpu内核数\n    getRootPermission      : 获得root权限\n    getAppPermissions      : 获取应用的所有权限\n    hasPermission          : 是否有权限\n    isInstalled            : 应用是否安装\n    installApk             : 安装应用\n    uninstallApk           : 卸载应用\n    isSystemApp            : 是否是系统应用\n    isServiceRunning       : 服务是否在运行\n    stopRunningService     : 停止服务\n    killProcesses          : 结束进程\n    runScript              : 运行脚本\n    runApp                 : 启动应用\n    getPackageName         : 获得包名\n    getApplicationMetaData : 获取application层级的metadata\n\n## 软键盘管理 → [AppKeyBoardMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppKeyBoardMgr.java)\n    openKeybord      : 打卡软键盘\n    closeKeybord     : 关闭软键盘\n    TimerHideKeyboard: 通过定时器强制隐藏虚拟键盘\n    isKeybord        : 输入法是否显示\n    hideInputMethod  : 隐藏输入法\n    showInputMethod  : 显示输入法\n## 系统日志输出工具类 → [AppLogMessageMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppLogMessageMgr.java)\n    isEnableDebug: 设置log总开关,debug模式(true:打印日志  false：不打印)\n    i            : Info日志\n    d            : Debug日志\n    w            : Warn日志\n    v            : Verbose日志\n    e            : Error日志\n###### 这里推荐使用凯子哥的日志管理工具,灰常好用，我也集成到了我的项目里面，KLog对超长字符串进行处理，保证全部的字符串都可以打印出来，再也没有了只能打印一部分的问题了，部分使用方法如下\n## 系统日志输出工具类 → [KLog](https://github.com/AbrahamCaiJin/CommonUtilLibrary/tree/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/klog)\n    init: 设置log总开关,debug模式(true:打印日志  false：不打印)\n    a   : assert日志或者打印是否执行到这里等\n    i   : Info日志或者打印是否执行到这里等\n    d   : Debug日志或者打印是否执行到这里等\n    w   : Warn日志或者打印是否执行到这里等\n    v   : Verbose日志或者打印是否执行到这里等\n    e   : Error日志或者打印是否执行到这里等\n    json: 输出Json的格式字符串\n    xml : 输出xml的格式字符串\n    file: 保存到文件\n###### 更多使用方法信息点击这里查看：[KLog](http://kaizige.vip/2016/06/13/klog/)\n## App网络管理 → [AppNetworkMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppNetworkMgr.java)\n    getNetworkState          : 获取当前手机连接的网络类型\n    isNetworkConnected       : 判断网络是否连接\n    openNetSetting           : 打开网络设置界面\n    is3gConnected            : 检测3G是否连接\n    getNetworkTypeName       : 获取网络类型名称\n    getCurrentNetworkState   : 获取当前网络的状态\n    getCurrentNetworkSubtype : 获取当前网络的具体类型\n    isConnectedByState       : 判断当前网络是否已经连接\n    isConnectingByState      : 判断当前网络是否正在连接\n    isDisconnectedByState    : 判断当前网络是否已经断开\n    isDisconnectingByState   : 判断当前网络是否正在断开\n    isSuspendedByState       : 判断当前网络是否已经暂停\n    isUnknownByState         : 判断当前网络是否处于未知状态中\n    isBluetoothByType        : 判断当前网络的类型是否是蓝牙\n    isDummyByType            : 判断当前网络的类型是否是虚拟网络\n    isEthernetByType         : 判断当前网络的类型是否是ETHERNET\n    isMobileByType           : 判断当前网络的类型是否是移动网络\n    isMobileDunByType        : 判断当前网络的类型是否是MobileDun\n    isMobileHipriByType      : 判断当前网络的类型是否是MobileHipri\n    isMobileMmsByType        : 判断当前网络的类型是否是MobileMms\n    isMobileSuplByType       : 判断当前网络的类型是否是MobileSupl\n    isWifiByType             : 判断当前网络的类型是否是Wifi\n    isWimaxByType            : 判断当前网络的类型是否是Wimax\n    is1XRTTBySubtype         : 判断当前网络的具体类型是否是1XRTT\n    isCDMABySubtype          : 判断当前网络的具体类型是否是CDMA（Either IS95A or IS95B）\n    isEDGEBySubtype          : 判断当前网络的具体类型是否是EDGE\n    isEHRPDBySubtype         :  判断当前网络的具体类型是否是EHRPD\n    isEVDO_0BySubtype        : 判断当前网络的具体类型是否是EVDO_0\n    isEVDO_ABySubtype        : 判断当前网络的具体类型是否是EVDO_A\n    isEVDO_BBySubtype        : 判断当前网络的具体类型是否是EDGE\n    isGPRSBySubtype          : 判断当前网络的具体类型是否是GPRS\n    isHSDPABySubtype         : 判断当前网络的具体类型是否是HSDPA\n    isHSPABySubtype          : 判断当前网络的具体类型是否是HSPA\n    isHSPAPBySubtype         : 判断当前网络的具体类型是否是HSPAP\n    isHSUPABySubtype         : 判断当前网络的具体类型是否是HSUPA\n    isIDENBySubtype          : 判断当前网络的具体类型是否是IDEN\n    isLTEBySubtype           : 判断当前网络的具体类型是否是LTE\n    isUMTSBySubtype          : 判断当前网络的具体类型是否是UMTS\n    isUNKNOWNBySubtype       : 判断当前网络的具体类型是否是UNKNOWN\n    isChinaMobile2G          : 判断当前网络是否是中国移动2G网络\n    isChinaUnicom2G          : 判断当前网络是否是中国联通2G网络\n    isChinaUnicom3G          : 判断当前网络是否是中国联通3G网络\n    isChinaTelecom2G         : 判断当前网络是否是中国电信2G网络\n    isChinaTelecom3G         : 判断当前网络是否是中国电信3G网络\n    getWifiState             : 获取Wifi的状态，需要ACCESS_WIFI_STATE权限\n    isWifiOpen               : 判断Wifi是否打开，需要ACCESS_WIFI_STATE权限\n    setWifi                  : 设置Wifi，需要CHANGE_WIFI_STATE权限\n    isMobileNetworkOpen      : 判断移动网络是否打开，需要ACCESS_NETWORK_STATE权限\n    getIpAddress             : 获取本机IP地址\n    setDataEnabled           : 设置数据流量状态\n    getWifiScanResults       : 获取wifi列表\n    getScanResultsByBSSID    : 过滤扫描结果\n    getWifiConnectionInfo    : 获取wifi连接信息\n    getProxy                 : 获得Proxy地址\n\n## 手机管理工具类 → [AppPhoneMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppPhoneMgr.java)\n    getInstance          : 单例对象\n    getSDKVersionNumber  : 获取手机系统版本号\n    getPhoneModel        : 获取手机型号\n    getPhoneWidth        : 获取手机宽度\n    getPhoneHeight       : 获取手机高度\n    getPhoneImei         : 获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID\n    getPhoneSim          : 获取手机sim卡号\n    getPhoneNum          : 获取手机号\n    isSDCardMount        : 判断sd卡是否挂载\n    getSDFreeSize        : 获取sd卡剩余空间的大小\n    getSDAllSize         : 获取sd卡空间的总大小\n    isTablet             : 判断是否是平板\n    isApkInstalled       : 判断一个apk是否安装\n    getAppPermissions    : 获取应用权限 名称列表\n    getInstalledApp      : 获取手机内安装的应用\n    getUserInstalledApp  : 获取手机安装非系统应用\n    getInstalledAppInfo  : 获取安装应用的信息\n    startAppPkg          : 打开指定包名的应用\n    unInstallApk         : 卸载指定包名的应用\n    callPhone            : 直接呼叫指定的号码\n    toCallPhoneActivity  : 跳转至拨号界面\n    sendMessage          : 直接调用短信API发送信息(设置监听发送和接收状态)\n    toSendMessageActivity: 跳转至发送短信界面(自动设置接收方的号码)\n    toChooseContactsList : 跳转至联系人选择界面\n    getChoosedPhoneNumber: 获取选择的联系人的手机号码\n    toCameraActivity     : 跳转至拍照程序界面\n    toImagePickerActivity: 跳转至相册选择界面\n    getChoosedImage      : 获得选中相册的图片\n    openWebSite          : 调用本地浏览器打开一个网页\n    toSettingActivity    : 跳转至系统设置界面\n    toWIFISettingActivity: 跳转至WIFI设置界面\n    openPDFFile          : 启动本地应用打开PDF\n    openWordFile         : 启动本地应用打开PDF\n    openOfficeByWPS      : 调用WPS打开office文档\n    isInstalledApp       : 判断是否安装指定包名的APP\n    isExistActivity      : 判断是否存在指定的Activity\n    getPhoneType         : 获取移动终端类型\n    isSimCardReady       : 判断sim卡是否准备好\n    getPhoneStatus       : 获取手机状态信息\n    getAllSMS            : 获取手机短信并保存到xml中\n    isGpsEnabled         : Gps是否打开\n\n## 反射工具类 → [AppReflectionMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppReflectionMgr.java)\n    getProperty          : 得到某个对象的公共属性\n    getStaticProperty    : 得到某类的静态公共属性\n    invokeMethod         : 执行某对象方法\n    invokeStaticMethod   : 执行某类的静态方法\n    newInstance          : 新建实例\n    isInstance           : 是不是某个类的实例\n    getByArray           : 得到数组中的某个元素\n    GetClassListByPackage: 得到类的集合\n## 获取本地指定资源信息 → [AppResourceMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppResourceMgr.java)\n    getStringByAssets    : 根据本地Assets目录下资源名称，获取String数据信息\n    getListByAssets      : 根据本地Assets目录下资源名称，获取List集合信息\n    getStringByRaw       : 根据本地Raw目录下资源标识，获取String数据信息\n    getListByRaw         : 根据本地Raw目录下资源标识，获取List集合信息\n    getResourceId        : 根据资源名获得资源id\n    readBytesFromAssets  : 从assets目录下读取文件内容\n    readBytesFromRaw     : 从res/raw目录下读取文件内容\n    readStringFromAssets : 从assets目录读取文本\n    readStringFromRaw    : 从raw目录读取文本\n    getString            : 获得字符串\n    getColor             : 获得颜色\n    getDrawable          : 获得Drawable\n\n## 有关Android屏幕的工具类 → [AppScreenMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppScreenMgr.java)\n    getScreenWidth           : 获得屏幕宽度\n    getScreenHeight          : 获得屏幕高度\n    getStatusHeight          : 获得状态栏的高度\n    getRealScreenHeight      : 获取整块屏幕的高度\n    getNavigationAreaHeight  : 获取虚拟按键区域的高度\n    getNavigationBarrH       : 获取导航栏高度\n    snapShotWithStatusBar    : 获取当前屏幕截图，包含状态栏\n    snapShotWithoutStatusBar : 获取当前屏幕截图，不包含状态栏\n    getTitleBarHeight        : 获得标题栏高度\n    getStatusBarHeight       : 获取通知栏高度\n    takeScreenShot           : 获取指定Activity的截屏，保存到png文件\n    savePic                  : 保存bitmap\n    captureWebView           : 截取webView快照(webView加载的整个内容的大小)\n    shoot                    : 截屏并保存\n    shootWebView             : 截屏并保存\n## 获取App应用系统基本信息 → [AppSysMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppSysMgr.java)\n    getSysClientOs             : 获得客户端操作系统名称\n    getSysSdk                  : 获取当前操作系统的sdk版本\n    getSysLanguage             : 获取当前操作系统的语言\n    getSysModel                : 获取手机型号\n    getSysRelease              : 获取操作系统的版本号\n    getSysSIMSerialNum         : 读取SIM卡序列号\n    getSysCPUSerialNum         : 获取手机CPU序列号\n    getSysTelephonyManager     : 获得电话管理实例对象\n    getSysTelephoneSerialNum   : 读唯一的设备ID(唯一的设备ID【GSM手机的IMEI】和【CDMA手机的 MEID】,如果获取不到返回一个默认字符串)\n    getSysCarrier              : 获取运营商信息(三大运营商)\n    getSysPhoneState           : 获取手机状态(0：无活动 1：响铃 2：待机)\n    getSysPhoneLoaction        : 获得手机方位\n    getSysDeviceSoftVersion    : 获得设备的软件版本号(注：the IMEI/SV(software version) for GSM phones 不支持返回“not available”)\n    getSysPhoneNumber          : 获得手机号\n    getSysSimCode              : 获得SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字。(注：SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断))\n    getSysSimPrivatorName      : 服务商名称(注:例如：中国移动、联通SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断))\n    getSysUserPhoneId          : 唯一的用户ID (注：例如：IMSI(国际移动用户识别码) for a GSM phone. 需要权限：READ_PHONE_STATE)\n    getWindowManager           : 获取WindowManager对象\n    getSysDefaultThreadPoolSize: 获得系统配置相符的线程池大小\n    getSysSampleSize           : 获取当前APP应用的SampleSize大小\n    getVibrator                : 获取震动器对象\n    getSysLocalIpAddress       : 获取手机IP地址\n    getAndroidID               : 获取AndroidID\n    getIMSI                    : 获取设备IMSI码\n    getIP                      : 获取网络IP地址(优先获取wifi地址)\n    getWifiIP                  : 获取WIFI连接下的ip地址\n    getGPRSIP                  : 获取GPRS连接下的ip地址\n    getSerial                  : 获取设备序列号\n    getSIMSerial               : 获取SIM序列号\n    getMNC                     : 获取网络运营商 46000,46002,46007 中国移动,46001 中国联通,46003 中国电信\n    getCarrier                 : 获取网络运营商：中国电信,中国移动,中国联通\n    getModel                   : 获取硬件型号\n    getBuildBrand              : 获取编译厂商\n    getBuildHost               : 获取编译服务器主机\n    getBuildTags               : 获取描述Build的标签\n    getBuildTime               : 获取系统编译时间\n    getBuildUser               : 获取系统编译作者\n    getBuildVersionRelease     : 获取编译系统版本(5.1)\n    getBuildVersionCodename    : 获取开发代号\n    getBuildVersionIncremental : 获取源码控制版本号\n    getBuildVersionSDK         : 获取编译的SDK\n    getBuildID                 : 获取修订版本列表(LMY47D)\n    getSupportedABIS           : CPU指令集\n    getManufacturer            : 获取硬件制造厂商\n    getBootloader              : 获取系统启动程序版本号\n    getDisplayVersion          : 获取系统版本号\n    getLanguage                : 获取语言\n    getCountry                 : 获取国家\n    getOSVersion               : 获取系统版本:5.1.1\n    getGSFID                   : 获取GSF序列号\n    getBluetoothMAC            : 获取蓝牙地址\n    getPsuedoUniqueID          : Android设备物理唯一标识符\n    getFingerprint             : 构建标识,包括brand,name,device,version.release,id,version.incremental,type,tags这些信息\n    getHardware                ：获取硬件信息\n    getProduct                 ：获取产品信息\n    getDevice                  ：获取设备信息\n    getBoard                   ：获取主板信息\n    getRadioVersion            ：获取基带版本(无线电固件版本 Api14以上)\n    getUA                      : 获取的浏览器指纹(User-Agent)\n    getDensity                 : 获取得屏幕密度\n    getGoogleAccounts          : 获取google账号\n## 自定义Toast提示框 → [AppToastMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppToastMgr.java)\n    shortToast            : 自定义Toast调用\n    longToast             : 自定义Toast调用\n    cancelToast           : 取消显示Toast\n    Toast                 : 默认Toast调用\n    show                  : 屏幕中心位置短时间显示Toast。\n    ToastShortBottomCenter: 屏幕底部中间位置显示短时间Toast\n    ToastShortBottomLeft  : 屏幕底部左边位置短时间显示Toast\n    ToastShortBottomRight : 屏幕底部右边位置短时间显示Toast\n    ToastShortCenter      : 屏幕中心位置短时间显示Toast\n    ToastShortCenterLeft  : 屏幕中心左边位置短时间显示Toast\n    ToastShortCenterRight : 屏幕中心右边位置短时间显示Toast\n    ToastShortTopCenter   : 屏幕顶部中心位置短时间显示Toast\n    ToastShortTopLeft     : 屏幕顶部左边位置短时间显示Toast\n    ToastShortTopRight    : 屏幕顶部右边位置短时间显示Toast\n    ToastLongBottomCenter : 屏幕底部中间位置显示长时间Toast\n    ToastLongBottomLeft   : 屏幕底部左边位置长时间显示Toast\n    ToastLongBottomRight  : 屏幕底部右边位置长时间显示Toast\n    ToastLongCenter       : 屏幕中心位置长时间显示Toast\n    ToastLongCenterLeft   : 屏幕中心左边位置长时间显示Toast\n    ToastLongCenterRight  : 屏幕中心右边位置短时间显示Toast\n    ToastLongTopCenter    : 屏幕顶部中心位置长时间显示Toast\n    ToastLongTopLeft      : 屏幕顶部左边位置长时间显示Toast\n    ToastLongTopRight     : 屏幕顶部右边位置长时间显示Toast\n## 正则表达式 → [AppValidationMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppValidationMgr.java)\n    isEmpty              : 验证是否为空串 (包括空格、制表符、回车符、换行符组成的字符串 若输入字符串为null或空字符串,返回true)\n    isNotEmpty           : 是否不为空\n    isNotZero            : 验证非零正整数\n    isNumber             : 验证是数字\n    isUpChar             : 验证是大写字母\n    isLowChar            : 验证是小写字母\n    isLetter             : 验证是英文字母\n    isChinese            : 验证输入汉字\n    isRealName           : 验证真实姓名\n    isOneCode            : 验证是否是条形码\n    isEmail              : 验证邮箱是否正确\n    isPhone              : 验证手机号是否正确\n    isPlane              : 验证座机号码是否正确\n    isPostalCode         : 验证邮政编码是否正确\n    isIpAddress          : 验证IP地址是否正确\n    isURL                : 验证URL地址是否正确\n    isInteger            : 验证是否是正整数\n    isPoint              : 验证是否是小数\n    isBankNo             : 验证是否银行卡号\n    isIDCard             : 验证身份证号码是否正确\n    isPeculiarStr        : 判断是否有特殊字符\n    isUserName           : 判断是否为用户名账号(规则如下：用户名由下划线或字母开头，由数字、字母、下划线、点、减号组成的4-32位字符)\n    chineseLength        : 获取字符串中文字符的长度（每个中文算2个字符）\n    strLength            : 获取字符串的长度\n    subStringLength      : 获取指定长度的字符所在位置\n    isNumberLetter       : 是否只是字母和数字\n    isContainChinese     : 是否包含中文\n    convertStreamToString: 从输入流中获得String\n    cutString            : 截取字符串到指定字节长度\n    cutStringFromChar    : 截取字符串从第一个指定字符\n    strlen               : 获取字节长度\n    getSizeDesc          : 获取大小的描述\n    ip2int               : ip地址转换为10进制数\n    gainUUID             : 获取UUID\n    phoneNoHide          : 手机号码，中间4位星号替换\n    cardIdHide           : 银行卡号，保留最后4位，其他星号替换\n    idHide               : 身份证号，中间10位星号替换\n    checkVehicleNo       : 是否为车牌号（沪A88888）\n    isContinuousNum      : 判断字符串是否为连续数字 45678901等\n    isAlphaBetaString    : 是否是纯字母\n    isContinuousWord     : 判断字符串是否为连续字母 xyZaBcd等\n    isRealDate           : 是否是日期 20120506 共八位，前四位-年，中间两位-月，最后两位-日\n\n## Wifi管理工具类 → [AppWifiHelperMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppWifiHelperMgr.java)\n    isWifiEnabled     : Wifi状态\n    openWifi          : 打开wifi\n    closeWifi         : 关闭Wifi\n    lockWifi          : 锁定WiFI就是判断wifi是否建立成功，在这里使用的是held(握手) acquire\n    unLockWifi        : 解锁\n    wificreateWifiLock: 创建一个Wifi锁，需要时调用\n    startScan         : 扫描网络\n    getWifiList       : 获取wifi列表\n    getWifiConfigList : 获取wifi配置列表\n    lookupScanInfo    : 获取扫描WIFI列表的信息\n    getSSID           : 获取指定Wifi的ssid名称\n    getBSSID          : 获取指定Wifi的物理地址\n    getFrequency      : 获取指定Wifi的频率\n    getCapabilities   : 获取指定Wifi的功能\n    getLevel          : 获取指定Wifi的信号强度\n    getBSSID          : 获取SSID\n    getCurrentNetId   : 返回当前连接的网络的ID\n    getWifiInfo       : 返回所有信息\n    getIP             ： 获取IP地址\n    addNetWordLink    ： 添加一个连接\n    disableNetWordLink： 禁用一个链接\n    removeNetworkLink ： 移除一个链接\n    hiddenSSID        : 不显示SSID\n    displaySSID       : 显示SSID\n## 类型转换类 → [ConvertUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/ConvertUtils.java)\n    hexStringToBytes: 十六进制字符串转换为byte数组\n    bytesToHexString: byte数组转换为十六进制字符串\n    charToByte      : char转换为byte数组\n    intToByte       : int转换为byte数组\n    byteToInt       : byte数组转换为int\n    saveDecimals    : 保留几位小数\n    nullOfString    : null转String\n    stringToByte    : String转Byte\n    stringToBoolean : String转Boolean\n    stringToInt     : String转Int\n    stringToShort   : String转Short\n    stringToDouble  : String转Double\n    intToString     : Int转String\n    doubleToLong    : Double转Long\n    doubleToInt     : Double转Int\n    longToDouble    : Long转Double\n    longToInt       : Long转Int\n    stringToLong    : String转Long\n    longToString    : Long转String\n## 日期管理类 → [AppDateMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppDateMgr.java)\n    todayYyyyMmDd           : 当天的年月日\n    todayHhMmSs             : 当天的时分秒\n    todayYyyyMmDdHhMmSs     : 当天的年月日时分秒\n    parseYyyy               : 获取年\n    parseMm                 : 获取月\n    parseDd                 : 获取日\n    parseYyyyMmDd           : 获取年月日\n    parseHhMmSs             : 时分秒\n    getWeekNumber           : 获取星期几\n    getWeekOfMonth          : 日期中某个月份的第几周\n    getWeekOfYear           : 日期中某个年份的第几周\n    dateTimeToTimeStamp     : 将年月日时分秒转成Long类型\n    timeStampToDateTime     : 将Long类型转成年月日时分秒\n    string2Date             : 将年月日时分秒转成Date类型\n    date2String             : 将Date类型转成年月日时分秒\n    dateIsBefore            : 比较日期\n    minutesBetweenTwoDate   : 相差多少分钟\n    getChineseZodiac        : 获取日期中的生肖\n    getZodiac               : 获取日期中的星座\n    getNowDayOffset         : 获取日期\n    getTime                 : 获取日期\n    forward                 : 使日期倒一天\n    isLeapYear              : 判断平年闰年\n    getDaysOfMonth          : 计算某月的天数\n    secondsMorning          : 获取当天凌晨的秒数\n    secondsNight            : 获取第二天凌晨的秒数\n    isSameDay               : 判断某两天是不是同一天\n    formatFriendly          : 将日期格式化成友好的字符串：几分钟前、几小时前、几天前、几月前、几年前、刚刚\n    formatDateTime          : 将日期以yyyy-MM-dd HH:mm:ss格式化\n    formatDateTime          : 将日期以yyyy-MM-dd HH:mm:ss格式化\n    formatDateTime          : 将日期以yyyy-MM-dd HH:mm:ss格式化\n    parseDate               : 将日期字符串转成日期\n    gainCurrentDate         : 获取系统当前日期\n    compareDate             : 验证日期是否比当前日期早\n    addDateTime             : 对日期进行增加操作\n    subDateTime             : 对日期进行相减操作\n    formatDateForExcelDate  : 格式化excel中的时间\n    formatDateForFileName   : 将日期格式化作为文件名\n    formatDateSecond        : 格式化日期(精确到秒)\n    tempDateSecond          : 格式化日期(精确到秒)\n    tempDateSecond          : 格式化日期(精确到秒)\n    formatDateDay           : 格式化日期(精确到天)\n    formatDateDetailDay     : 式化日期(精确到天)\n    formatNumber            : double类型的数字保留两位小数（四舍五入）\n    formateDate             : 将字符串转换成日期\n    parseStringToDate       : 将字符日期转换成Date\n    formatDoubleNumber      : 将double日期转换成String\n    getTimeMillis           : 获得指定Date类型的毫秒数\n    getCurrentDayTimeMillis : 获得当前时间的毫秒数\n    convertMillisecond      : 将格式化过的时间串转换成毫秒\n    getDateInterval         : 得到两个日期的天数\n    compareTime             : 时间比较\n\n## 手机常用单位转换的辅助类 → [DensityUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/DensityUtils.java)\n    dip2px: 据手机的分辨率从 dip 的单位 转成为 px(像素)\n    px2dip: 根据手机的分辨率从 px(像素) 的单位 转成为 dp\n    dp2px : dp转px\n    sp2px : sp转px\n    px2dp : px转dp\n    px2sp : px转sp\n## 文件管理类 → [FileUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/FileUtils.java)\n    createFileDir      : 创建目录\n    delFile            : 删除文件（若为目录，则递归删除子目录和文件）\n    getFileSize        : 取文件大小，单位为byte（若为目录，则包括所有子目录和文件）\n    saveBitmap         : 保存Bitmap到指定目录\n    isFileExists       : 判断某目录下文件是否存在\n    isMountedSDCard    : 检查是否已挂载SD卡镜像（是否存在SD卡）\n    gainSDFreeSize     : 获取SD卡剩余容量（单位Byte）\n    gainSDAllSize      : 获取SD卡总容量（单位Byte）\n    gainSDCardPath     : 获取可用的SD卡路径（若SD卡不没有挂载则返回\"\"）\n    readFileByLines    : 以行为单位读取文件内容，一次读一整行，常用于读面向行的格式化文件\n    saveToFile         : 保存内容\n    saveToFile         : 指定编码保存内容\n    appendToFile       : 追加文本\n    isExsit            : 判断文件是否存在\n    read               : 快速读取程序应用包下的文件内容\n    read               : 读取指定目录文件的文件内容\n    read               : 以行为单位读取文件内容，一次读一整行，常用于读面向行的格式化文件\n    readRawValue       : 读取raw目录的文件内容\n    readAssetsValue    : 读取assets目录的文件内容\n    readAssetsListValue: 读取assets目录的文件内容\n    readShrePerface    : 获取SharedPreferences文件内容\n    writeShrePerface   : 写入SharedPreferences文件内容\n    write              : 写入应用程序包files目录下文件\n    write              : 指定编码将内容写入目标文件\n    write              : 指定目录写入文件内容\n    write              : 写入文件\n    saveAsJPEG         : 指定目录写入文件内容\n    saveAsPNG          : 指定目录写入文件内容\n    getStringFromFile  : 将文件转成字符串\n    copyFile           : 复制文件\n    copyFileFast       : 快速复制\n    shareFile          : 分享文件\n    zip                : 压缩\n    unzip              : 解压\n    formatFileSize     : 格式化文件大小\n    Stream2File        : 将输入流写入到文件\n    createFolder       : 创建文件夹(支持覆盖已存在的同名文件夹)\n    getFileName        : 获取文件名\n    rename             : 重命名文件\\文件夹\n    getFolderName      : 获取文件夹名称\n    getFilesArray      : 获取文件夹下所有文件\n    openImage          : 打开图片\n    openVideo          : 打开视频\n    openURL            : 打开URL\n    downloadFile       : 下载文件\n    upgradeApp         : 通过APKURL升级应用\n## 控件点击效果动画工具类 → [ToolAnimation](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/ToolAnimation.java)\n    addTouchDrak : 给视图添加点击效果,让背景变深\n    addTouchLight: 给视图添加点击效果,让背景变暗\n## view管理类 → [ViewUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/ViewUtils.java)\n    removeSelfFromParent   : 把自身从父View中移除\n    isTouchInView          : 判断触点是否落在该View上\n    setTVUnderLine         : 给TextView设置下划线\n    showPopupWindow        : 显示PopupWindow\n    dismissPopup           : 关闭PopupWindow\n    captureView            : 截图\n    createViewBitmap       : 截图\n    convertViewToBitmap    : 截图\n    getActivityBitmap      : 获取Activity的截图\n    getStatusBarHeight     : 获取状态栏高度\n    getToolbarHeight       : 获取工具栏高度\n    getNavigationBarHeight : 获取导航栏高度\n    measureView            : 测量view\n    getViewWidth           : 获取view的宽度\n    getViewHeight          : 获取view的高度\n    getActivity            : 获取view的上下文\n## 提供APP应用计算，算法等 -\u003e [AppCalculateMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppCalculateMgr.java)\n    distance        : 两点间的距离\n    pointTotoDegrees: 计算点a(x,y)的角度\n    checkInRound    : 点在圆内\n## SpannableString工具类 → [SpannableStringUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/SpannableStringUtils.java)\n    Builder.setFlag           : 设置标识\n    Builder.setForegroundColor: 设置前景色\n    Builder.setBackgroundColor: 设置背景色\n    Builder.setQuoteColor     : 设置引用线的颜色\n    Builder.setLeadingMargin  : 设置缩进\n    Builder.setMargin         : 设置间距\n    Builder.setBullet         : 设置列表标记\n    Builder.setFontSize       : 设置字体尺寸\n    Builder.setFontProportion : 设置字体比例\n    Builder.setFontXProportion: 设置字体横向比例\n    Builder.setStrikethrough  : 设置删除线\n    Builder.setUnderline      : 设置下划线\n    Builder.setSuperscript    : 设置上标\n    Builder.setSubscript      : 设置下标\n    Builder.setBold           : 设置粗体\n    Builder.setItalic         : 设置斜体\n    Builder.setBoldItalic     : 设置粗斜体\n    Builder.setFontFamily     : 设置字体系列\n    Builder.setTypeface       : 设置字体\n    Builder.setAlign          : 设置对齐\n    Builder.setBitmap         : 设置图片\n    Builder.setDrawable       : 设置图片\n    Builder.setUri            : 设置图片\n    Builder.setResourceId     : 设置图片\n    Builder.setClickSpan      : 设置点击事件\n    Builder.setUrl            : 设置超链接\n    Builder.setBlur           : 设置模糊\n    Builder.append            : 追加样式字符串\n    Builder.create            : 创建样式字符串\n## Snackbar工具类 → [SnackbarUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/SnackbarUtils.java)\n    ShortSnackbar     : 短显示Snackbar，自定义颜色\n    LongSnackbar      : 长显示Snackbar，自定义颜色\n    IndefiniteSnackbar: 自定义时常显示Snackbar，自定义颜色\n    ShortSnackbar     : 短显示Snackbar，可选预设类型\n    LongSnackbar      : 显示Snackbar，可选预设类型\n    IndefiniteSnackbar: 自定义时常显示Snackbar，可选预设类型\n    setSnackbarColor  : 设置Snackbar背景颜色\n    setSnackbarColor  : 设置Snackbar文字和背景颜色\n    SnackbarAddView   : 向Snackbar中添加view\n## Picasso图片加载工具类 → [PicassoUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/PicassoUtils.java)\n    getinstance               : 单例对象\n    LoadImage                 : 加载图片\n    LoadImageWithWidtAndHeight: 加载图片,设置宽高,图片默认居中(centerCrop())\n## Glide图片加载工具类 → [GlideUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/GlideUtils.java)\n    instance                         : 单例对象\n    LoadContextBitmap                : Glide请求图片，会受到Context生命周期控制\n    LoadFragmentBitmap               : Glide请求图片，会受到Fragment生命周期控制\n    LoadSupportv4FragmentBitmap      : Glide请求图片，会受到support.v4.app.Fragment生命周期控制\n    LoadContextCircleBitmap          : 加载设置圆形图片\n    LoadfragmentCircleBitmap         : Glide请求图片设置圆形，会受到android.app.Fragment生命周期控制\n    LoadSupportv4FragmentCircleBitmap: Glide请求图片设置圆形，会受到android.support.v4.app.Fragment生命周期控制\n    LoadContextRoundBitmap           : 加载设置圆角图片\n    LoadfragmentRoundBitmap          : Glide请求图片设置圆角，会受到android.app.Fragment生命周期控制\n    LoadSupportv4FragmentRoundBitmap : Glide请求图片设置圆角，会受到android.support.v4.app.Fragment生命周期控制\n    LoadContextBlurBitmap            : Glide加载模糊图片\n    LoadFragmentBlurBitmap           : Glide加载模糊图片会受到Fragment生命周期控制\n    LoadSupportv4FragmentBlurBitmap  : Glide加载模糊图片会受到support.v4.app.Fragment生命周期控制\n    LoadContextRotateBitmap          : 旋转图片\n    LoadFragmentRotateBitmap         : Glide加载旋转图片会受到Fragment生命周期控制\n    LoadSupportv4FragmentRotateBitmap: Glide加载旋转图片会受到support.v4.app.Fragment生命周期控制\n## Fresco图片加载工具类 → [FrescoUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/FrescoUtils.java)\n    initConfig             : 初始化配置\n    initImagePipelineConfig: 单例\n    init                   : 默认加载图片和失败图片\n    configureCaches        : 初始化配置\n    setImageURI            : 开始加载图片\n    changeImgSize          : 自定义图片尺寸\n    loadGif                : 加载gif图\n    moreImgRequst          : 多图请求需自定义ImageRequest(图片预览)\n    localImg               : 缩略图预览(仅支持本地图片,并且是JPEG图片格式)\n    loadImage              : 请求图片\n    getImageDecodeOptions  : 图片解码\n## 图片管理工具类 → [AppImageMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppImageMgr.java)\n    getBitmap                  : 根据drawable id获取Bitmap\n    getDrawable                : 根据drawable id获取Drawable\n    bitmapToDrawble            : bitmap转drawable\n    readDrawableBitmap         : 以最省内存的方式读取本地资源的图片\n    readDrawableBigBitmap      : 读取本地drawable中较大的资源图片\n    getBitmapFromFile          : 从文件得到BitMap\n    getBitmapByteArray         : 从数组得到Bitmap\n    getBitmapFromStream        : 从流中得到Bitmap\n    setAlpha                   : 图片透明度处理\n    getImgCacheFromLocal2Bitmap: 获取源图片的BITMAP，压缩，本地图片\n    getBitmap2Byte             : bitmap转byte[]\n    decodeBitmapToThumbnail    : 获取缩略图\n    saveImage                  : 保存图片\n    grayMasking                : 光晕效果\n    getBitmapSize              : 获取bitmap的字节大小\n    convertToBlackWhite        : 将彩色图转换为黑白图\n    convertToRoundedCorner     : 转换成圆角\n    BoxBlurFilter              : 高斯模糊\n    getCircleBitmap            : 圆形图片\n    getRoundedCornerBitmap     : 获取圆角\n    lessenBitmap               : 按比例缩小图片（单位像素） lessen the bitmap\n    readPictureDegree          : 判断图片旋转情况\n    rotaingImageView           : 旋转图片\n    rotateBitmap               : 图片旋转\n    getBitmapFromUri           : 根据uri获取图片\n    getPicPathFromUri          : 图片uri转path\n    getSmallBitmap             : 根据路径获得图片并压缩返回bitmap用于显示\n    decodeBitmap               : 从文件中获取图片\n    computeSampleSize          : 使用该算法，就可动态计算出图片的inSampleSize\n    applyDimension             : 长度单位转换\n## 资金运算工具类 → [AppBigDecimal](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppBigDecimal.java)\n    add              : 提供精确的加法运算\n    substract        : 提供精确的减法运算\n    multiply         : 提供精确的乘法运算\n    divide           : 提供（相对）精确的除法运算.当发生除不尽的情况时,由scale参数指 定精度,以后的数字四舍五入.\n    round            : 提供精确的小数位四舍五入处理\n    remainder        : 取余数\n    formatMoney      : 金额分割，四舍五人金额\n    compareBigDecimal: 比较大小\n    adjustDouble     : 获取自己想要的数据格式\n## WebService网络工具类 → [WebServiceUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/WebServiceUtils.java)\n    callWebService: 请求网络数据\n## HttpURLConnection网络工具类 → [HttpURLConnectionUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/HttpURLConnectionUtils.java)\n    doGetAsyn : 异步的Get请求\n    doPostAsyn: 异步的Post请求\n    doGet     : Get请求，获得返回数据\n    doPost    : 向指定 URL 发送POST方法的请求\n\n## 字符串判断工具类 → [AppStringUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppStringUtils.java)\n    isEmpty                  : 判断字符串是否为空\n    isNotEmpty               : 判断str null,\"\",\"null\" 均视为空\n    checkNameChese           : 检测String是否全是中文\n    isChinese                : 判定输入汉字\n    toLowerCaseFirstOne      : 将字符串的第一位转为小写\n    toUpperCaseFirstOne      : 将字符串的第一位转为大写\n    underScoreCase2CamelCase : 下划线命名转为驼峰命名\n    camelCase2UnderScoreCase : 驼峰命名法转为下划线命名\n    throwable2String         : 将异常栈信息转为字符串\n    concat                   : 字符串连接，将参数列表拼接为一个字符串\n    concatSpiltWith          : 字符串连接，将参数列表拼接为一个字符串\n    toASCII                  : 将字符串转移为ASCII码\n    toUnicode                : 将字符串转移为Unicode码\n    toUnicodeString          : 将字符串转移为Unicode码\n    containsChineseChar      : 是否包含中文字符\n    isNumber                 : 参数是否是有效数字 （整数或者小数）\n    matcherFirst             : 匹配到第一个字符串\n    isInt                    : 参数是否是有效整数\n    isDouble                 : 字符串参数是否是double\n    isBoolean                : 判断一个对象是否为boolean类型,包括字符串中的true和false\n    isTrue                   : 对象是否为true\n    contains                 : 判断一个数组里是否包含指定对象\n    toInt                    : 将对象转为int值,如果对象无法进行转换,则使用默认值\n    toLong                   : 将对象转为long类型,如果对象无法转换,将返回默认值\n    toDouble                 : 将对象转为Double,如果对象无法转换,将使用默认值\n    splitFirst               : 分隔字符串,根据正则表达式分隔字符串,只分隔首个,剩下的的不进行分隔,如: 1,2,3,4 将分隔为 ['1','2,3,4']\n    toString                 : 将对象转为字符串,如果对象为null,则返回null,而不是\"null\"\n    toStringAndSplit         : 将对象转为String后进行分割，如果为对象为空或者空字符,则返回null\n## Json工具类 → [JsonUtils]()\n    toJson            : 对象转json\n    fromJson          : json转对象\n    map2Json          : Map转为JSONObject\n    collection2Json   : 集合转换为JSONArray\n    object2Json       : Object对象转换为JSONArray\n    string2JSONObject : json字符串生成JSONObject对象\n    object2json       : 对象转换为Json\n    list2json         : List集合转换为Json\n    array2json        : 对象数组转换为Json\n    set2json          : Set集合转为Json\n    string2json       : 字符串转换为Json\n## 系统媒体管理工具类 → [MediaUtil]()\n    startActivityForCamera   : 进入系统拍照\n    startActivityForGallery  : 进入系统图库\n    startActivityForImageCut : 进入系统裁剪\n## GPS坐标转换工具 → [CoordinateTransformUtil]()\n    bd09towgs84  : 百度坐标系(BD-09)转WGS坐标(百度坐标纬度,百度坐标经度),WGS84坐标数组\n    wgs84tobd09  : WGS坐标转百度坐标系(BD-09)(WGS84坐标系的经度,WGS84坐标系的纬度),百度坐标数组\n    gcj02tobd09  : 火星坐标系(GCJ-02)转百度坐标系(BD-09)(火星坐标经度,火星坐标纬度),百度坐标数组\n    bd09togcj02  : 百度坐标系(BD-09)转火星坐标系(GCJ-02)(百度坐标纬度,百度坐标经度),火星坐标数组\n    wgs84togcj02 : WGS84转GCJ02(火星坐标系)(WGS84坐标系的经度,WGS84坐标系的纬度),火星坐标数组\n    gcj02towgs84 : GCJ02(火星坐标系)转GPS84(火星坐标系的经度,火星坐标系纬度),WGS84坐标数组\n    transformlat : 纬度转换\n    transformlng : 经度转换\n    out_of_china : 判断是否在国内，不在国内不做偏移\n## 程序崩溃处理类 → [CrashHandlerUtil]()\n    getInstance ： 获取CrashHandler实例 ,单例模式\n    init        ： 初始化\n    setCrashTip ： 设置程序退出时的提示信息\n## html标签管理类 → [HtmlUtils]()\n    addHtmlRedFlag : 为给定的字符串添加HTML红色标记，当使用Html.fromHtml()方式显示到TextView 的时候其将是红色的\n    keywordMadeRed : 将给定的字符串中所有给定的关键字标红\n## root权限工具类 → [RootPermissionUtils]()\n    isRoot : 根据/system/bin/或/system/xbin目录下是否存在su文件判断是否已ROOT\n## 快捷图标管理类 → [ShortCutUtils]()\n    hasShortcut : 检测是否存在快捷键\n    addShortcut : 为程序创建桌面快捷方式\n    delShortcut : 删除程序的快捷方式\n## 单例工具类 → [SingletonUtils]()\n    getInstance : 获取单例\n    getInstance : 获取单例\n## WebView管理类 → [WebViewManager]()\n    enableAdaptive                            : 开启自适应功能\n    disableAdaptive                           : 禁用自适应功能\n    enableZoom                                : 开启缩放功能\n    disableZoom                               : 禁用缩放功能\n    enableJavaScript                          : 开启JavaScript\n    disableJavaScript                         : 禁用JavaScript\n    enableJavaScriptOpenWindowsAutomatically  : 开启JavaScript自动弹窗\n    disableJavaScriptOpenWindowsAutomatically : 禁用JavaScript自动弹窗\n    goBack                                    : 返回\n## 窗口管理类 → [WindowUtils]()\n    getDisplayRotation    : 获取当前窗口的旋转角度\n    isLandscape           : 当前是否是横屏\n    isPortrait            : 当前是否是竖屏\n    dimBackground         : 调整窗口的透明度  1.0f,0.5f 变暗\n    setLandscape          : 设置Activity为横屏\n    setPortrait           : 设置Activity为竖屏\n    setActivityFullScreen : 设置全屏,要在setContentView之前调用\n## pull解析xml管理类 → [XmlParseUtiles]()\n    getXmlList   : 解析XML\n    getXmlObject : 解析XML\n    setXmlValue  : 把xml标签的值，转换成对象里属性的值\n## 压缩工具类 → [ZipUtil]()\n    zipFiles              : 批量压缩文件（夹）\n    upZipFile             : 解压缩一个文件\n    upZipSelectedFile     : 解压文件名包含传入文字的文件\n    getEntriesNames       : 获得压缩文件内文件列表\n    getEntriesEnumeration : 获得压缩文件内压缩文件对象以取得其属性\n    getEntryComment       : 取得压缩文件对象的注释\n    getEntryName          : 取得压缩文件对象的名称\n    zipFile               : 压缩文件\n## Fragment管理类 → [FragmentUtils]()\n    addFragment              : 新增fragment\n    addFragment              : 新增fragment\n    hideAddFragment          : 先隐藏后新增fragment\n    addFragments             : 新增多个fragment\n    removeFragment           : 移除fragment\n    removeToFragment         : 移除到指定fragment\n    removeFragments          : 移除同级别fragment\n    removeAllFragments       : 移除所有fragment\n    replaceFragment          : 替换fragment\n    popFragment              : 出栈fragment\n    popToFragment            : 出栈到指定fragment\n    popFragments             : 出栈同级别fragment\n    popAllFragments          : 出栈所有fragment\n    popAddFragment           : 先出栈后新增fragment\n    hideFragment             : 隐藏fragment\n    hideFragments            : 隐藏同级别fragment\n    showFragment             : 显示fragment\n    hideShowFragment         : 先隐藏后显示fragment\n    getLastAddFragment       : 获取同级别最后加入的fragment\n    getLastAddFragmentInStack: 获取栈中同级别最后加入的fragment\n    getTopShowFragment       : 获取顶层可见fragment\n    getTopShowFragmentInStack: 获取栈中顶层可见fragment\n    getFragments             : 获取同级别fragment\n    getFragmentsInStack      : 获取栈中同级别fragment\n    getAllFragments          : 获取所有fragment\n    getAllFragmentsInStack   : 获取栈中所有fragment\n    getPreFragment           : 获取目标fragment的前一个fragment\n    findFragment             : 查找fragment\n    dispatchBackPress        : 处理fragment回退键\n    setBackgroundColor       : 设置背景色\n    setBackgroundResource    : 设置背景资源\n    setBackground            : 设置背景\n## AES对称加密 → [AESUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/encryption/AESUtils.java)\n    initKey ： 生成密钥\n    encrypt ： 加密\n    decrypt ： 解密\n## DES对称加密 → [DESUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/encryption/DESUtils.java)\n    initKey : 生成密钥\n    encrypt : DES 加密\n    decrypt : DES 解密\n## MD5加密 → [MD5Utils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/encryption/MD5Utils.java)\n    encryptMD5 : MD5加密\n## SHA-1加密不可逆 → [SHAUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/encryption/SHAUtils.java)\n    encryptSHA : SHA-512 加密\n## 3DES对称加密 → [TripleDESUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/encryption/TripleDESUtils.java)\n    initKey : 生成密钥\n    encrypt : 3DES 加密\n    decrypt : 3DES 解密\n## 加密工具类 → [CipherUtils]\n    md5 : 输入流转md5\n    XorEncode : 异或加密\n    XorDecode : 异或解密\n    sha1 : 字符串sha1值\n\n## About\n\u0026ensp;\u0026ensp;\u0026ensp;\u0026ensp;这里把开发中常用的一些工具类做一个整理，主要用到的时候不用再费力的百度或者Google了，大家有需要的可以随时借鉴走，同时也希望这个越来越强大，有什么错误的地方还希望各位不吝指出，让我得以完善，当然，在此声明，这些并不是我一个人，也用了许多前辈们的东西，这里一并感谢，目前还在测试，持续更新中。对你有用就给一个Start吧！\u003c/br\u003e\u003c/br\u003e\n#\n[![Travis branch](https://img.shields.io/badge/Github-Abraham-ff69b4.svg)](https://github.com/AbrahamCaiJin)\n[![Travis](https://img.shields.io/badge/简书-Abraham-blue.svg)](http://www.jianshu.com/u/8a0908d85e0a)\n[![CircleCI](https://img.shields.io/badge/Blog-Abraham-brightgreen.svg)](http://blog.csdn.net/u014727709?viewmode=contents)\n[![TeamCity (simple build status)](https://img.shields.io/badge/Weibo-Abraham%20-lightgrey.svg)](http://weibo.com/p/1005053895373916/home?from=page_100505\u0026mod=TAB\u0026is_all=1#place)\n[![Travis](https://img.shields.io/badge/QQ群-523167548%20-ff69b4.svg)](https://shang.qq.com/wpa/qunwpa?idkey=4898a63b0283bc98cc61daeeb9eb6648a34886cf554a3ec272063ef5d999b012)\u003c/br\u003e\n## Download\n\nGradle:\n``` groovy\nimplementation 'com.abrahamcaijin.commonutil:CommonUtil:1.0.3'\n\n```\nMaven:\n``` groovy\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.abrahamcaijin.commonutil\u003c/groupId\u003e\n  \u003cartifactId\u003eCommonUtil\u003c/artifactId\u003e\n  \u003cversion\u003e1.0.3\u003c/version\u003e\n  \u003ctype\u003epom\u003c/type\u003e\n\u003c/dependency\u003e\n```\n Ivy:\n``` groovy\n\u003cdependency org='com.abrahamcaijin.commonutil' name='CommonUtil' rev='1.0.3'\u003e\n  \u003cartifact name='CommonUtil' ext='pom' \u003e\u003c/artifact\u003e\n\u003c/dependency\u003e\n```\n## How to use\n\n```\n这里说明一下，发布1.0.2的时候手抖，把初始化改成了Utils，除了1.0.2，其他的版本号都是AppUtils\n// init it in the function of onCreate in ur Application\n1.0.1  1.0.3...\nAppUtils.init(context);\n1.0.2\nUtils.init(context);\n\n注：有些方法可能只更新到了GitHub上，还没更到jcenter上面，所以最好使用的时候拷贝到自己项目中使用，这样也能减少资源占用\n```\n## Proguard\n\n```\n-keep class com.jingewenku.abrahamcaijin.commonutil.** { *; }\n-keepclassmembers class com.jingewenku.abrahamcaijin.commonutil.** { *; }\n-dontwarn com.jingewenku.abrahamcaijin.commonutil.**\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbrahamCaiJin%2FCommonUtilLibrary","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FAbrahamCaiJin%2FCommonUtilLibrary","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FAbrahamCaiJin%2FCommonUtilLibrary/lists"}