diff --git a/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppValidationMgr.java b/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppValidationMgr.java
index 7d948aa..cfb00df 100644
--- a/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppValidationMgr.java
+++ b/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppValidationMgr.java
@@ -31,7 +31,7 @@ public class AppValidationMgr {
private final static Pattern email_pattern = Pattern.compile("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\\.[a-zA-Z0-9_-]+)+$");
//手机号表达式
- private final static Pattern phone_pattern = Pattern.compile("^(13|15|18)\\d{9}$");
+ private final static Pattern phone_pattern = Pattern.compile("^((13[0-9])|(15[^4])|(18[0-9])|(17[0-8])|(147,145))\\d{8}$");
//银行卡号表达式
private final static Pattern bankNo_pattern = Pattern.compile("^[0-9]{16,19}$");
diff --git a/README.md b/README.md
index f28b140..5247a7b 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,10 @@
+#
+[![Travis branch](https://img.shields.io/badge/Github-Abraham-ff69b4.svg)](https://github.com/AbrahamCaiJin)
+[![Travis](https://img.shields.io/badge/简书-Abraham-blue.svg)](http://www.jianshu.com/u/8a0908d85e0a)
+[![CircleCI](https://img.shields.io/badge/Blog-Abraham-brightgreen.svg)](http://blog.csdn.net/u014727709?viewmode=contents)
+[![TeamCity (simple build status)](https://img.shields.io/badge/Weibo-Abraham%20-lightgrey.svg)](http://weibo.com/p/1005053895373916/home?from=page_100505&mod=TAB&is_all=1#place)
+[![Travis](https://img.shields.io/badge/QQ群-523167548%20-ff69b4.svg)](https://shang.qq.com/wpa/qunwpa?idkey=4898a63b0283bc98cc61daeeb9eb6648a34886cf554a3ec272063ef5d999b012)
+
# API
## 银行卡管理 → [BankCheck](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/BankCheck.java)
@@ -12,9 +19,9 @@
remove : 移除某个key值已经对应的值
clear : 清除所有数据
contains: 查询某个key是否已经存在
- getAll : 返回所有的键值对
+ getAll : 返回所有的键值对
## 提供App数据清理工作的类 → [AppCleanMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppCleanMgr.java)
- cleanInternalCache : 清除本应用内部缓存数据
+ cleanInternalCache : 清除本应用内部缓存数据
cleanExternalCache : 清除本应用外部缓存数据
cleanDatabases : 清除本应用所有数据库
cleanSharedPreference: 清除本应用SharedPreference
@@ -22,8 +29,20 @@
cleanFiles : 清除本应用files文件
cleanApplicationData : 清除本应用所有的数据
getAppClearSize : 获取App应用缓存的大小
+## 缓存工具类 → [AppACache](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppACache.java)
+ put : 保存String数据到缓存中
+ getAsString : 读取String数据
+ getAsJSONObject : 读取JSONObject数据
+ getAsJSONArray : 读取JSONArray数据
+ getAsBinary : 获取byte数据
+ getAsObject : 读取Serializable数据
+ getAsBitmap : 读取bitmap数据
+ getAsDrawable : 读取Drawable数据
+ file : 获取缓存文件
+ remove : 除某个key
+ clear : 清除所有数据
## App应用退出 → [AppExit2Back](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppExit2Back.java)
- exitApp: 退出App程序应用
+ exitApp: 退出App程序应用
## 管理和回收Activity → [AppDavikActivityMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppDavikActivityMgr.java)
getScreenManager : 单例堆栈集合对象
removeActivity : 堆栈中销毁并移除
@@ -33,15 +52,42 @@
addActivity : 将Act纳入推栈集合中
exitApp : 退出栈中所有Activity
## 获取App应用版本信息 → [AppApplicationMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppApplicationMgr.java)
- getAppName : 获取本地apk的名称
- getVersionName: 获取本地Apk版本名称
- getVersionCode: 获取本地Apk版本号
- getMetaData : 根据key获取xml中Meta的值
+ getAppName : 获取本地apk的名称
+ getVersionName : 获取本地Apk版本名称
+ getVersionCode : 获取本地Apk版本号
+ getMetaData : 根据key获取xml中Meta的值
+ getAppIcon : 获取应用图标
+ getAppFirstInstallTime : 获取应用第一次安装日期
+ getAppLastUpdateTime : 获取应用更新日期
+ getAppSize : 获取应用大小
+ getAppApk : 获取应用apk文件
+ getAppInstaller : 获取应用的安装市场
+ getAppSign : 获取应用签名
+ getAppTargetSdkVersion : 获取应用兼容sdk
+ getAppUid : 获取应用uid
+ getNumCores : 获取Cpu内核数
+ getRootPermission : 获得root权限
+ getAppPermissions : 获取应用的所有权限
+ hasPermission : 是否有权限
+ isInstalled : 应用是否安装
+ installApk : 安装应用
+ uninstallApk : 卸载应用
+ isSystemApp : 是否是系统应用
+ isServiceRunning : 服务是否在运行
+ stopRunningService : 停止服务
+ killProcesses : 结束进程
+ runScript : 运行脚本
+ runApp : 启动应用
+ getPackageName : 获得包名
+ getApplicationMetaData : 获取application层级的metadata
+
## 软键盘管理 → [AppKeyBoardMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppKeyBoardMgr.java)
openKeybord : 打卡软键盘
closeKeybord : 关闭软键盘
TimerHideKeyboard: 通过定时器强制隐藏虚拟键盘
isKeybord : 输入法是否显示
+ hideInputMethod : 隐藏输入法
+ showInputMethod : 显示输入法
## 系统日志输出工具类 → [AppLogMessageMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppLogMessageMgr.java)
isEnableDebug: 设置log总开关,debug模式(true:打印日志 false:不打印)
i : Info日志
@@ -52,8 +98,8 @@
###### 这里推荐使用凯子哥的日志管理工具,灰常好用,我也集成到了我的项目里面,KLog对超长字符串进行处理,保证全部的字符串都可以打印出来,再也没有了只能打印一部分的问题了,部分使用方法如下
## 系统日志输出工具类 → [KLog](https://github.com/AbrahamCaiJin/CommonUtilLibrary/tree/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/klog)
init: 设置log总开关,debug模式(true:打印日志 false:不打印)
- a : assert日志或者打印是否执行到这里等
- i : Info日志或者打印是否执行到这里等
+ a : assert日志或者打印是否执行到这里等
+ i : Info日志或者打印是否执行到这里等
d : Debug日志或者打印是否执行到这里等
w : Warn日志或者打印是否执行到这里等
v : Verbose日志或者打印是否执行到这里等
@@ -63,9 +109,61 @@
file: 保存到文件
###### 更多使用方法信息点击这里查看:[KLog](http://kaizige.vip/2016/06/13/klog/)
## App网络管理 → [AppNetworkMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppNetworkMgr.java)
- getNetworkState : 获取当前手机连接的网络类型
- isNetworkConnected: 判断网络是否连接
- openNetSetting : 打开网络设置界面
+ getNetworkState : 获取当前手机连接的网络类型
+ isNetworkConnected : 判断网络是否连接
+ openNetSetting : 打开网络设置界面
+ is3gConnected : 检测3G是否连接
+ getNetworkTypeName : 获取网络类型名称
+ getCurrentNetworkState : 获取当前网络的状态
+ getCurrentNetworkSubtype : 获取当前网络的具体类型
+ isConnectedByState : 判断当前网络是否已经连接
+ isConnectingByState : 判断当前网络是否正在连接
+ isDisconnectedByState : 判断当前网络是否已经断开
+ isDisconnectingByState : 判断当前网络是否正在断开
+ isSuspendedByState : 判断当前网络是否已经暂停
+ isUnknownByState : 判断当前网络是否处于未知状态中
+ isBluetoothByType : 判断当前网络的类型是否是蓝牙
+ isDummyByType : 判断当前网络的类型是否是虚拟网络
+ isEthernetByType : 判断当前网络的类型是否是ETHERNET
+ isMobileByType : 判断当前网络的类型是否是移动网络
+ isMobileDunByType : 判断当前网络的类型是否是MobileDun
+ isMobileHipriByType : 判断当前网络的类型是否是MobileHipri
+ isMobileMmsByType : 判断当前网络的类型是否是MobileMms
+ isMobileSuplByType : 判断当前网络的类型是否是MobileSupl
+ isWifiByType : 判断当前网络的类型是否是Wifi
+ isWimaxByType : 判断当前网络的类型是否是Wimax
+ is1XRTTBySubtype : 判断当前网络的具体类型是否是1XRTT
+ isCDMABySubtype : 判断当前网络的具体类型是否是CDMA(Either IS95A or IS95B)
+ isEDGEBySubtype : 判断当前网络的具体类型是否是EDGE
+ isEHRPDBySubtype : 判断当前网络的具体类型是否是EHRPD
+ isEVDO_0BySubtype : 判断当前网络的具体类型是否是EVDO_0
+ isEVDO_ABySubtype : 判断当前网络的具体类型是否是EVDO_A
+ isEVDO_BBySubtype : 判断当前网络的具体类型是否是EDGE
+ isGPRSBySubtype : 判断当前网络的具体类型是否是GPRS
+ isHSDPABySubtype : 判断当前网络的具体类型是否是HSDPA
+ isHSPABySubtype : 判断当前网络的具体类型是否是HSPA
+ isHSPAPBySubtype : 判断当前网络的具体类型是否是HSPAP
+ isHSUPABySubtype : 判断当前网络的具体类型是否是HSUPA
+ isIDENBySubtype : 判断当前网络的具体类型是否是IDEN
+ isLTEBySubtype : 判断当前网络的具体类型是否是LTE
+ isUMTSBySubtype : 判断当前网络的具体类型是否是UMTS
+ isUNKNOWNBySubtype : 判断当前网络的具体类型是否是UNKNOWN
+ isChinaMobile2G : 判断当前网络是否是中国移动2G网络
+ isChinaUnicom2G : 判断当前网络是否是中国联通2G网络
+ isChinaUnicom3G : 判断当前网络是否是中国联通3G网络
+ isChinaTelecom2G : 判断当前网络是否是中国电信2G网络
+ isChinaTelecom3G : 判断当前网络是否是中国电信3G网络
+ getWifiState : 获取Wifi的状态,需要ACCESS_WIFI_STATE权限
+ isWifiOpen : 判断Wifi是否打开,需要ACCESS_WIFI_STATE权限
+ setWifi : 设置Wifi,需要CHANGE_WIFI_STATE权限
+ isMobileNetworkOpen : 判断移动网络是否打开,需要ACCESS_NETWORK_STATE权限
+ getIpAddress : 获取本机IP地址
+ setDataEnabled : 设置数据流量状态
+ getWifiScanResults : 获取wifi列表
+ getScanResultsByBSSID : 过滤扫描结果
+ getWifiConnectionInfo : 获取wifi连接信息
+ getProxy : 获得Proxy地址
+
## 手机管理工具类 → [AppPhoneMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppPhoneMgr.java)
getInstance : 单例对象
getSDKVersionNumber : 获取手机系统版本号
@@ -103,11 +201,12 @@
openOfficeByWPS : 调用WPS打开office文档
isInstalledApp : 判断是否安装指定包名的APP
isExistActivity : 判断是否存在指定的Activity
- getBootTimeString : 获取开机时间
- printSystemInfo : 打印系统信息
- getNetType : 获取网络类型
- getNativePhoneNumber : 获取当前设置的电话号码
- getMacAddress : 获取 MAC 地址
+ getPhoneType : 获取移动终端类型
+ isSimCardReady : 判断sim卡是否准备好
+ getPhoneStatus : 获取手机状态信息
+ getAllSMS : 获取手机短信并保存到xml中
+ isGpsEnabled : Gps是否打开
+
## 反射工具类 → [AppReflectionMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppReflectionMgr.java)
getProperty : 得到某个对象的公共属性
getStaticProperty : 得到某类的静态公共属性
@@ -118,18 +217,35 @@
getByArray : 得到数组中的某个元素
GetClassListByPackage: 得到类的集合
## 获取本地指定资源信息 → [AppResourceMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppResourceMgr.java)
- getStringByAssets: 根据本地Assets目录下资源名称,获取String数据信息
- getListByAssets : 根据本地Assets目录下资源名称,获取List集合信息
- getStringByRaw : 根据本地Raw目录下资源标识,获取String数据信息
- getListByRaw : 根据本地Raw目录下资源标识,获取List集合信息
+ getStringByAssets : 根据本地Assets目录下资源名称,获取String数据信息
+ getListByAssets : 根据本地Assets目录下资源名称,获取List集合信息
+ getStringByRaw : 根据本地Raw目录下资源标识,获取String数据信息
+ getListByRaw : 根据本地Raw目录下资源标识,获取List集合信息
+ getResourceId : 根据资源名获得资源id
+ readBytesFromAssets : 从assets目录下读取文件内容
+ readBytesFromRaw : 从res/raw目录下读取文件内容
+ readStringFromAssets : 从assets目录读取文本
+ readStringFromRaw : 从raw目录读取文本
+ getString : 获得字符串
+ getColor : 获得颜色
+ getDrawable : 获得Drawable
+
## 有关Android屏幕的工具类 → [AppScreenMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppScreenMgr.java)
- getScreenWidth : 获得屏幕宽度
- getScreenHeight : 获得屏幕高度
- getStatusHeight : 获得状态栏的高度
- getRealScreenHeight : 获取整块屏幕的高度
- getNavigationAreaHeight : 获取虚拟按键区域的高度
- snapShotWithStatusBar : 获取当前屏幕截图,包含状态栏
- snapShotWithoutStatusBar: 获取当前屏幕截图,不包含状态栏
+ getScreenWidth : 获得屏幕宽度
+ getScreenHeight : 获得屏幕高度
+ getStatusHeight : 获得状态栏的高度
+ getRealScreenHeight : 获取整块屏幕的高度
+ getNavigationAreaHeight : 获取虚拟按键区域的高度
+ getNavigationBarrH : 获取导航栏高度
+ snapShotWithStatusBar : 获取当前屏幕截图,包含状态栏
+ snapShotWithoutStatusBar : 获取当前屏幕截图,不包含状态栏
+ getTitleBarHeight : 获得标题栏高度
+ getStatusBarHeight : 获取通知栏高度
+ takeScreenShot : 获取指定Activity的截屏,保存到png文件
+ savePic : 保存bitmap
+ captureWebView : 截取webView快照(webView加载的整个内容的大小)
+ shoot : 截屏并保存
+ shootWebView : 截屏并保存
## 获取App应用系统基本信息 → [AppSysMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppSysMgr.java)
getSysClientOs : 获得客户端操作系统名称
getSysSdk : 获取当前操作系统的sdk版本
@@ -153,6 +269,45 @@
getSysSampleSize : 获取当前APP应用的SampleSize大小
getVibrator : 获取震动器对象
getSysLocalIpAddress : 获取手机IP地址
+ getAndroidID : 获取AndroidID
+ getIMSI : 获取设备IMSI码
+ getIP : 获取网络IP地址(优先获取wifi地址)
+ getWifiIP : 获取WIFI连接下的ip地址
+ getGPRSIP : 获取GPRS连接下的ip地址
+ getSerial : 获取设备序列号
+ getSIMSerial : 获取SIM序列号
+ getMNC : 获取网络运营商 46000,46002,46007 中国移动,46001 中国联通,46003 中国电信
+ getCarrier : 获取网络运营商:中国电信,中国移动,中国联通
+ getModel : 获取硬件型号
+ getBuildBrand : 获取编译厂商
+ getBuildHost : 获取编译服务器主机
+ getBuildTags : 获取描述Build的标签
+ getBuildTime : 获取系统编译时间
+ getBuildUser : 获取系统编译作者
+ getBuildVersionRelease : 获取编译系统版本(5.1)
+ getBuildVersionCodename : 获取开发代号
+ getBuildVersionIncremental : 获取源码控制版本号
+ getBuildVersionSDK : 获取编译的SDK
+ getBuildID : 获取修订版本列表(LMY47D)
+ getSupportedABIS : CPU指令集
+ getManufacturer : 获取硬件制造厂商
+ getBootloader : 获取系统启动程序版本号
+ getDisplayVersion : 获取系统版本号
+ getLanguage : 获取语言
+ getCountry : 获取国家
+ getOSVersion : 获取系统版本:5.1.1
+ getGSFID : 获取GSF序列号
+ getBluetoothMAC : 获取蓝牙地址
+ getPsuedoUniqueID : Android设备物理唯一标识符
+ getFingerprint : 构建标识,包括brand,name,device,version.release,id,version.incremental,type,tags这些信息
+ getHardware :获取硬件信息
+ getProduct :获取产品信息
+ getDevice :获取设备信息
+ getBoard :获取主板信息
+ getRadioVersion :获取基带版本(无线电固件版本 Api14以上)
+ getUA : 获取的浏览器指纹(User-Agent)
+ getDensity : 获取得屏幕密度
+ getGoogleAccounts : 获取google账号
## 自定义Toast提示框 → [AppToastMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppToastMgr.java)
shortToast : 自定义Toast调用
longToast : 自定义Toast调用
@@ -198,7 +353,7 @@
isPoint : 验证是否是小数
isBankNo : 验证是否银行卡号
isIDCard : 验证身份证号码是否正确
- isPeculiarStr :判断是否有特殊字符
+ isPeculiarStr : 判断是否有特殊字符
isUserName : 判断是否为用户名账号(规则如下:用户名由下划线或字母开头,由数字、字母、下划线、点、减号组成的4-32位字符)
chineseLength : 获取字符串中文字符的长度(每个中文算2个字符)
strLength : 获取字符串的长度
@@ -212,6 +367,15 @@
getSizeDesc : 获取大小的描述
ip2int : ip地址转换为10进制数
gainUUID : 获取UUID
+ phoneNoHide : 手机号码,中间4位星号替换
+ cardIdHide : 银行卡号,保留最后4位,其他星号替换
+ idHide : 身份证号,中间10位星号替换
+ checkVehicleNo : 是否为车牌号(沪A88888)
+ isContinuousNum : 判断字符串是否为连续数字 45678901等
+ isAlphaBetaString : 是否是纯字母
+ isContinuousWord : 判断字符串是否为连续字母 xyZaBcd等
+ isRealDate : 是否是日期 20120506 共八位,前四位-年,中间两位-月,最后两位-日
+
## Wifi管理工具类 → [AppWifiHelperMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppWifiHelperMgr.java)
isWifiEnabled : Wifi状态
openWifi : 打开wifi
@@ -227,7 +391,7 @@
getBSSID : 获取指定Wifi的物理地址
getFrequency : 获取指定Wifi的频率
getCapabilities : 获取指定Wifi的功能
- getLevel : 获取指定Wifi的信号强度
+ getLevel : 获取指定Wifi的信号强度
getBSSID : 获取SSID
getCurrentNetId : 返回当前连接的网络的ID
getWifiInfo : 返回所有信息
@@ -244,6 +408,19 @@
intToByte : int转换为byte数组
byteToInt : byte数组转换为int
saveDecimals : 保留几位小数
+ nullOfString : null转String
+ stringToByte : String转Byte
+ stringToBoolean : String转Boolean
+ stringToInt : String转Int
+ stringToShort : String转Short
+ stringToDouble : String转Double
+ intToString : Int转String
+ doubleToLong : Double转Long
+ doubleToInt : Double转Int
+ longToDouble : Long转Double
+ longToInt : Long转Int
+ stringToLong : String转Long
+ longToString : Long转String
## 日期管理类 → [AppDateMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppDateMgr.java)
todayYyyyMmDd : 当天的年月日
todayHhMmSs : 当天的时分秒
@@ -257,41 +434,47 @@
getWeekOfMonth : 日期中某个月份的第几周
getWeekOfYear : 日期中某个年份的第几周
dateTimeToTimeStamp : 将年月日时分秒转成Long类型
- timeStampToDateTime : 将Long类型转成年月日时分秒
- string2Date : 将年月日时分秒转成Date类型
- date2String : 将Date类型转成年月日时分秒
- dateIsBefore : 比较日期
- minutesBetweenTwoDate : 相差多少分钟
- getChineseZodiac : 获取日期中的生肖
- getZodiac : 获取日期中的星座
- getNowDayOffset : 获取日期
- getTime : 获取日期
- forward : 使日期倒一天
- isLeapYear : 判断平年闰年
- getDaysOfMonth : 计算某月的天数
- secondsMorning : 获取当天凌晨的秒数
- secondsNight : 获取第二天凌晨的秒数
- isSameDay : 判断某两天是不是同一天
- formatFriendly : 将日期格式化成友好的字符串:几分钟前、几小时前、几天前、几月前、几年前、刚刚
- formatDateTime : 将日期以yyyy-MM-dd HH:mm:ss格式化
- formatDateTime : 将日期以yyyy-MM-dd HH:mm:ss格式化
- formatDateTime : 将日期以yyyy-MM-dd HH:mm:ss格式化
- parseDate : 将日期字符串转成日期
- gainCurrentDate : 获取系统当前日期
- compareDate : 验证日期是否比当前日期早
- addDateTime : 对日期进行增加操作
- subDateTime : 对日期进行相减操作
- formatDateForExcelDate: 格式化excel中的时间
- formatDateForFileName : 将日期格式化作为文件名
- formatDateSecond : 格式化日期(精确到秒)
- tempDateSecond : 格式化日期(精确到秒)
- tempDateSecond : 格式化日期(精确到秒)
- formatDateDay : 格式化日期(精确到天)
- formatDateDetailDay : 式化日期(精确到天)
- formatNumber : double类型的数字保留两位小数(四舍五入)
- formateDate : 将字符串转换成日期
- parseStringToDate : 将字符日期转换成Date
- formatDoubleNumber : 将double日期转换成String
+ timeStampToDateTime : 将Long类型转成年月日时分秒
+ string2Date : 将年月日时分秒转成Date类型
+ date2String : 将Date类型转成年月日时分秒
+ dateIsBefore : 比较日期
+ minutesBetweenTwoDate : 相差多少分钟
+ getChineseZodiac : 获取日期中的生肖
+ getZodiac : 获取日期中的星座
+ getNowDayOffset : 获取日期
+ getTime : 获取日期
+ forward : 使日期倒一天
+ isLeapYear : 判断平年闰年
+ getDaysOfMonth : 计算某月的天数
+ secondsMorning : 获取当天凌晨的秒数
+ secondsNight : 获取第二天凌晨的秒数
+ isSameDay : 判断某两天是不是同一天
+ formatFriendly : 将日期格式化成友好的字符串:几分钟前、几小时前、几天前、几月前、几年前、刚刚
+ formatDateTime : 将日期以yyyy-MM-dd HH:mm:ss格式化
+ formatDateTime : 将日期以yyyy-MM-dd HH:mm:ss格式化
+ formatDateTime : 将日期以yyyy-MM-dd HH:mm:ss格式化
+ parseDate : 将日期字符串转成日期
+ gainCurrentDate : 获取系统当前日期
+ compareDate : 验证日期是否比当前日期早
+ addDateTime : 对日期进行增加操作
+ subDateTime : 对日期进行相减操作
+ formatDateForExcelDate : 格式化excel中的时间
+ formatDateForFileName : 将日期格式化作为文件名
+ formatDateSecond : 格式化日期(精确到秒)
+ tempDateSecond : 格式化日期(精确到秒)
+ tempDateSecond : 格式化日期(精确到秒)
+ formatDateDay : 格式化日期(精确到天)
+ formatDateDetailDay : 式化日期(精确到天)
+ formatNumber : double类型的数字保留两位小数(四舍五入)
+ formateDate : 将字符串转换成日期
+ parseStringToDate : 将字符日期转换成Date
+ formatDoubleNumber : 将double日期转换成String
+ getTimeMillis : 获得指定Date类型的毫秒数
+ getCurrentDayTimeMillis : 获得当前时间的毫秒数
+ convertMillisecond : 将格式化过的时间串转换成毫秒
+ getDateInterval : 得到两个日期的天数
+ compareTime : 时间比较
+
## 手机常用单位转换的辅助类 → [DensityUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/DensityUtils.java)
dip2px: 据手机的分辨率从 dip 的单位 转成为 px(像素)
px2dip: 根据手机的分辨率从 px(像素) 的单位 转成为 dp
@@ -328,16 +511,48 @@
write : 写入文件
saveAsJPEG : 指定目录写入文件内容
saveAsPNG : 指定目录写入文件内容
+ getStringFromFile : 将文件转成字符串
+ copyFile : 复制文件
+ copyFileFast : 快速复制
+ shareFile : 分享文件
+ zip : 压缩
+ unzip : 解压
+ formatFileSize : 格式化文件大小
+ Stream2File : 将输入流写入到文件
+ createFolder : 创建文件夹(支持覆盖已存在的同名文件夹)
+ getFileName : 获取文件名
+ rename : 重命名文件\文件夹
+ getFolderName : 获取文件夹名称
+ getFilesArray : 获取文件夹下所有文件
+ openImage : 打开图片
+ openVideo : 打开视频
+ openURL : 打开URL
+ downloadFile : 下载文件
+ upgradeApp : 通过APKURL升级应用
## 控件点击效果动画工具类 → [ToolAnimation](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/ToolAnimation.java)
addTouchDrak : 给视图添加点击效果,让背景变深
addTouchLight: 给视图添加点击效果,让背景变暗
## view管理类 → [ViewUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/ViewUtils.java)
- removeSelfFromParent: 把自身从父View中移除
- isTouchInView : 判断触点是否落在该View上
+ removeSelfFromParent : 把自身从父View中移除
+ isTouchInView : 判断触点是否落在该View上
+ setTVUnderLine : 给TextView设置下划线
+ showPopupWindow : 显示PopupWindow
+ dismissPopup : 关闭PopupWindow
+ captureView : 截图
+ createViewBitmap : 截图
+ convertViewToBitmap : 截图
+ getActivityBitmap : 获取Activity的截图
+ getStatusBarHeight : 获取状态栏高度
+ getToolbarHeight : 获取工具栏高度
+ getNavigationBarHeight : 获取导航栏高度
+ measureView : 测量view
+ getViewWidth : 获取view的宽度
+ getViewHeight : 获取view的高度
+ getActivity : 获取view的上下文
## 提供APP应用计算,算法等 -> [AppCalculateMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppCalculateMgr.java)
distance : 两点间的距离
pointTotoDegrees: 计算点a(x,y)的角度
- checkInRound : 点在圆内
+ checkInRound : 点在圆内
## SpannableString工具类 → [SpannableStringUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/SpannableStringUtils.java)
Builder.setFlag : 设置标识
Builder.setForegroundColor: 设置前景色
@@ -411,7 +626,7 @@
localImg : 缩略图预览(仅支持本地图片,并且是JPEG图片格式)
loadImage : 请求图片
getImageDecodeOptions : 图片解码
-## 图片管理工具类 → [AppImageMgr]()
+## 图片管理工具类 → [AppImageMgr](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppImageMgr.java)
getBitmap : 根据drawable id获取Bitmap
getDrawable : 根据drawable id获取Drawable
bitmapToDrawble : bitmap转drawable
@@ -453,12 +668,148 @@
compareBigDecimal: 比较大小
adjustDouble : 获取自己想要的数据格式
## WebService网络工具类 → [WebServiceUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/WebServiceUtils.java)
- callWebService: 请求网络数据
+ callWebService: 请求网络数据
## HttpURLConnection网络工具类 → [HttpURLConnectionUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/HttpURLConnectionUtils.java)
doGetAsyn : 异步的Get请求
doPostAsyn: 异步的Post请求
doGet : Get请求,获得返回数据
doPost : 向指定 URL 发送POST方法的请求
+
+## 字符串判断工具类 → [AppStringUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/AppStringUtils.java)
+ isEmpty : 判断字符串是否为空
+ isNotEmpty : 判断str null,"","null" 均视为空
+ checkNameChese : 检测String是否全是中文
+ isChinese : 判定输入汉字
+ toLowerCaseFirstOne : 将字符串的第一位转为小写
+ toUpperCaseFirstOne : 将字符串的第一位转为大写
+ underScoreCase2CamelCase : 下划线命名转为驼峰命名
+ camelCase2UnderScoreCase : 驼峰命名法转为下划线命名
+ throwable2String : 将异常栈信息转为字符串
+ concat : 字符串连接,将参数列表拼接为一个字符串
+ concatSpiltWith : 字符串连接,将参数列表拼接为一个字符串
+ toASCII : 将字符串转移为ASCII码
+ toUnicode : 将字符串转移为Unicode码
+ toUnicodeString : 将字符串转移为Unicode码
+ containsChineseChar : 是否包含中文字符
+ isNumber : 参数是否是有效数字 (整数或者小数)
+ matcherFirst : 匹配到第一个字符串
+ isInt : 参数是否是有效整数
+ isDouble : 字符串参数是否是double
+ isBoolean : 判断一个对象是否为boolean类型,包括字符串中的true和false
+ isTrue : 对象是否为true
+ contains : 判断一个数组里是否包含指定对象
+ toInt : 将对象转为int值,如果对象无法进行转换,则使用默认值
+ toLong : 将对象转为long类型,如果对象无法转换,将返回默认值
+ toDouble : 将对象转为Double,如果对象无法转换,将使用默认值
+ splitFirst : 分隔字符串,根据正则表达式分隔字符串,只分隔首个,剩下的的不进行分隔,如: 1,2,3,4 将分隔为 ['1','2,3,4']
+ toString : 将对象转为字符串,如果对象为null,则返回null,而不是"null"
+ toStringAndSplit : 将对象转为String后进行分割,如果为对象为空或者空字符,则返回null
+## Json工具类 → [JsonUtils]()
+ toJson : 对象转json
+ fromJson : json转对象
+ map2Json : Map转为JSONObject
+ collection2Json : 集合转换为JSONArray
+ object2Json : Object对象转换为JSONArray
+ string2JSONObject : json字符串生成JSONObject对象
+ object2json : 对象转换为Json
+ list2json : List集合转换为Json
+ array2json : 对象数组转换为Json
+ set2json : Set集合转为Json
+ string2json : 字符串转换为Json
+## 系统媒体管理工具类 → [MediaUtil]()
+ startActivityForCamera : 进入系统拍照
+ startActivityForGallery : 进入系统图库
+ startActivityForImageCut : 进入系统裁剪
+## GPS坐标转换工具 → [CoordinateTransformUtil]()
+ bd09towgs84 : 百度坐标系(BD-09)转WGS坐标(百度坐标纬度,百度坐标经度),WGS84坐标数组
+ wgs84tobd09 : WGS坐标转百度坐标系(BD-09)(WGS84坐标系的经度,WGS84坐标系的纬度),百度坐标数组
+ gcj02tobd09 : 火星坐标系(GCJ-02)转百度坐标系(BD-09)(火星坐标经度,火星坐标纬度),百度坐标数组
+ bd09togcj02 : 百度坐标系(BD-09)转火星坐标系(GCJ-02)(百度坐标纬度,百度坐标经度),火星坐标数组
+ wgs84togcj02 : WGS84转GCJ02(火星坐标系)(WGS84坐标系的经度,WGS84坐标系的纬度),火星坐标数组
+ gcj02towgs84 : GCJ02(火星坐标系)转GPS84(火星坐标系的经度,火星坐标系纬度),WGS84坐标数组
+ transformlat : 纬度转换
+ transformlng : 经度转换
+ out_of_china : 判断是否在国内,不在国内不做偏移
+## 程序崩溃处理类 → [CrashHandlerUtil]()
+ getInstance : 获取CrashHandler实例 ,单例模式
+ init : 初始化
+ setCrashTip : 设置程序退出时的提示信息
+## html标签管理类 → [HtmlUtils]()
+ addHtmlRedFlag : 为给定的字符串添加HTML红色标记,当使用Html.fromHtml()方式显示到TextView 的时候其将是红色的
+ keywordMadeRed : 将给定的字符串中所有给定的关键字标红
+## root权限工具类 → [RootPermissionUtils]()
+ isRoot : 根据/system/bin/或/system/xbin目录下是否存在su文件判断是否已ROOT
+## 快捷图标管理类 → [ShortCutUtils]()
+ hasShortcut : 检测是否存在快捷键
+ addShortcut : 为程序创建桌面快捷方式
+ delShortcut : 删除程序的快捷方式
+## 单例工具类 → [SingletonUtils]()
+ getInstance : 获取单例
+ getInstance : 获取单例
+## WebView管理类 → [WebViewManager]()
+ enableAdaptive : 开启自适应功能
+ disableAdaptive : 禁用自适应功能
+ enableZoom : 开启缩放功能
+ disableZoom : 禁用缩放功能
+ enableJavaScript : 开启JavaScript
+ disableJavaScript : 禁用JavaScript
+ enableJavaScriptOpenWindowsAutomatically : 开启JavaScript自动弹窗
+ disableJavaScriptOpenWindowsAutomatically : 禁用JavaScript自动弹窗
+ goBack : 返回
+## 窗口管理类 → [WindowUtils]()
+ getDisplayRotation : 获取当前窗口的旋转角度
+ isLandscape : 当前是否是横屏
+ isPortrait : 当前是否是竖屏
+ dimBackground : 调整窗口的透明度 1.0f,0.5f 变暗
+ setLandscape : 设置Activity为横屏
+ setPortrait : 设置Activity为竖屏
+ setActivityFullScreen : 设置全屏,要在setContentView之前调用
+## pull解析xml管理类 → [XmlParseUtiles]()
+ getXmlList : 解析XML
+ getXmlObject : 解析XML
+ setXmlValue : 把xml标签的值,转换成对象里属性的值
+## 压缩工具类 → [ZipUtil]()
+ zipFiles : 批量压缩文件(夹)
+ upZipFile : 解压缩一个文件
+ upZipSelectedFile : 解压文件名包含传入文字的文件
+ getEntriesNames : 获得压缩文件内文件列表
+ getEntriesEnumeration : 获得压缩文件内压缩文件对象以取得其属性
+ getEntryComment : 取得压缩文件对象的注释
+ getEntryName : 取得压缩文件对象的名称
+ zipFile : 压缩文件
+## Fragment管理类 → [FragmentUtils]()
+ addFragment : 新增fragment
+ addFragment : 新增fragment
+ hideAddFragment : 先隐藏后新增fragment
+ addFragments : 新增多个fragment
+ removeFragment : 移除fragment
+ removeToFragment : 移除到指定fragment
+ removeFragments : 移除同级别fragment
+ removeAllFragments : 移除所有fragment
+ replaceFragment : 替换fragment
+ popFragment : 出栈fragment
+ popToFragment : 出栈到指定fragment
+ popFragments : 出栈同级别fragment
+ popAllFragments : 出栈所有fragment
+ popAddFragment : 先出栈后新增fragment
+ hideFragment : 隐藏fragment
+ hideFragments : 隐藏同级别fragment
+ showFragment : 显示fragment
+ hideShowFragment : 先隐藏后显示fragment
+ getLastAddFragment : 获取同级别最后加入的fragment
+ getLastAddFragmentInStack: 获取栈中同级别最后加入的fragment
+ getTopShowFragment : 获取顶层可见fragment
+ getTopShowFragmentInStack: 获取栈中顶层可见fragment
+ getFragments : 获取同级别fragment
+ getFragmentsInStack : 获取栈中同级别fragment
+ getAllFragments : 获取所有fragment
+ getAllFragmentsInStack : 获取栈中所有fragment
+ getPreFragment : 获取目标fragment的前一个fragment
+ findFragment : 查找fragment
+ dispatchBackPress : 处理fragment回退键
+ setBackgroundColor : 设置背景色
+ setBackgroundResource : 设置背景资源
+ setBackground : 设置背景
## AES对称加密 → [AESUtils](https://github.com/AbrahamCaiJin/CommonUtilLibrary/blob/master/CommonUtil/src/main/java/com/jingewenku/abrahamcaijin/commonutil/encryption/AESUtils.java)
initKey : 生成密钥
encrypt : 加密
@@ -475,8 +826,52 @@
initKey : 生成密钥
encrypt : 3DES 加密
decrypt : 3DES 解密
+## 加密工具类 → [CipherUtils]
+ md5 : 输入流转md5
+ XorEncode : 异或加密
+ XorDecode : 异或解密
+ sha1 : 字符串sha1值
+
## About
- 这里把开发中常用的一些工具类做一个整理,主要用到的时候不用再费力的百度或者Google了,大家有需要的可以随时借鉴走,同时也希望这个越来越强大,有什么错误的地方还希望各位不吝指出,让我得以完善,当然,在此声明,这些并不是我一个人,也用了许多前辈们的东西,这里一并感谢,目前还在测试,还没有上传到Jcenter,需要的自己拷贝,测试完成后会给大家贴出引用地址的,持续更新中。
- 我的qq群:523167548
- 我的博客:http://blog.csdn.net/u014727709?viewmode=contents
- 对你有用就给一个Start吧!
+ 这里把开发中常用的一些工具类做一个整理,主要用到的时候不用再费力的百度或者Google了,大家有需要的可以随时借鉴走,同时也希望这个越来越强大,有什么错误的地方还希望各位不吝指出,让我得以完善,当然,在此声明,这些并不是我一个人,也用了许多前辈们的东西,这里一并感谢,目前还在测试,持续更新中。对你有用就给一个Start吧!
+#
+[![Travis branch](https://img.shields.io/badge/Github-Abraham-ff69b4.svg)](https://github.com/AbrahamCaiJin)
+[![Travis](https://img.shields.io/badge/简书-Abraham-blue.svg)](http://www.jianshu.com/u/8a0908d85e0a)
+[![CircleCI](https://img.shields.io/badge/Blog-Abraham-brightgreen.svg)](http://blog.csdn.net/u014727709?viewmode=contents)
+[![TeamCity (simple build status)](https://img.shields.io/badge/Weibo-Abraham%20-lightgrey.svg)](http://weibo.com/p/1005053895373916/home?from=page_100505&mod=TAB&is_all=1#place)
+[![Travis](https://img.shields.io/badge/QQ群-523167548%20-ff69b4.svg)](https://shang.qq.com/wpa/qunwpa?idkey=4898a63b0283bc98cc61daeeb9eb6648a34886cf554a3ec272063ef5d999b012)
+## Download
+
+Gradle:
+``` groovy
+compile 'com.abrahamcaijin.commonutil:CommonUtil:1.0.1'
+
+```
+Maven:
+``` groovy
+
+ com.abrahamcaijin.commonutil
+ CommonUtil
+ 1.0.1
+ pom
+
+```
+ Ivy:
+``` groovy
+
+
+
+```
+## How to use
+
+```
+// init it in the function of onCreate in ur Application
+AppUtils.init(context);
+```
+## Proguard
+
+```
+-keep class com.jingewenku.abrahamcaijin.commonutil.** { *; }
+-keepclassmembers class com.jingewenku.abrahamcaijin.commonutil.** { *; }
+-dontwarn com.jingewenku.abrahamcaijin.commonutil.**
+```