AndroidUtils:Android開(kāi)發(fā)不得不收藏的Utils - Android開(kāi)發(fā)社區(qū) | CTOLib碼庫(kù)
- AndroidUtils
AndroidUtils Android開(kāi)發(fā)不得不收藏的Utils
之前寫這篇文章主要是項(xiàng)目應(yīng)用到的Utils,發(fā)現(xiàn)已經(jīng)有一個(gè)更全面的開(kāi)源庫(kù)總結(jié)驰吓,所以還是非常震驚可以總結(jié)的這么全面超棺,在此我準(zhǔn)備重新梳理一遍~
AndroidUtils:Android必備utilCode
具體Demo使用參考開(kāi)源github:AndroidUtilCode买决。本文只是稍微記錄下方便自己查閱。
- Activity相關(guān)→ActivityUtils.java
isActivityExists : 判斷是否存在Activity
launchActivity : 打開(kāi)Activity
getLauncherActivity: 獲取入口activity
- App相關(guān)→AppUtils.java
isInstallApp : 判斷App是否安裝
installApp : 安裝App(支持6.0)
installAppSilent : 靜默安裝App
uninstallApp : 卸載App
uninstallAppSilent : 靜默卸載App
isAppRoot : 判斷App是否有root權(quán)限
launchApp : 打開(kāi)App
getAppPackageName : 獲取App包名
getAppDetailsSettings: 獲取App具體設(shè)置
getAppName : 獲取App名稱
getAppIcon : 獲取App圖標(biāo)
getAppPath : 獲取App路徑
getAppVersionName : 獲取App版本號(hào)
getAppVersionCode : 獲取App版本碼
isSystemApp : 判斷App是否是系統(tǒng)應(yīng)用
isAppDebug : 判斷App是否是Debug版本
getAppSignature : 獲取App簽名
getAppSignatureSHA1 : 獲取應(yīng)用簽名的的SHA1值
isAppForeground : 判斷App是否處于前臺(tái)
getForegroundApp : 獲取前臺(tái)應(yīng)用包名
getAppInfo : 獲取App信息
getAppsInfo : 獲取所有已安裝App信息
cleanAppData : 清除App所有數(shù)據(jù)
- 狀態(tài)欄相關(guān)→BarUtils.java
setTransparentStatusBar: 設(shè)置透明狀態(tài)欄(api大于19方可使用)
hideStatusBar : 隱藏狀態(tài)欄
getStatusBarHeight : 獲取狀態(tài)欄高度
isStatusBarExists : 判斷狀態(tài)欄是否存在
getActionBarHeight : 獲取ActionBar高度
showNotificationBar : 顯示通知欄
hideNotificationBar : 隱藏通知欄
- 清除相關(guān)→CleanUtils.java
cleanInternalCache : 清除內(nèi)部緩存
cleanInternalFiles : 清除內(nèi)部文件
cleanInternalDbs : 清除內(nèi)部數(shù)據(jù)庫(kù)
cleanInternalDbByName: 根據(jù)名稱清除數(shù)據(jù)庫(kù)
cleanInternalSP : 清除內(nèi)部SP
cleanExternalCache : 清除外部緩存
cleanCustomCache : 清除自定義目錄下的文件
- 剪貼板相關(guān)→ClipboardUtils.java
copyText : 復(fù)制文本到剪貼板
getText : 獲取剪貼板的文本
copyUri : 復(fù)制uri到剪貼板
getUri : 獲取剪貼板的uri
copyIntent: 復(fù)制意圖到剪貼板
getIntent : 獲取剪貼板的意圖
- 關(guān)閉相關(guān)→CloseUtils.java
closeIO : 關(guān)閉IO
closeIOQuietly: 安靜關(guān)閉IO
- 常量相關(guān)→ConstUtils.java
MemoryConst: 存儲(chǔ)相關(guān)常量(KB,MB,GB)
TimeConst : 時(shí)間相關(guān)常量
RegexConst : 正則相關(guān)常量
- 轉(zhuǎn)換相關(guān)→ConvertUtils.java
bytes2HexString, hexString2Bytes : byteArr與hexString互轉(zhuǎn)
chars2Bytes, bytes2Chars : charArr與byteArr互轉(zhuǎn)
memorySize2Byte, byte2MemorySize : 以u(píng)nit為單位的內(nèi)存大小與字節(jié)數(shù)互轉(zhuǎn)
byte2FitMemorySize : 字節(jié)數(shù)轉(zhuǎn)合適內(nèi)存大小
timeSpan2Millis, millis2TimeSpan : 以u(píng)nit為單位的時(shí)間長(zhǎng)度與毫秒時(shí)間戳互轉(zhuǎn)
millis2FitTimeSpan : 毫秒時(shí)間戳轉(zhuǎn)合適時(shí)間長(zhǎng)度
bytes2Bits, bits2Bytes : bytes與bits互轉(zhuǎn)
input2OutputStream, output2InputStream : inputStream與outputStream互轉(zhuǎn)
inputStream2Bytes, bytes2InputStream : inputStream與byteArr互轉(zhuǎn)
outputStream2Bytes, bytes2OutputStream : outputStream與byteArr互轉(zhuǎn)
inputStream2String, string2InputStream : inputStream與string按編碼互轉(zhuǎn)
outputStream2String, string2OutputStream: outputStream與string按編碼互轉(zhuǎn)
bitmap2Bytes, bytes2Bitmap : bitmap與byteArr互轉(zhuǎn)
drawable2Bitmap, bitmap2Drawable : drawable與bitmap互轉(zhuǎn)
drawable2Bytes, bytes2Drawable : drawable與byteArr互轉(zhuǎn)
view2Bitmap : view轉(zhuǎn)Bitmap
dp2px, px2dp : dp與px互轉(zhuǎn)
sp2px, px2sp : sp與px互轉(zhuǎn)
- 崩潰相關(guān)→CrashUtils.java
getInstance: 獲取單例
init : 初始化
- 設(shè)備相關(guān)→DeviceUtils.java
isDeviceRooted : 判斷設(shè)備是否rooted
getSDKVersion : 獲取設(shè)備系統(tǒng)版本號(hào)
getAndroidID : 獲取設(shè)備AndroidID
getMacAddress : 獲取設(shè)備MAC地址
getManufacturer : 獲取設(shè)備廠商
getModel : 獲取設(shè)備型號(hào)
shutdown : 關(guān)機(jī)
reboot : 重啟
reboot2Recovery : 重啟到recovery
reboot2Bootloader: 重啟到bootloader
- 判空相關(guān)→EmptyUtils.java
isEmpty : 判斷對(duì)象是否為空
isNotEmpty: 判斷對(duì)象是否非空
- 編碼解碼相關(guān)→EncodeUtils.java
urlEncode : URL編碼
urlDecode : URL解碼
base64Encode : Base64編碼
base64Encode2String: Base64編碼
base64Decode : Base64解碼
base64UrlSafeEncode: Base64URL安全編碼
htmlEncode : Html編碼
htmlDecode : Html解碼
- 加密解密相關(guān)→EncryptUtils.java
encryptMD2, encryptMD2ToString : MD2加密
encryptMD5, encryptMD5ToString : MD5加密
encryptMD5File, encryptMD5File2String : MD5加密文件
encryptSHA1, encryptSHA1ToString : SHA1加密
encryptSHA224, encryptSHA224ToString : SHA224加密
encryptSHA256, encryptSHA256ToString : SHA256加密
encryptSHA384, encryptSHA384ToString : SHA384加密
encryptSHA512, encryptSHA512ToString : SHA512加密
encryptHmacMD5, encryptHmacMD5ToString : HmacMD5加密
encryptHmacSHA1, encryptHmacSHA1ToString : HmacSHA1加密
encryptHmacSHA224, encryptHmacSHA224ToString : HmacSHA224加密
encryptHmacSHA256, encryptHmacSHA256ToString : HmacSHA256加密
encryptHmacSHA384, encryptHmacSHA384ToString : HmacSHA384加密
encryptHmacSHA512, encryptHmacSHA512ToString : HmacSHA512加密
encryptDES, encryptDES2HexString, encryptDES2Base64 : DES加密
decryptDES, decryptHexStringDES, decryptBase64DES : DES解密
encrypt3DES, encrypt3DES2HexString, encrypt3DES2Base64: 3DES加密
decrypt3DES, decryptHexString3DES, decryptBase64_3DES : 3DES解密
encryptAES, encryptAES2HexString, encryptAES2Base64 : AES加密
decryptAES, decryptHexStringAES, decryptBase64AES : AES解密
- 文件相關(guān)→FileUtils.java
getFileByPath : 根據(jù)文件路徑獲取文件
isFileExists : 判斷文件是否存在
rename : 重命名文件
isDir : 判斷是否是目錄
isFile : 判斷是否是文件
createOrExistsDir : 判斷目錄是否存在薯演,不存在則判斷是否創(chuàng)建成功
createOrExistsFile : 判斷文件是否存在,不存在則判斷是否創(chuàng)建成功
createFileByDeleteOldFile: 判斷文件是否存在,存在則在創(chuàng)建之前刪除
copyDir : 復(fù)制目錄
copyFile : 復(fù)制文件
moveDir : 移動(dòng)目錄
moveFile : 移動(dòng)文件
deleteDir : 刪除目錄
deleteFile : 刪除文件
listFilesInDir : 獲取目錄下所有文件
listFilesInDir : 獲取目錄下所有文件包括子目錄
listFilesInDirWithFilter : 獲取目錄下所有后綴名為suffix的文件
listFilesInDirWithFilter : 獲取目錄下所有后綴名為suffix的文件包括子目錄
listFilesInDirWithFilter : 獲取目錄下所有符合filter的文件
listFilesInDirWithFilter : 獲取目錄下所有符合filter的文件包括子目錄
searchFileInDir : 獲取目錄下指定文件名的文件包括子目錄
writeFileFromIS : 將輸入流寫入文件
writeFileFromString : 將字符串寫入文件
readFile2List : 指定編碼按行讀取文件到鏈表中
readFile2String : 指定編碼按行讀取文件到字符串中
readFile2Bytes : 讀取文件到字符數(shù)組中
getFileLastModified : 獲取文件最后修改的毫秒時(shí)間戳
getFileCharsetSimple : 簡(jiǎn)單獲取文件編碼格式
getFileLines : 獲取文件行數(shù)
getDirSize : 獲取目錄大小
getFileSize : 獲取文件大小
getDirLength : 獲取目錄長(zhǎng)度
getFileLength : 獲取文件長(zhǎng)度
getFileMD5 : 獲取文件的MD5校驗(yàn)碼
getFileMD5ToString : 獲取文件的MD5校驗(yàn)碼
getDirName : 根據(jù)全路徑獲取最長(zhǎng)目錄
getFileName : 根據(jù)全路徑獲取文件名
getFileNameNoExtension : 根據(jù)全路徑獲取文件名不帶拓展名
getFileExtension : 根據(jù)全路徑獲取文件拓展名
- Handler相關(guān)→HandlerUtils.java
防止內(nèi)存泄露Handler(匿名內(nèi)部類)持有外部類的引用
- 圖片相關(guān)→ImageUtils.java
bitmap2Bytes, bytes2Bitmap : bitmap與byteArr互轉(zhuǎn)
drawable2Bitmap, bitmap2Drawable: drawable與bitmap互轉(zhuǎn)
drawable2Bytes, bytes2Drawable : drawable與byteArr互轉(zhuǎn)
getBitmap : 獲取bitmap
scale : 縮放圖片
clip : 裁剪圖片
skew : 傾斜圖片
rotate : 旋轉(zhuǎn)圖片
getRotateDegree : 獲取圖片旋轉(zhuǎn)角度
toRound : 轉(zhuǎn)為圓形圖片
toRoundCorner : 轉(zhuǎn)為圓角圖片
fastBlur : 快速模糊
renderScriptBlur : renderScript模糊圖片
stackBlur : stack模糊圖片
addFrame : 添加顏色邊框
addReflection : 添加倒影
addTextWatermark : 添加文字水印
addImageWatermark : 添加圖片水印
toAlpha : 轉(zhuǎn)為alpha位圖
toGray : 轉(zhuǎn)為灰度圖片
save : 保存圖片
isImage : 根據(jù)文件名判斷文件是否為圖片
getImageType : 獲取圖片類型
compressByScale : 按縮放壓縮
compressByQuality : 按質(zhì)量壓縮
compressBySampleSize : 按采樣大小壓縮
- 意圖相關(guān)→IntentUtils.java
getInstallAppIntent : 獲取安裝App(支持6.0)的意圖
getUninstallAppIntent : 獲取卸載App的意圖
getLaunchAppIntent : 獲取打開(kāi)App的意圖
getAppDetailsSettingsIntent: 獲取App具體設(shè)置的意圖
getShareTextIntent : 獲取分享文本的意圖
getShareImageIntent : 獲取分享圖片的意圖
getComponentIntent : 獲取其他應(yīng)用組件的意圖
getShutdownIntent : 獲取關(guān)機(jī)的意圖
getCaptureIntent : 獲取拍照的意圖
- 鍵盤相關(guān)→KeyboardUtils.java
hideSoftInput : 動(dòng)態(tài)隱藏軟鍵盤
clickBlankArea2HideSoftInput: 點(diǎn)擊屏幕空白區(qū)域隱藏軟鍵盤
showSoftInput : 動(dòng)態(tài)顯示軟鍵盤
toggleSoftInput : 切換鍵盤顯示與否狀態(tài)
- 定位相關(guān)→LocationUtils.java
isGpsEnabled : 判斷Gps是否可用
isLocationEnabled: 判斷定位是否可用
openGpsSettings : 打開(kāi)Gps設(shè)置界面
register : 注冊(cè)
unregister : 注銷
getAddress : 根據(jù)經(jīng)緯度獲取地理位置
getCountryName : 根據(jù)經(jīng)緯度獲取所在國(guó)家
getLocality : 根據(jù)經(jīng)緯度獲取所在地
getStreet : 根據(jù)經(jīng)緯度獲取所在街道
- 日志相關(guān)→LogUtils.java
init : 初始化函數(shù)
getBuilder: 獲取LogUtils建造者
v : Verbose日志
d : Debug日志
i : Info日志
w : Warn日志
e : Error日志
- 網(wǎng)絡(luò)相關(guān)→NetworkUtils.java
openWirelessSettings : 打開(kāi)網(wǎng)絡(luò)設(shè)置界面
isConnected : 判斷網(wǎng)絡(luò)是否連接
isAvailableByPing : 判斷網(wǎng)絡(luò)是否可用
getDataEnabled : 判斷移動(dòng)數(shù)據(jù)是否打開(kāi)
setDataEnabled : 打開(kāi)或關(guān)閉移動(dòng)數(shù)據(jù)
is4G : 判斷網(wǎng)絡(luò)是否是4G
getWifiEnabled : 判斷wifi是否打開(kāi)
setWifiEnabled : 打開(kāi)或關(guān)閉wifi
isWifiConnected : 判斷wifi是否連接狀態(tài)
isWifiAvailable : 判斷wifi數(shù)據(jù)是否可用
getNetworkOperatorName: 獲取移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商名稱
getNetworkType : 獲取當(dāng)前網(wǎng)絡(luò)類型
getIPAddress : 獲取IP地址
getDomainAddress : 獲取域名ip地址
- 手機(jī)相關(guān)→PhoneUtils.java
isPhone : 判斷設(shè)備是否是手機(jī)
getIMEI : 獲取IMEI碼
getIMSI : 獲取IMSI碼
getPhoneType : 獲取移動(dòng)終端類型
isSimCardReady : 判斷sim卡是否準(zhǔn)備好
getSimOperatorName : 獲取Sim卡運(yùn)營(yíng)商名稱
getSimOperatorByMnc: 獲取Sim卡運(yùn)營(yíng)商名稱
getPhoneStatus : 獲取手機(jī)狀態(tài)信息
dial : 跳至撥號(hào)界面
call : 撥打phoneNumber
sendSms : 跳至發(fā)送短信界面
sendSmsSilent : 發(fā)送短信
getAllContactInfo : 獲取手機(jī)聯(lián)系人
getContactNum : 打開(kāi)手機(jī)聯(lián)系人界面點(diǎn)擊聯(lián)系人后便獲取該號(hào)碼
getAllSMS : 獲取手機(jī)短信并保存到xml中
- 拼音相關(guān)→PinyinUtils.java
ccs2Pinyin : 漢字轉(zhuǎn)拼音
ccs2Pinyin : 漢字轉(zhuǎn)拼音
getPinyinFirstLetter : 獲取第一個(gè)漢字首字母
getPinyinFirstLetters: 獲取所有漢字的首字母
getSurnamePinyin : 根據(jù)名字獲取姓氏的拼音
getSurnameFirstLetter: 根據(jù)名字獲取姓氏的首字母
- 進(jìn)程相關(guān)→ProcessUtils.java
getForegroundProcessName : 獲取前臺(tái)線程包名
killAllBackgroundProcesses: 殺死所有的后臺(tái)服務(wù)進(jìn)程
killBackgroundProcesses : 殺死后臺(tái)服務(wù)進(jìn)程
- 正則相關(guān)→RegexUtils.java
isMobileSimple : 驗(yàn)證手機(jī)號(hào)(簡(jiǎn)單)
isMobileExact : 驗(yàn)證手機(jī)號(hào)(精確)
isTel : 驗(yàn)證電話號(hào)碼
isIDCard15 : 驗(yàn)證身份證號(hào)碼15位
isIDCard18 : 驗(yàn)證身份證號(hào)碼18位
isEmail : 驗(yàn)證郵箱
isURL : 驗(yàn)證URL
isZh : 驗(yàn)證漢字
isUsername : 驗(yàn)證用戶名
isDate : 驗(yàn)證yyyy-MM-dd格式的日期校驗(yàn)兑牡,已考慮平閏年
isIP : 驗(yàn)證IP地址
isMatch : 判斷是否匹配正則
getMatches : 獲取正則匹配的部分
getSplits : 獲取正則匹配分組
getReplaceFirst: 替換正則匹配的第一部分
getReplaceAll : 替換所有正則匹配的部分
- 屏幕相關(guān)→ScreenUtils.java
getScreenWidth : 獲取屏幕的寬度(單位:px)
getScreenHeight : 獲取屏幕的高度(單位:px)
setLandscape : 設(shè)置屏幕為橫屏
setPortrait : 設(shè)置屏幕為豎屏
isLandscape : 判斷是否橫屏
isPortrait : 判斷是否豎屏
getScreenRotation : 獲取屏幕旋轉(zhuǎn)角度
captureWithStatusBar : 獲取當(dāng)前屏幕截圖,包含狀態(tài)欄
captureWithoutStatusBar: 獲取當(dāng)前屏幕截圖税灌,不包含狀態(tài)欄
isScreenLock : 判斷是否鎖屏
- SD卡相關(guān)→SDCardUtils.java
isSDCardEnable: 判斷SD卡是否可用
getSDCardPath : 獲取SD卡路徑
getDataPath : 獲取SD卡Data路徑
getFreeSpace : 計(jì)算SD卡的剩余空間
getSDCardInfo : 獲取SD卡信息
- 服務(wù)相關(guān)→ServiceUtils.java
getAllRunningService: 獲取所有運(yùn)行的服務(wù)
startService : 啟動(dòng)服務(wù)
stopService : 停止服務(wù)
bindService : 綁定服務(wù)
unbindService : 解綁服務(wù)
isServiceRunning : 判斷服務(wù)是否運(yùn)行
- Shell相關(guān)→ShellUtils.java
execCmd: 是否是在root下執(zhí)行命令
- 尺寸相關(guān)→SizeUtils.java
dp2px, px2dp : dp與px轉(zhuǎn)換
sp2px, px2sp : sp與px轉(zhuǎn)換
applyDimension : 各種單位轉(zhuǎn)換
forceGetViewSize : 在onCreate中獲取視圖的尺寸
measureView : 測(cè)量視圖尺寸
getMeasuredWidth : 獲取測(cè)量視圖寬度
getMeasuredHeight: 獲取測(cè)量視圖高度
Snackbar相關(guān)→SnackbarUtils.java
showShortSnackbar : 顯示短時(shí)snackbar
showLongSnackbar : 顯示長(zhǎng)時(shí)snackbar
showIndefiniteSnackbar: 顯示自定義時(shí)長(zhǎng)snackbar
addView : 為SnackBar添加布局
dismissSnackbar : 取消snackbar顯示
- SpannableString相關(guān)工具類→SpannableStringUtils.java
getBuilder : 獲取建造者
setFlag : 設(shè)置標(biāo)識(shí)
setForegroundColor: 設(shè)置前景色
setBackgroundColor: 設(shè)置背景色
setQuoteColor : 設(shè)置引用線的顏色
setLeadingMargin : 設(shè)置縮進(jìn)
setBullet : 設(shè)置列表標(biāo)記
setProportion : 設(shè)置字體比例
setXProportion : 設(shè)置字體橫向比例
setStrikethrough : 設(shè)置刪除線
setUnderline : 設(shè)置下劃線
setSuperscript : 設(shè)置上標(biāo)
setSubscript : 設(shè)置下標(biāo)
setBold : 設(shè)置粗體
setItalic : 設(shè)置斜體
setBoldItalic : 設(shè)置粗斜體
setFontFamily : 設(shè)置字體
setAlign : 設(shè)置對(duì)齊
setBitmap : 設(shè)置圖片
setDrawable : 設(shè)置圖片
setUri : 設(shè)置圖片
setResourceId : 設(shè)置圖片
setClickSpan : 設(shè)置點(diǎn)擊事件
setUrl : 設(shè)置超鏈接
setBlur : 設(shè)置模糊
append : 追加樣式字符串
create : 創(chuàng)建樣式字符串
- SP相關(guān)→SPUtils.java
SPUtils : SPUtils構(gòu)造函數(shù)
putString : SP中寫入String類型value
getString : SP中讀取String
putInt : SP中寫入int類型value
getInt : SP中讀取int
putLong : SP中寫入long類型value
getLong : SP中讀取long
putFloat : SP中寫入float類型value
getFloat : SP中讀取float
putBoolean: SP中寫入boolean類型value
getBoolean: SP中讀取boolean
getAll : SP中獲取所有鍵值對(duì)
remove : SP中移除該key
contains : SP中是否存在該key
clear : SP中清除所有數(shù)據(jù)
- 字符串相關(guān)→StringUtils.java
isEmpty : 判斷字符串是否為null或長(zhǎng)度為0
isSpace : 判斷字符串是否為null或全為空格
equals : 判斷兩字符串是否相等
equalsIgnoreCase: 判斷兩字符串忽略大小寫是否相等
null2Length0 : null轉(zhuǎn)為長(zhǎng)度為0的字符串
length : 返回字符串長(zhǎng)度
upperFirstLetter: 首字母大寫
lowerFirstLetter: 首字母小寫
reverse : 反轉(zhuǎn)字符串
toDBC : 轉(zhuǎn)化為半角字符
toSBC : 轉(zhuǎn)化為全角字符
- 線程池相關(guān)→ThreadPoolUtils.java
ThreadPoolUtils : ThreadPoolUtils構(gòu)造函數(shù)
execute : 在未來(lái)某個(gè)時(shí)間執(zhí)行給定的命令
execute : 在未來(lái)某個(gè)時(shí)間執(zhí)行給定的命令鏈表
shutDown : 待以前提交的任務(wù)執(zhí)行完畢后關(guān)閉線程池
shutDownNow : 試圖停止所有正在執(zhí)行的活動(dòng)任務(wù)
isShutDown : 判斷線程池是否已關(guān)閉
isTerminated : 關(guān)閉線程池后判斷所有任務(wù)是否都已完成
awaitTermination : 請(qǐng)求關(guān)閉均函、發(fā)生超時(shí)或者當(dāng)前線程中斷
submit : 提交一個(gè)Callable任務(wù)用于執(zhí)行
submit : 提交一個(gè)Runnable任務(wù)用于執(zhí)行
invokeAll, invokeAny : 執(zhí)行給定的任務(wù)
schedule : 延遲執(zhí)行Runnable命令
schedule : 延遲執(zhí)行Callable命令
scheduleWithFixedRate : 延遲并循環(huán)執(zhí)行命令
scheduleWithFixedDelay: 延遲并以固定休息時(shí)間循環(huán)執(zhí)行命令
- 時(shí)間相關(guān)→TimeUtils.java
millis2String : 將時(shí)間戳轉(zhuǎn)為時(shí)間字符串
string2Millis : 將時(shí)間字符串轉(zhuǎn)為時(shí)間戳
string2Date : 將時(shí)間字符串轉(zhuǎn)為Date類型
date2String : 將Date類型轉(zhuǎn)為時(shí)間字符串
date2Millis : 將Date類型轉(zhuǎn)為時(shí)間戳
millis2Date : 將時(shí)間戳轉(zhuǎn)為Date類型
getTimeSpan : 獲取兩個(gè)時(shí)間差(單位:unit)
getFitTimeSpan : 獲取合適型兩個(gè)時(shí)間差
getNowTimeMills : 獲取當(dāng)前毫秒時(shí)間戳
getNowTimeString : 獲取當(dāng)前時(shí)間字符串
getNowTimeDate : 獲取當(dāng)前Date
getTimeSpanByNow : 獲取與當(dāng)前時(shí)間的差(單位:unit)
getFitTimeSpanByNow : 獲取合適型與當(dāng)前時(shí)間的差
getFriendlyTimeSpanByNow: 獲取友好型與當(dāng)前時(shí)間的差
isSameDay : 判斷是否同一天
isLeapYear : 判斷是否閏年
getWeek, getWeekIndex : 獲取星期
getWeekOfMonth : 獲取月份中的第幾周
getWeekOfYear : 獲取年份中的第幾周
getChineseZodiac : 獲取生肖
getZodiac : 獲取星座
- 吐司相關(guān)→ToastUtils.java
init : 吐司初始化
showShortToastSafe: 安全地顯示短時(shí)吐司
showLongToastSafe : 安全地顯示長(zhǎng)時(shí)吐司
showShortToast : 顯示短時(shí)吐司
showLongToast : 顯示長(zhǎng)時(shí)吐司
cancelToast : 取消吐司顯示
- 壓縮相關(guān)→ZipUtils.java→Test
zipFiles : 批量壓縮文件
zipFile : 壓縮文件
unzipFiles : 批量解壓文件
unzipFile : 解壓文件
unzipFileByKeyword: 解壓帶有關(guān)鍵字的文件
getFilesPath : 獲取壓縮文件中的文件路徑鏈表
getComments : 獲取壓縮文件中的注釋鏈表
getEntries : 獲取壓縮文件中的文件對(duì)象
1.判斷手機(jī)格式(正則表達(dá)式)
public static Boolean isPhone(String str) {
String regex = "^1[3|4|5|7|8]\\d{9}$";
return match(regex, str);
}
private static boolean match(String regex, String str) {
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(str);
return matcher.matches();
}
//代碼調(diào)用:
2.dp-px;px-dp
/**
* 根據(jù)手機(jī)的分辨率從 dp 的單位 轉(zhuǎn)成為 px(像素)
*/
public static int dip2px(Context context, float dpValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (dpValue * scale + 0.5f);
}
/**
* 根據(jù)手機(jī)的分辨率從 px(像素) 的單位 轉(zhuǎn)成為 dp
*/
public static int px2dip(Context context, float pxValue) {
final float scale = context.getResources().getDisplayMetrics().density;
return (int) (pxValue / scale + 0.5f);
}
- 網(wǎng)絡(luò)判斷 2G - 3G - 4G -wifi
/**
* Created by ziyang on 16/12/14.
* Version 1.0
*/
public class NetWorkHelper {
/**
* 沒(méi)有網(wǎng)絡(luò)
*/
public static final int NETWORKTYPE_INVALID = 0;
/**
* wap網(wǎng)絡(luò)
*/
public static final int NETWORKTYPE_WAP = 1;
/**
* 2G網(wǎng)絡(luò)
*/
public static final int NETWORKTYPE_2G = 2;
/**
* 3G和3G以上網(wǎng)絡(luò)垄琐,或統(tǒng)稱為快速網(wǎng)絡(luò)
*/
public static final int NETWORKTYPE_3G = 3;
/**
* wifi網(wǎng)絡(luò)
*/
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;
}
}
/**
* 獲取網(wǎng)絡(luò)狀態(tài)边酒,wifi,wap,2g,3g.
*
* @param context 上下文
* @return int 網(wǎng)絡(luò)狀態(tài) {@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狸窘,當(dāng)然可以添加更詳細(xì)的比如添加時(shí)間墩朦,msg等等
/**
* LogUtils log工具類
* @author ziyang
*/
public class LogUtils {
public static boolean isDebug = BuildConfig.LOG_DEBUG;
// 下面是傳入自定義tag的函數(shù)
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當(dāng)然可以拓展,時(shí)間控制翻擒,content內(nèi)容控制等等
public class MyToast extends Toast {
private Toast mToast;
public MyToast(Context context) {
super(context);
}
public void showToast(String text, Context mContext) {
if (mToast == null) {
mToast = Toast.makeText(mContext, text, Toast.LENGTH_SHORT);
} else {
mToast.setText(text);
mToast.setDuration(Toast.LENGTH_SHORT);
}
mToast.show();
}
public void cancelToast() {
if (mToast != null) {
mToast.cancel();
}
}
}