1. 程式人生 > >Android開發萬能Utils(工具大全)

Android開發萬能Utils(工具大全)

AndroidUtils Android開發不得不收藏的Utils

之前寫這篇文章主要是專案應用到的Utils,發現已經有一個更全面的開源庫總結,所以還是非常震驚可以總結的這麼全面,在此我準備重新梳理一遍~(一共兩個庫)

第一個庫:

Gradle:

implementation 'com.blankj:utilcode:1.22.0'

Activity 相關 -> ActivityUtils.java -> Demo

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

AdaptScreen 相關 -> AdaptScreenUtils.java -> Demo

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

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 資訊

欄相關 -> BarUtils.java -> Demo

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

磁碟快取相關 -> 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          : 清除所有快取

二級快取相關 -> 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              : 清除所有快取

記憶體快取相關 -> CacheMemoryUtils.java -> Test

getInstance           : 獲取快取例項
Instance.put          : 快取中寫入資料
Instance.get          : 快取中讀取位元組陣列
Instance.getCacheCount: 獲取快取個數
Instance.remove       : 根據鍵值移除快取
Instance.clear        : 清除所有快取

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

cleanInternalCache   : 清除內部快取
cleanInternalFiles   : 清除內部檔案
cleanInternalDbs     : 清除內部資料庫
cleanInternalDbByName: 根據名稱清除資料庫
cleanInternalSp      : 清除內部 SP
cleanExternalCache   : 清除外部快取
cleanCustomDir       : 清除自定義目錄下的檔案

關閉相關 -> CloseUtils.java

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

轉換相關 -> 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 互轉

崩潰相關 -> CrashUtils.java

init: 初始化

裝置相關 -> DeviceUtils.java -> Demo

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

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

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

加密解密相關 -> 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 解密

檔案相關 -> FileIOUtils.java -> Test

writeFileFromIS            : 將輸入流寫入檔案
writeFileFromBytesByStream : 將位元組陣列寫入檔案
writeFileFromBytesByChannel: 將位元組陣列寫入檔案
writeFileFromBytesByMap    : 將位元組陣列寫入檔案
writeFileFromString        : 將字串寫入檔案
readFile2List              : 讀取檔案到字串連結串列中
readFile2String            : 讀取檔案到字串中
readFile2BytesByStream     : 讀取檔案到位元組陣列中
readFile2BytesByChannel    : 讀取檔案到位元組陣列中
readFile2BytesByMap        : 讀取檔案到位元組陣列中
setBufferSize              : 設定緩衝區尺寸

檔案相關 -> 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          : 根據全路徑獲取檔案拓展名

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         : 設定背景

圖片相關 -> 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            : 按取樣大小壓縮

意圖相關 -> IntentUtils.java

isIntentAvailable                : 判斷意圖是否可用
getInstallAppIntent              : 獲取安裝 App(支援 6.0)的意圖
getUninstallAppIntent            : 獲取解除安裝 App 的意圖
getLaunchAppIntent               : 獲取開啟 App 的意圖
getLaunchAppDetailsSettingsIntent: 獲取 App 具體設定的意圖
getShareTextIntent               : 獲取分享文字的意圖
getShareImageIntent              : 獲取分享圖片的意圖
getComponentIntent               : 獲取其他應用元件的意圖
getShutdownIntent                : 獲取關機的意圖
getCaptureIntent                 : 獲取拍照的意圖

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

showSoftInput                     : 顯示軟鍵盤
showSoftInputUsingToggle          : 顯示軟鍵盤用 toggle
hideSoftInput                     : 隱藏軟鍵盤
hideSoftInputUsingToggle          : 隱藏軟鍵盤用 toggle
toggleSoftInput                   : 切換鍵盤顯示與否狀態
isSoftInputVisible                : 判斷軟鍵盤是否可見
registerSoftInputChangedListener  : 註冊軟鍵盤改變監聽器
unregisterSoftInputChangedListener: 登出軟鍵盤改變監聽器
fixAndroidBug5497                 : 修復安卓 5497 BUG
fixSoftInputLeaks                 : 修復軟鍵盤記憶體洩漏
clickBlankArea2HideSoftInput      : 點選螢幕空白區域隱藏軟鍵盤

日誌相關 -> 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

MetaData 相關 -> MetaDataUtils.java -> Demo

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

網路相關 -> 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 地址

物件相關 -> ObjectUtils.java -> Test

isEmpty       : 判斷物件是否為空
isNotEmpty    : 判斷物件是否非空
equals        : 判斷物件是否相等
requireNonNull: 檢查物件非空
getOrDefault  : 獲取非空或預設物件
hashCode      : 獲取物件雜湊值

路徑相關 -> 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 路徑


許可權相關 -> PermissionUtils.java -> Demo

getPermissions          : 獲取應用許可權
isGranted               : 判斷許可權是否被授予
launchAppDetailsSettings: 開啟應用具體設定
permission              : 設定請求許可權
rationale               : 設定拒絕許可權後再次請求的回撥介面
callback                : 設定回撥
theme                   : 設定主題
request                 : 開始請求

手機相關 -> 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      : 傳送簡訊

程序相關 -> ProcessUtils.java -> Demo

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

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

reflect    : 設定要反射的類
newInstance: 例項化反射物件
field      : 設定反射的欄位
method     : 設定反射的方法
get        : 獲取反射想要獲取的

正則相關 -> 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  : 替換所有正則匹配的部分

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

copyFileFromAssets: 從 assets 中拷貝檔案
readAssets2String : 從 assets 中讀取字串
readAssets2List   : 從 assets 中按行讀取字串
copyFileFromRaw   : 從 raw 中拷貝檔案
readRaw2String    : 從 raw 中讀取字串
readRaw2List      : 從 raw 中按行讀取字串

螢幕相關 -> ScreenUtils.java -> Demo

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

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

isSDCardEnableByEnvironment: 根據 Environment 判斷 SD 卡是否可用
getSDCardPathByEnvironment : 根據 Environment 獲取 SD 卡路徑
isSDCardEnable             : 判斷 SD 卡是否可用
getSDCardPaths             : 獲取 SD 卡路徑

服務相關 -> ServiceUtils.java

getAllRunningServices: 獲取所有執行的服務
startService         : 啟動服務
stopService          : 停止服務
bindService          : 繫結服務
unbindService        : 解綁服務
isServiceRunning     : 判斷服務是否執行

Shell 相關 -> ShellUtils.java

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

尺寸相關 -> SizeUtils.java

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

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 檢視

SpannableString 相關 -> SpanUtils.java -> Demo

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            : 建立樣式字串

SP 相關 -> SPUtils.java -> Demo

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 中清除所有資料

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

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

執行緒相關 -> 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                  : 取消任務的執行

時間相關 -> 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               : 獲取星座

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

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

URI 相關 -> UriUtils.java

file2Uri: file 轉 uri
uri2File: uri 轉 file

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

zipFiles          : 批量壓縮檔案
zipFile           : 壓縮檔案
unzipFile         : 解壓檔案
unzipFileByKeyword: 解壓帶有關鍵字的檔案
getFilesPath      : 獲取壓縮檔案中的檔案路徑連結串列
getComments       : 獲取壓縮檔案中的註釋連結串列


第二個庫:

APIs
亮度相關 -> BrightnessUtils.java -> Demo

isAutoBrightnessEnabled : 判斷是否開啟自動調節亮度
setAutoBrightnessEnabled: 設定是否開啟自動調節亮度
getBrightness           : 獲取螢幕亮度
setBrightness           : 設定螢幕亮度
setWindowBrightness     : 設定視窗亮度
getWindowBrightness     : 獲取視窗亮度

剪貼簿相關 -> ClipboardUtils.java -> Test

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

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

deepClone: 深度克隆

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

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

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

getInstance              : 獲取閃光燈例項
Instance.register        : 註冊
Instance.unregister      : 登出
Instance.setFlashlightOn : 開啟閃光燈
Instance.setFlashlightOff: 關閉閃光燈
Instance.isFlashlightOn  : 判斷閃光燈是否開啟
isFlashlightEnable       : 判斷裝置是否支援閃光燈

Gson 相關 -> GsonUtils.java -> Test

getGson : 獲取 Gson 物件
toJson  : 物件轉 Json 串
fromJson: Json 串轉物件

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

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

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

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