AndroidUtilCode 最強大的工具類

一、前言:

AndroidUtilCode 是一個強大易用的安卓工具類庫,它合理地封裝了安卓開發中常用的函數,具有完善的 Demo 和單元測試,利用其封裝好的 APIs 可以大大提高開發效率,如今它主要包括兩部分模塊,其一是主工具類模塊:utilcode,其中的工具類是開發中常用到的;其二是子工具類模塊:subutil,它包含的工具類並不是很常用,它的出現是爲了防止主工具類的臃腫。

二、使用:

①utilcode使用:

1. 依賴:

 

implementation 'com.blankj:utilcode:1.25.2'
// if u use AndroidX, use the following
//implementation 'com.blankj:utilcodex:1.25.2'

2. Activity 相關 -> ActivityUtils.java -> Demo

  • getActivityByView : 根據視圖獲取 Activity
  • getActivityByContext : 根據上下文獲取 Activity
  • isActivityExists : 判斷 Activity 是否存在
  • startActivity : 啓動 Activity
  • startActivityForResult : 啓動 Activity 爲返回結果
  • startActivities : 啓動多個 Activity
  • startHomeActivity : 回到桌面
  • getActivityList : 獲取 Activity 棧鏈表
  • getLauncherActivity : 獲取啓動項 Activity
  • getTopActivity : 獲取棧頂 Activity
  • isActivityExistsInStack : 判斷 Activity 是否存在棧中
  • finishActivity : 結束 Activity
  • finishToActivity : 結束到指定 Activity
  • finishOtherActivities : 結束所有其他類型的 Activity
  • finishAllActivities : 結束所有 Activity
  • finishAllActivitiesExceptNewest: 結束除最新之外的所有 Activity

3. AdaptScreen 相關 -> AdaptScreenUtils.java -> Demo

  • adaptWidth : 適配寬度
  • adaptHeight: 適配高度
  • closeAdapt : 關閉適配(pt 等同於 dp)
  • pt2Px : pt 轉 px
  • px2Pt : px 轉 pt

4. AntiShake 相關 -> ApiUtils.java -> README

  • isValid: 是否有效

5. App 相關 -> AppUtils.java -> Demo

  • registerAppStatusChangedListener : 註冊 App 前後臺切換監聽器
  • unregisterAppStatusChangedListener: 註銷 App 前後臺切換監聽器
  • installApp : 安裝 App(支持 8.0)
  • installAppSilent : 靜默安裝 App
  • uninstallApp : 卸載 App
  • uninstallAppSilent : 靜默卸載 App
  • isAppInstalled : 判斷 App 是否安裝
  • isAppRoot : 判斷 App 是否有 root 權限
  • isAppDebug : 判斷 App 是否是 Debug 版本
  • isAppSystem : 判斷 App 是否是系統應用
  • isAppForeground : 判斷 App 是否處於前臺
  • launchApp : 打開 App
  • relaunchApp : 重啓 App
  • launchAppDetailsSettings : 打開 App 具體設置
  • exitApp : 關閉應用
  • getAppIcon : 獲取 App 圖標
  • getAppPackageName : 獲取 App 包名
  • getAppName : 獲取 App 名稱
  • getAppPath : 獲取 App 路徑
  • getAppVersionName : 獲取 App 版本號
  • getAppVersionCode : 獲取 App 版本碼
  • getAppSignature : 獲取 App 簽名
  • getAppSignatureSHA1 : 獲取應用簽名的的 SHA1 值
  • getAppSignatureSHA256 : 獲取應用簽名的的 SHA256 值
  • getAppSignatureMD5 : 獲取應用簽名的的 MD5 值
  • getAppInfo : 獲取 App 信息
  • getAppsInfo : 獲取所有已安裝 App 信息
  • getApkInfo : 獲取 Apk 信息

6. 狀態欄相關 -> BarUtils.java -> Demo

  • getStatusBarHeight : 獲取狀態欄高度(px)
  • setStatusBarVisibility : 設置狀態欄是否可見
  • isStatusBarVisible : 判斷狀態欄是否可見
  • setStatusBarLightMode : 設置狀態欄是否爲淺色模式
  • addMarginTopEqualStatusBarHeight : 爲 view 增加 MarginTop 爲狀態欄高度
  • subtractMarginTopEqualStatusBarHeight: 爲 view 減少 MarginTop 爲狀態欄高度
  • setStatusBarColor : 設置狀態欄顏色
  • setStatusBarColor4Drawer : 爲 DrawerLayout 設置狀態欄顏色
  • getActionBarHeight : 獲取 ActionBar 高度
  • setNotificationBarVisibility : 設置通知欄是否可見
  • getNavBarHeight : 獲取導航欄高度
  • setNavBarVisibility : 設置導航欄是否可見
  • isNavBarVisible : 判斷導航欄是否可見
  • setNavBarColor : 設置導航欄顏色
  • getNavBarColor : 獲取導航欄顏色
  • isSupportNavBar : 判斷是否支持導航欄

7. 屏幕亮度相關 -> BrightnessUtils.java -> Demo

  • isAutoBrightnessEnabled : 判斷是否開啓自動調節亮度
  • setAutoBrightnessEnabled: 設置是否開啓自動調節亮度
  • getBrightness : 獲取屏幕亮度
  • setBrightness : 設置屏幕亮度
  • setWindowBrightness : 設置窗口亮度
  • getWindowBrightness : 獲取窗口亮度

8. Bus 相關 -> BusUtils.java -> README

  • post: 發送

9. 磁盤緩存相關 -> CacheDiskStaticUtils.java -> Test

  • setDefaultCacheDiskUtils: 設置默認磁盤緩存實例
  • put : 緩存中寫入數據
  • getBytes : 緩存中讀取字節數組
  • getString : 緩存中讀取 String
  • getJSONObject : 緩存中讀取 JSONObject
  • getJSONArray : 緩存中讀取 JSONArray
  • getBitmap : 緩存中讀取 Bitmap
  • getDrawable : 緩存中讀取 Drawable
  • getParcelable : 緩存中讀取 Parcelable
  • getSerializable : 緩存中讀取 Serializable
  • getCacheSize : 獲取緩存大小
  • getCacheCount : 獲取緩存個數
  • remove : 根據鍵值移除緩存
  • clear : 清除所有緩存

10. 磁盤緩存相關 -> CacheDiskUtils.java -> Test

  • getInstance : 獲取緩存實例
  • Instance.put : 緩存中寫入數據
  • Instance.getBytes : 緩存中讀取字節數組
  • Instance.getString : 緩存中讀取 String
  • Instance.getJSONObject : 緩存中讀取 JSONObject
  • Instance.getJSONArray : 緩存中讀取 JSONArray
  • Instance.getBitmap : 緩存中讀取 Bitmap
  • Instance.getDrawable : 緩存中讀取 Drawable
  • Instance.getParcelable : 緩存中讀取 Parcelable
  • Instance.getSerializable: 緩存中讀取 Serializable
  • Instance.getCacheSize : 獲取緩存大小
  • Instance.getCacheCount : 獲取緩存個數
  • Instance.remove : 根據鍵值移除緩存
  • Instance.clear : 清除所有緩存

11. 二級緩存相關 -> CacheDoubleStaticUtils.java -> Test

  • setDefaultCacheDoubleUtils: 設置默認二級緩存實例
  • put : 緩存中寫入數據
  • getBytes : 緩存中讀取字節數組
  • getString : 緩存中讀取 String
  • getJSONObject : 緩存中讀取 JSONObject
  • getJSONArray : 緩存中讀取 JSONArray
  • getBitmap : 緩存中讀取 Bitmap
  • getDrawable : 緩存中讀取 Drawable
  • getParcelable : 緩存中讀取 Parcelable
  • getSerializable : 緩存中讀取 Serializable
  • getCacheDiskSize : 獲取磁盤緩存大小
  • getCacheDiskCount : 獲取磁盤緩存個數
  • getCacheMemoryCount : 獲取內存緩存個數
  • remove : 根據鍵值移除緩存
  • clear : 清除所有緩存

12. 二級緩存相關 -> CacheDoubleUtils.java -> Test

  • getInstance : 獲取緩存實例
  • Instance.put : 緩存中寫入數據
  • Instance.getBytes : 緩存中讀取字節數組
  • Instance.getString : 緩存中讀取 String
  • Instance.getJSONObject : 緩存中讀取 JSONObject
  • Instance.getJSONArray : 緩存中讀取 JSONArray
  • Instance.getBitmap : 緩存中讀取 Bitmap
  • Instance.getDrawable : 緩存中讀取 Drawable
  • Instance.getParcelable : 緩存中讀取 Parcelable
  • Instance.getSerializable : 緩存中讀取 Serializable
  • Instance.getCacheDiskSize : 獲取磁盤緩存大小
  • Instance.getCacheDiskCount : 獲取磁盤緩存個數
  • Instance.getCacheMemoryCount: 獲取內存緩存個數
  • Instance.remove : 根據鍵值移除緩存
  • Instance.clear : 清除所有緩存

13. 內存緩存相關 -> CacheMemoryStaticUtils.java -> Test

  • setDefaultCacheMemoryUtils: 設置默認內存緩存實例
  • put : 緩存中寫入數據
  • get : 緩存中讀取字節數組
  • getCacheCount : 獲取緩存個數
  • remove : 根據鍵值移除緩存
  • clear : 清除所有緩存

14. 內存緩存相關 -> CacheMemoryUtils.java -> Test

  • getInstance : 獲取緩存實例
  • Instance.put : 緩存中寫入數據
  • Instance.get : 緩存中讀取字節數組
  • Instance.getCacheCount: 獲取緩存個數
  • Instance.remove : 根據鍵值移除緩存
  • Instance.clear : 清除所有緩存

15. 清除相關 -> CleanUtils.java -> Demo

cleanInternalCache : 清除內部緩存
cleanInternalFiles : 清除內部文件
cleanInternalDbs : 清除內部數據庫
cleanInternalDbByName: 根據名稱清除數據庫
cleanInternalSp : 清除內部 SP
cleanExternalCache : 清除外部緩存
cleanCustomDir : 清除自定義目錄下的文件

15.2 點擊相關 -> ClickUtils.java -> Demo

applyScale : 應用點擊縮放
applySingleDebouncing : 對單視圖應用防抖點擊
applyGlobalDebouncing : 對所有設置 GlobalDebouncing 的視圖應用防抖點擊
ClickUtils#OnDebouncingClickListener: 防抖點擊監聽器
ClickUtils#OnMultiClickListener : 連續點擊監聽器

16. 克隆相關 -> CloneUtils.java -> Test

deepClone: 深度克隆

17. 關閉相關 -> CloseUtils.java

closeIO : 關閉 IO
closeIOQuietly: 安靜關閉 IO

18. 顏色相關 -> ColorUtils.java

getColor : 獲取顏色
setAlphaComponent: 設置顏色透明度值
setRedComponent : 設置顏色紅色值
setGreenComponent: 設置顏色綠色值
setBlueComponent : 設置顏色藍色值
string2Int : 顏色串轉顏色值
int2RgbString : 顏色值轉 RGB 串
int2ArgbString : 顏色值轉 ARGB 串
getRandomColor : 獲取隨機色

19. 轉換相關 -> ConvertUtils.java -> Test

bytes2Bits, bits2Bytes : bytes 與 bits 互轉
bytes2Chars, chars2Bytes : bytes 與 chars 互轉
bytes2HexString, hexString2Bytes : bytes 與 hexString 互轉
memorySize2Byte, byte2MemorySize : 以 unit 爲單位的內存大小與字節數互轉
byte2FitMemorySize : 字節數轉合適內存大小
timeSpan2Millis, millis2TimeSpan : 以 unit 爲單位的時間長度與毫秒時間戳互轉
millis2FitTimeSpan : 毫秒時間戳轉合適時間長度
input2OutputStream, output2InputStream : inputStream 與 outputStream 互轉
inputStream2Bytes, bytes2InputStream : inputStream 與 bytes 互轉
outputStream2Bytes, bytes2OutputStream : outputStream 與 bytes 互轉
inputStream2String, string2InputStream : inputStream 與 string 按編碼互轉
outputStream2String, string2OutputStream: outputStream 與 string 按編碼互轉
bitmap2Bytes, bytes2Bitmap : bitmap 與 bytes 互轉
drawable2Bitmap, bitmap2Drawable : drawable 與 bitmap 互轉
drawable2Bytes, bytes2Drawable : drawable 與 bytes 互轉
view2Bitmap : view 轉 Bitmap
dp2px, px2dp : dp 與 px 互轉
sp2px, px2sp : sp 與 px 互轉

20. 崩潰相關 -> CrashUtils.java

init: 初始化

21. 設備相關 -> DeviceUtils.java -> Demo

isDeviceRooted : 判斷設備是否 rooted
isAdbEnabled : 判斷設備 ADB 是否可用
getSDKVersionName: 獲取設備系統版本號
getSDKVersionCode: 獲取設備系統版本碼
getAndroidID : 獲取設備 AndroidID
getMacAddress : 獲取設備 MAC 地址
getManufacturer : 獲取設備廠商
getModel : 獲取設備型號
getABIs : 獲取設備 ABIs
shutdown : 關機
reboot : 重啓
reboot2Recovery : 重啓到 recovery
reboot2Bootloader: 重啓到 bootloader

22. 閃光燈相關 -> FlashlightUtils.java -> Demo

isFlashlightEnable : 判斷設備是否支持閃光燈
isFlashlightOn : 判斷閃光燈是否打開
setFlashlightStatus: 設置閃光燈狀態
destroy : 銷燬

23. 編碼解碼相關 -> EncodeUtils.java -> Test

urlEncode : URL 編碼
urlDecode : URL 解碼
base64Encode : Base64 編碼
base64Encode2String: Base64 編碼
base64Decode : Base64 解碼
htmlEncode : Html 編碼
htmlDecode : Html 解碼

24. 加密解密相關 -> EncryptUtils.java -> Test

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 解密
encryptRSA, encryptRSA2HexString, encryptRSA2Base64 : RSA 加密
decryptRSA, decryptHexStringRSA, decryptBase64RSA : RSA 解密

25. 文件相關 -> FileIOUtils.java -> Test

writeFileFromIS : 將輸入流寫入文件
writeFileFromBytesByStream : 將字節數組寫入文件
writeFileFromBytesByChannel: 將字節數組寫入文件
writeFileFromBytesByMap : 將字節數組寫入文件
writeFileFromString : 將字符串寫入文件
readFile2List : 讀取文件到字符串鏈表中
readFile2String : 讀取文件到字符串中
readFile2BytesByStream : 讀取文件到字節數組中
readFile2BytesByChannel : 讀取文件到字節數組中
readFile2BytesByMap : 讀取文件到字節數組中
setBufferSize : 設置緩衝區尺寸

26. 文件相關 -> FileUtils.java -> Test

getFileByPath : 根據文件路徑獲取文件
isFileExists : 判斷文件是否存在
rename : 重命名文件
isDir : 判斷是否是目錄
isFile : 判斷是否是文件
createOrExistsDir : 判斷目錄是否存在,不存在則判斷是否創建成功
createOrExistsFile : 判斷文件是否存在,不存在則判斷是否創建成功
createFileByDeleteOldFile : 判斷文件是否存在,存在則在創建之前刪除
copyDir : 複製目錄
copyFile : 複製文件
moveDir : 移動目錄
moveFile : 移動文件
delete : 刪除文件或目錄
deleteDir : 刪除目錄
deleteFile : 刪除文件
deleteAllInDir : 刪除目錄下所有東西
deleteFilesInDir : 刪除目錄下所有文件
deleteFilesInDirWithFilter: 刪除目錄下所有過濾的文件
listFilesInDir : 獲取目錄下所有文件
listFilesInDirWithFilter : 獲取目錄下所有過濾的文件
getFileLastModified : 獲取文件最後修改的毫秒時間戳
getFileCharsetSimple : 簡單獲取文件編碼格式
getFileLines : 獲取文件行數
getDirSize : 獲取目錄大小
getFileSize : 獲取文件大小
getDirLength : 獲取目錄長度
getFileLength : 獲取文件長度
getFileMD5 : 獲取文件的 MD5 校驗碼
getFileMD5ToString : 獲取文件的 MD5 校驗碼
getDirName : 根據全路徑獲取最長目錄
getFileName : 根據全路徑獲取文件名
getFileNameNoExtension : 根據全路徑獲取文件名不帶拓展名
getFileExtension : 根據全路徑獲取文件拓展名

27. Fragment 相關 -> FragmentUtils.java -> Demo

add : 新增 fragment
show : 顯示 fragment
hide : 隱藏 fragment
showHide : 先顯示後隱藏 fragment
replace : 替換 fragment
pop : 出棧 fragment
popTo : 出棧到指定 fragment
popAll : 出棧所有 fragment
remove : 移除 fragment
removeTo : 移除到指定 fragment
removeAll : 移除所有 fragment
getTop : 獲取頂部 fragment
getTopInStack : 獲取棧中頂部 fragment
getTopShow : 獲取頂部可見 fragment
getTopShowInStack : 獲取棧中頂部可見 fragment
getFragments : 獲取同級別的 fragment
getFragmentsInStack : 獲取同級別棧中的 fragment
getAllFragments : 獲取所有 fragment
getAllFragmentsInStack: 獲取棧中所有 fragment
findFragment : 查找 fragment
dispatchBackPress : 處理 fragment 回退鍵
setBackgroundColor : 設置背景色
setBackgroundResource : 設置背景資源
setBackground : 設置背景

28. Gson 相關 -> GsonUtils.java -> Test

getGson : 獲取 Gson 對象
toJson : 對象轉 Json 串
fromJson : Json 串轉對象
getListType : 獲取鏈表類型
getSetType : 獲取集合類型
getMapType : 獲取字典類型
getArrayType: 獲取數組類型
getType : 獲取類型

29. 圖片相關 -> ImageUtils.java -> Demo

bitmap2Bytes, bytes2Bitmap : bitmap 與 bytes 互轉
drawable2Bitmap, bitmap2Drawable: drawable 與 bitmap 互轉
drawable2Bytes, bytes2Drawable : drawable 與 bytes 互轉
view2Bitmap : view 轉 bitmap
getBitmap : 獲取 bitmap
scale : 縮放圖片
clip : 裁剪圖片
skew : 傾斜圖片
rotate : 旋轉圖片
getRotateDegree : 獲取圖片旋轉角度
toRound : 轉爲圓形圖片
toRoundCorner : 轉爲圓角圖片
addCornerBorder : 添加圓角邊框
addCircleBorder : 添加圓形邊框
addReflection : 添加倒影
addTextWatermark : 添加文字水印
addImageWatermark : 添加圖片水印
toAlpha : 轉爲 alpha 位圖
toGray : 轉爲灰度圖片
fastBlur : 快速模糊
renderScriptBlur : renderScript 模糊圖片
stackBlur : stack 模糊圖片
save : 保存圖片
isImage : 根據文件名判斷文件是否爲圖片
getImageType : 獲取圖片類型
compressByScale : 按縮放壓縮
compressByQuality : 按質量壓縮
compressBySampleSize : 按採樣大小壓縮
getSize : 獲取圖片尺寸

30. 意圖相關 -> IntentUtils.java

isIntentAvailable : 判斷意圖是否可用
getInstallAppIntent : 獲取安裝 App(支持 6.0)的意圖
getUninstallAppIntent : 獲取卸載 App 的意圖
getLaunchAppIntent : 獲取打開 App 的意圖
getLaunchAppDetailsSettingsIntent: 獲取 App 具體設置的意圖
getShareTextIntent : 獲取分享文本的意圖
getShareImageIntent : 獲取分享圖片的意圖
getComponentIntent : 獲取其他應用組件的意圖
getShutdownIntent : 獲取關機的意圖
getCaptureIntent : 獲取拍照的意圖

31. 鍵盤相關 -> KeyboardUtils.java -> Demo

showSoftInput : 顯示軟鍵盤
hideSoftInput : 隱藏軟鍵盤
toggleSoftInput : 切換鍵盤顯示與否狀態
isSoftInputVisible : 判斷軟鍵盤是否可見
registerSoftInputChangedListener : 註冊軟鍵盤改變監聽器
unregisterSoftInputChangedListener: 註銷軟鍵盤改變監聽器
fixAndroidBug5497 : 修復安卓 5497 BUG
fixSoftInputLeaks : 修復軟鍵盤內存泄漏
clickBlankArea2HideSoftInput : 點擊屏幕空白區域隱藏軟鍵盤

32.1 語言相關 -> LanguageUtils.java -> Demo

applySystemLanguage: 應用系統語言
applyLanguage : 應用語言

32. 日誌相關 -> LogUtils.java -> Demo

getConfig : 獲取 log 配置
Config.setLogSwitch : 設置 log 總開關
Config.setConsoleSwitch : 設置 log 控制檯開關
Config.setGlobalTag : 設置 log 全局 tag
Config.setLogHeadSwitch : 設置 log 頭部信息開關
Config.setLog2FileSwitch : 設置 log 文件開關
Config.setDir : 設置 log 文件存儲目錄
Config.setFilePrefix : 設置 log 文件前綴
Config.setBorderSwitch : 設置 log 邊框開關
Config.setSingleTagSwitch: 設置 log 單一 tag 開關(爲美化 AS 3.1 的 Logcat)
Config.setConsoleFilter : 設置 log 控制檯過濾器
Config.setFileFilter : 設置 log 文件過濾器
Config.setStackDeep : 設置 log 棧深度
Config.setStackOffset : 設置 log 棧偏移
Config.setSaveDays : 設置 log 可保留天數
Config.addFormatter : 新增 log 格式化器
log : 自定義 tag 的 type 日誌
v : tag 爲類名的 Verbose 日誌
vTag : 自定義 tag 的 Verbose 日誌
d : tag 爲類名的 Debug 日誌
dTag : 自定義 tag 的 Debug 日誌
i : tag 爲類名的 Info 日誌
iTag : 自定義 tag 的 Info 日誌
w : tag 爲類名的 Warn 日誌
wTag : 自定義 tag 的 Warn 日誌
e : tag 爲類名的 Error 日誌
eTag : 自定義 tag 的 Error 日誌
a : tag 爲類名的 Assert 日誌
aTag : 自定義 tag 的 Assert 日誌
file : log 到文件
json : log 字符串之 json
xml : log 字符串之 xml

33. MetaDataUtils.java -> Demo

getMetaDataInApp : 獲取 application 的 meta-data 值
getMetaDataInActivity: 獲取 activity 的 meta-data 值
getMetaDataInService : 獲取 service 的 meta-data 值
getMetaDataInReceiver: 獲取 receiver 的 meta-data 值

34. 網絡相關 -> NetworkUtils.java -> Demo

openWirelessSettings : 打開網絡設置界面
isConnected : 判斷網絡是否連接
isAvailableByPing : 判斷網絡是否可用
getMobileDataEnabled : 判斷移動數據是否打開
setMobileDataEnabled : 打開或關閉移動數據
isMobileData : 判斷網絡是否是移動數據
is4G : 判斷網絡是否是 4G
getWifiEnabled : 判斷 wifi 是否打開
setWifiEnabled : 打開或關閉 wifi
isWifiConnected : 判斷 wifi 是否連接狀態
isWifiAvailable : 判斷 wifi 數據是否可用
getNetworkOperatorName: 獲取移動網絡運營商名稱
getNetworkType : 獲取當前網絡類型
getIPAddress : 獲取 IP 地址
getDomainAddress : 獲取域名 IP 地址
getIpAddressByWifi : 根據 WiFi 獲取網絡 IP 地址
getGatewayByWifi : 根據 WiFi 獲取網關 IP 地址
getNetMaskByWifi : 根據 WiFi 獲取子網掩碼 IP 地址
getServerAddressByWifi: 根據 WiFi 獲取服務端 IP 地址

35. 對象相關 -> ObjectUtils.java -> Test

isEmpty : 判斷對象是否爲空
isNotEmpty : 判斷對象是否非空
equals : 判斷對象是否相等
requireNonNull: 檢查對象非空
getOrDefault : 獲取非空或默認對象
hashCode : 獲取對象哈希值

36. 路徑相關 -> PathUtils.java -> Demo

getRootPath : 獲取根路徑
getDataPath : 獲取數據路徑
getDownloadCachePath : 獲取下載緩存路徑
getInternalAppDataPath : 獲取內存應用數據路徑
getInternalAppCodeCacheDir : 獲取內存應用代碼緩存路徑
getInternalAppCachePath : 獲取內存應用緩存路徑
getInternalAppDbsPath : 獲取內存應用數據庫路徑
getInternalAppDbPath : 獲取內存應用數據庫路徑
getInternalAppFilesPath : 獲取內存應用文件路徑
getInternalAppSpPath : 獲取內存應用 SP 路徑
getInternalAppNoBackupFilesPath: 獲取內存應用未備份文件路徑
getExternalStoragePath : 獲取外存路徑
getExternalMusicPath : 獲取外存音樂路徑
getExternalPodcastsPath : 獲取外存播客路徑
getExternalRingtonesPath : 獲取外存鈴聲路徑
getExternalAlarmsPath : 獲取外存鬧鈴路徑
getExternalNotificationsPath : 獲取外存通知路徑
getExternalPicturesPath : 獲取外存圖片路徑
getExternalMoviesPath : 獲取外存影片路徑
getExternalDownloadsPath : 獲取外存下載路徑
getExternalDcimPath : 獲取外存數碼相機圖片路徑
getExternalDocumentsPath : 獲取外存文檔路徑
getExternalAppDataPath : 獲取外存應用數據路徑
getExternalAppCachePath : 獲取外存應用緩存路徑
getExternalAppFilesPath : 獲取外存應用文件路徑
getExternalAppMusicPath : 獲取外存應用音樂路徑
getExternalAppPodcastsPath : 獲取外存應用播客路徑
getExternalAppRingtonesPath : 獲取外存應用鈴聲路徑
getExternalAppAlarmsPath : 獲取外存應用鬧鈴路徑
getExternalAppNotificationsPath: 獲取外存應用通知路徑
getExternalAppPicturesPath : 獲取外存應用圖片路徑
getExternalAppMoviesPath : 獲取外存應用影片路徑
getExternalAppDownloadPath : 獲取外存應用下載路徑
getExternalAppDcimPath : 獲取外存應用數碼相機圖片路徑
getExternalAppDocumentsPath : 獲取外存應用文檔路徑
getExternalAppObbPath : 獲取外存應用 OBB 路徑

37. 權限相關 -> PermissionUtils.java -> Demo

getPermissions : 獲取應用權限
isGranted : 判斷權限是否被授予
isGrantedWriteSettings : 判斷修改系統權限是否被授予
requestWriteSettings : 申請修改系統權限
isGrantedDrawOverlays : 判斷懸浮窗權限是否被授予
requestDrawOverlays : 申請懸浮窗權限
launchAppDetailsSettings: 打開應用具體設置
permission : 設置請求權限
rationale : 設置拒絕權限後再次請求的回調接口
callback : 設置回調
theme : 設置主題
request : 開始請求

38. 手機相關 ->PhoneUtils.java -> Demo

isPhone : 判斷設備是否是手機
getDeviceId : 獲取設備碼
getSerial : 獲取序列號
getIMEI : 獲取 IMEI 碼
getMEID : 獲取 MEID 碼
getIMSI : 獲取 IMSI 碼
getPhoneType : 獲取移動終端類型
isSimCardReady : 判斷 sim 卡是否準備好
getSimOperatorName : 獲取 Sim 卡運營商名稱
getSimOperatorByMnc: 獲取 Sim 卡運營商名稱
getPhoneStatus : 獲取手機狀態信息
dial : 跳至撥號界面
call : 撥打 phoneNumber
sendSms : 跳至發送短信界面
sendSmsSilent : 發送短信

39. 進程相關 -> ProcessUtils.java -> Demo

getForegroundProcessName : 獲取前臺線程包名
killAllBackgroundProcesses: 殺死所有的後臺服務進程
killBackgroundProcesses : 殺死後臺服務進程
isMainProcess : 判斷是否運行在主進程
getCurrentProcessName : 獲取當前進程名稱

40. 反射相關 -> ReflectUtils.java -> Test

reflect : 設置要反射的類
newInstance: 實例化反射對象
field : 設置反射的字段
method : 設置反射的方法
get : 獲取反射想要獲取的

41. 正則相關 -> RegexUtils.java -> Test

isMobileSimple : 簡單驗證手機號
isMobileExact : 精確驗證手機號
isTel : 驗證電話號碼
isIDCard15 : 驗證身份證號碼 15 位
isIDCard18 : 簡單驗證身份證號碼 18 位
isIDCard18Exact: 精確驗證身份證號碼 18 位
isEmail : 驗證郵箱
isURL : 驗證 URL
isZh : 驗證漢字
isUsername : 驗證用戶名
isDate : 驗證 yyyy-MM-dd 格式的日期校驗,已考慮平閏年
isIP : 驗證 IP 地址
isMatch : 判斷是否匹配正則
getMatches : 獲取正則匹配的部分
getSplits : 獲取正則匹配分組
getReplaceFirst: 替換正則匹配的第一部分
getReplaceAll : 替換所有正則匹配的部分

42. 資源相關 -> ResourceUtils.java -> Demo

copyFileFromAssets: 從 assets 中拷貝文件
readAssets2String : 從 assets 中讀取字符串
readAssets2List : 從 assets 中按行讀取字符串
copyFileFromRaw : 從 raw 中拷貝文件
readRaw2String : 從 raw 中讀取字符串
readRaw2List : 從 raw 中按行讀取字符串

43. Rom 相關 -> RomUtils.java -> Demo

isHuawei : 是否華爲
isVivo : 是否 VIVO
isXiaomi : 是否小米
isOppo : 是否 OPPO
isLeeco : 是否樂視
is360 : 是否 360
isZte : 是否中興
isOneplus : 是否一加
isNubia : 是否努比亞
isCoolpad : 是否酷派
isLg : 是否 LG
isGoogle : 是否谷歌
isSamsung : 是否三星
isMeizu : 是否魅族
isLenovo : 是否聯想
isSmartisan: 是否錘子
isHtc : 是否 HTC
isSony : 是否索尼
isGionee : 是否金立
isMotorola : 是否摩托羅拉
getRomInfo : 獲取 ROM 信息

44. 屏幕相關 -> ScreenUtils.java -> Demo

getScreenWidth : 獲取屏幕的寬度(單位:px)
getScreenHeight : 獲取屏幕的高度(單位:px)
getScreenDensity : 獲取屏幕密度
getScreenDensityDpi: 獲取屏幕密度 DPI
setFullScreen : 設置屏幕爲全屏
setNonFullScreen : 設置屏幕爲非全屏
toggleFullScreen : 切換屏幕爲全屏與否狀態
isFullScreen : 判斷屏幕是否爲全屏
setLandscape : 設置屏幕爲橫屏
setPortrait : 設置屏幕爲豎屏
isLandscape : 判斷是否橫屏
isPortrait : 判斷是否豎屏
getScreenRotation : 獲取屏幕旋轉角度
screenShot : 截屏
isScreenLock : 判斷是否鎖屏
setSleepDuration : 設置進入休眠時長
getSleepDuration : 獲取進入休眠時長
isTablet : 判斷是否是平板

45. SD 卡相關 -> SDCardUtils.java -> Demo

isSDCardEnableByEnvironment: 根據 Environment 判斷 SD 卡是否可用
getSDCardPathByEnvironment : 根據 Environment 獲取 SD 卡路徑
getSDCardInfo : 獲取 SD 卡信息

46. 服務相關 -> ServiceUtils.java

getAllRunningServices: 獲取所有運行的服務
startService : 啓動服務
stopService : 停止服務
bindService : 綁定服務
unbindService : 解綁服務
isServiceRunning : 判斷服務是否運行

47. Shell 相關 -> ShellUtils.java

execCmd: 是否是在 root 下執行命令

48. 尺寸相關 -> SizeUtils.java

dp2px, px2dp : dp 與 px 轉換
sp2px, px2sp : sp 與 px 轉換
applyDimension : 各種單位轉換
forceGetViewSize : 在 onCreate 中獲取視圖的尺寸
measureView : 測量視圖尺寸
getMeasuredWidth : 獲取測量視圖寬度
getMeasuredHeight: 獲取測量視圖高度

49. Snackbar 相關 -> SnackbarUtils.java -> Demo

with : 設置 snackbar 依賴 view
setMessage : 設置消息
setMessageColor: 設置消息顏色
setBgColor : 設置背景色
setBgResource : 設置背景資源
setDuration : 設置顯示時長
setAction : 設置行爲
setBottomMargin: 設置底邊距
show : 顯示 snackbar
showSuccess : 顯示預設成功的 snackbar
showWarning : 顯示預設警告的 snackbar
showError : 顯示預設錯誤的 snackbar
dismiss : 消失 snackbar
getView : 獲取 snackbar 視圖
addView : 添加 snackbar 視圖

50. SpannableString 相關 -> SpanUtils.java -> Demo

with : 設置控件
setFlag : 設置標識
setForegroundColor: 設置前景色
setBackgroundColor: 設置背景色
setLineHeight : 設置行高
setQuoteColor : 設置引用線的顏色
setLeadingMargin : 設置縮進
setBullet : 設置列表標記
setFontSize : 設置字體尺寸
setFontProportion : 設置字體比例
setFontXProportion: 設置字體橫向比例
setStrikethrough : 設置刪除線
setUnderline : 設置下劃線
setSuperscript : 設置上標
setSubscript : 設置下標
setBold : 設置粗體
setItalic : 設置斜體
setBoldItalic : 設置粗斜體
setFontFamily : 設置字體系列
setTypeface : 設置字體
setAlign : 設置對齊
setClickSpan : 設置點擊事件
setUrl : 設置超鏈接
setBlur : 設置模糊
setShader : 設置着色器
setShadow : 設置陰影
setSpans : 設置樣式
append : 追加樣式字符串
appendLine : 追加一行樣式字符串
appendImage : 追加圖片
appendSpace : 追加空白
create : 創建樣式字符串

51. SP 相關 -> SPStaticUtils.java -> Demo

setDefaultSPUtils: 設置默認 SP 實例
put : SP 中寫入數據
getString : SP 中讀取 String
getInt : SP 中讀取 int
getLong : SP 中讀取 long
getFloat : SP 中讀取 float
getBoolean : SP 中讀取 boolean
getAll : SP 中獲取所有鍵值對
contains : SP 中是否存在該 key
remove : SP 中移除該 key
clear : SP 中清除所有數據

51. 2 SP 相關 -> SPUtils.java

getInstance : 獲取 SP 實例
Instance.put : SP 中寫入數據
Instance.getString : SP 中讀取 String
Instance.getInt : SP 中讀取 int
Instance.getLong : SP 中讀取 long
Instance.getFloat : SP 中讀取 float
Instance.getBoolean: SP 中讀取 boolean
Instance.getAll : SP 中獲取所有鍵值對
Instance.contains : SP 中是否存在該 key
Instance.remove : SP 中移除該 key
Instance.clear : SP 中清除所有數據

52. 字符串相關 -> StringUtils.java -> Test

isEmpty : 判斷字符串是否爲 null 或長度爲 0
isTrimEmpty : 判斷字符串是否爲 null 或全爲空格
isSpace : 判斷字符串是否爲 null 或全爲空白字符
equals : 判斷兩字符串是否相等
equalsIgnoreCase: 判斷兩字符串忽略大小寫是否相等
null2Length0 : null 轉爲長度爲 0 的字符串
length : 返回字符串長度
upperFirstLetter: 首字母大寫
lowerFirstLetter: 首字母小寫
reverse : 反轉字符串
toDBC : 轉化爲半角字符
toSBC : 轉化爲全角字符

53. 線程相關 -> ThreadUtils.java -> Test

isMainThread : 判斷當前是否主線程
getFixedPool : 獲取固定線程池
getSinglePool : 獲取單線程池
getCachedPool : 獲取緩衝線程池
getIoPool : 獲取 IO 線程池
getCpuPool : 獲取 CPU 線程池
executeByFixed : 在固定線程池執行任務
executeByFixedWithDelay : 在固定線程池延時執行任務
executeByFixedAtFixRate : 在固定線程池按固定頻率執行任務
executeBySingle : 在單線程池執行任務
executeBySingleWithDelay: 在單線程池延時執行任務
executeBySingleAtFixRate: 在單線程池按固定頻率執行任務
executeByCached : 在緩衝線程池執行任務
executeByCachedWithDelay: 在緩衝線程池延時執行任務
executeByCachedAtFixRate: 在緩衝線程池按固定頻率執行任務
executeByIo : 在 IO 線程池執行任務
executeByIoWithDelay : 在 IO 線程池延時執行任務
executeByIoAtFixRate : 在 IO 線程池按固定頻率執行任務
executeByCpu : 在 CPU 線程池執行任務
executeByCpuWithDelay : 在 CPU 線程池延時執行任務
executeByCpuAtFixRate : 在 CPU 線程池按固定頻率執行任務
executeByCustom : 在自定義線程池執行任務
executeByCustomWithDelay: 在自定義線程池延時執行任務
executeByCustomAtFixRate: 在自定義線程池按固定頻率執行任務
cancel : 取消任務的執行
setDeliver : 設置任務結束後交付的線程

54. 時間相關 -> TimeUtils.java -> Test

millis2String : 將時間戳轉爲時間字符串
string2Millis : 將時間字符串轉爲時間戳
string2Date : 將時間字符串轉爲 Date 類型
date2String : 將 Date 類型轉爲時間字符串
date2Millis : 將 Date 類型轉爲時間戳
millis2Date : 將時間戳轉爲 Date 類型
getTimeSpan : 獲取兩個時間差(單位:unit)
getFitTimeSpan : 獲取合適型兩個時間差
getNowMills : 獲取當前毫秒時間戳
getNowString : 獲取當前時間字符串
getNowDate : 獲取當前 Date
getTimeSpanByNow : 獲取與當前時間的差(單位:unit)
getFitTimeSpanByNow : 獲取合適型與當前時間的差
getFriendlyTimeSpanByNow: 獲取友好型與當前時間的差
getMillis : 獲取與給定時間等於時間差的時間戳
getString : 獲取與給定時間等於時間差的時間字符串
getDate : 獲取與給定時間等於時間差的 Date
getMillisByNow : 獲取與當前時間等於時間差的時間戳
getStringByNow : 獲取與當前時間等於時間差的時間字符串
getDateByNow : 獲取與當前時間等於時間差的 Date
isToday : 判斷是否今天
isLeapYear : 判斷是否閏年
getChineseWeek : 獲取中式星期
getUSWeek : 獲取美式式星期
getValueByCalendarField : 根據日曆字段獲取值
getChineseZodiac : 獲取生肖
getZodiac : 獲取星座

55. 吐司相關 -> ToastUtils.java -> Demo

setGravity : 設置吐司位置
setBgColor : 設置背景顏色
setBgResource : 設置背景資源
setMsgColor : 設置消息顏色
setMsgTextSize : 設置消息字體大小
showShort : 顯示短時吐司
showLong : 顯示長時吐司
showCustomShort: 顯示短時自定義吐司
showCustomLong : 顯示長時自定義吐司
cancel : 取消吐司顯示

56. URI 相關 -> UriUtils.java

file2Uri: file 轉 uri
uri2File: uri 轉 file

57. 震動相關 -> VibrateUtils.java -> Demo

vibrate: 震動
cancel : 取消

58. 壓縮相關 -> ZipUtils.java -> Test

zipFiles : 批量壓縮文件
zipFile : 壓縮文件
unzipFile : 解壓文件
unzipFileByKeyword: 解壓帶有關鍵字的文件
getFilesPath : 獲取壓縮文件中的文件路徑鏈表
getComments : 獲取壓縮文件中的註釋鏈表


②subutil使用:

59. 應用商店相關 -> AppStoreUtils.java -> Demo

getAppStoreIntent: 獲取跳轉應用商店意圖

60. 剪貼板相關 -> ClipboardUtils.java -> Test

copyText : 複製文本到剪貼板
getText : 獲取剪貼板的文本
copyUri : 複製 uri 到剪貼板
getUri : 獲取剪貼板的 uri
copyIntent: 複製意圖到剪貼板
getIntent : 獲取剪貼板的意圖

61. 座標轉換相關 -> CoordinateUtils.java -> Test

bd09ToGcj02 : BD09 座標轉 GCJ02 座標
gcj02ToBd09 : GCJ02 座標轉 BD09 座標
gcj02ToWGS84: GCJ02 座標轉 WGS84 座標
wgs84ToGcj02: WGS84 座標轉 GCJ02 座標
bd09ToWGS84 : BD09 座標轉 WGS84 座標
wgs84ToBd09 : WGS84 座標轉 BD09 座標

61. 國家相關 -> CountryUtils.java -> Demo

getCountryCodeBySim : 根據 Sim 卡獲取國家碼
getCountryCodeByLanguage: 根據系統語言獲取國家碼
getCountryBySim : 根據 Sim 卡獲取國家
getCountryByLanguage : 根據系統語言獲取國家

62. 危險相關 -> DangerousUtils.java -> Demo

installAppSilent : 靜默安裝 App
uninstallAppSilent : 靜默卸載 App
shutdown : 關機
reboot : 重啓
reboot2Recovery : 重啓到 recovery
reboot2Bootloader : 重啓到 bootloader
setMobileDataEnabled: 打開或關閉移動數據

63. 定位相關 -> LocationUtils.java -> Demo

isGpsEnabled : 判斷 Gps 是否可用
isLocationEnabled: 判斷定位是否可用
openGpsSettings : 打開 Gps 設置界面
register : 註冊
unregister : 註銷
getAddress : 根據經緯度獲取地理位置
getCountryName : 根據經緯度獲取所在國家
getLocality : 根據經緯度獲取所在地
getStreet : 根據經緯度獲取所在街道
isBetterLocation : 是否更好的位置
isSameProvider : 是否相同的提供者

64. 拼音相關 -> PinyinUtils.java -> Demo

ccs2Pinyin : 漢字轉拼音
ccs2Pinyin : 漢字轉拼音
getPinyinFirstLetter : 獲取第一個漢字首字母
getPinyinFirstLetters: 獲取所有漢字的首字母
getSurnamePinyin : 根據名字獲取姓氏的拼音
getSurnameFirstLetter: 根據名字獲取姓氏的首字母

總結:

原作者地址:

utilcode

 

subutil

 

參考作者:yhd007



作者:因爲我的心
鏈接:https://www.jianshu.com/p/013fe78cc37c
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。

發佈了394 篇原創文章 · 獲贊 52 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章