實用的工具類框架——AndroidUtilCode

首語

  • AndroidUtilCode是一個功能強大且易於使用的Android庫。該庫封裝了Android開發中常用的具有完整演示和單元測試的功能。通過使用其封裝的API,可以大大提高開發效率。該程序主要由兩個模塊組成,它們是utilcode(通常在開發中使用)和subutil(在開發中很少使用),但是utils有助於簡化模塊。

GitHub地址:

https://github.com/Blankj/AndroidUtilCode

依賴:

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

APIs


Activity相關——ActivityUtils.java

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

App相關——AppUtils.java

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

AdaptScreen相關——AdaptScreenUtils.java

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

Api相關——ApiUtils.java

getApi: 獲取 api 的實例

數組相關——ArrayUtils.java

newArray          : 新建數組
newLongArray      : 新建長整型數組
newIntArray       : 新建整型數組
newShortArray     : 新建 short 數組
newCharArray      : 新建字符數組
newByteArray      : 新建字節數組
newDoubleArray    : 新建雙精度數組
newFloatArray     : 新建浮點數數組
newBooleanArray   : 新建 boolean 數組
isEmpty           : 判斷數組是否爲空
getLength         : 獲取數組長度
isSameLength      : 判斷兩數組長度是否相等
get               : 獲取數組的索引值
set               : 設置數組的索引值
equals            : 判斷數組是否相等
reverse           : 逆序數組
copy              : 拷貝數組
subArray          : 截取數組
add               : 增加數組
remove            : 移除指定的索引
removeElement     : 移除指定的元素
indexOf           : 查找第一個元素的索引
lastIndexOf       : 查找最後一個元素的索引
contains          : 判斷是否包含該元素
toPrimitive       : 裝箱數組轉基本類型數組
toObject          : 基本類型數組轉裝箱數組
asList            : 轉爲鏈表
asUnmodifiableList: 轉爲不可變鏈表
asArrayList       : 轉爲數組鏈表
asLinkedList      : 轉爲雙向鏈表
sort              : 排序
forAllDo          : 對所有元素做操作
toString          : 數組轉爲字符串

欄相關——BarUtils.java

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

亮度相關——BrightnessUtils.java

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

EventBus相關——BusUtils.java

register    : 註冊
unregister  : 註銷
post        : 發送
postSticky  : 發送粘性
removeSticky: 移除粘性
toString_   : 查看插入的信息~

磁盤緩存相關——CacheDiskStaticUtils.java

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

磁盤緩存相關——CacheDiskUtils.java

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          : 清除所有緩存~

二級緩存相關——CacheDoubleStaticUtils.java

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

二級緩存相關——CacheDoubleUtils.java

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              : 清除所有緩存~

內存緩存相關——CacheMemoryStaticUtils.java

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

內存緩存相關——CacheMemoryUtils.java

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

清除相關——CleanUtils.java

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

點擊相關——ClickUtils.java

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

克隆相關——CloneUtils.java

deepClone: 深度克隆~

關閉相關——CloseUtils.java

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

集合相關——CollectioneUtils.java

newUnmodifiableList[NotNull]: 新建只讀[非空]鏈表
newArrayList[NotNull]       : 新建數組型[非空]鏈表
newLinkedList[NotNull]      : 新建指針型[非空]鏈表
newHashSet[NotNull]         : 新建哈希[非空]集合
newTreeSet[NotNull]         : 新建有序[非空]集合
newSynchronizedCollection   : 新建同步集合
newUnmodifiableCollection   : 新建只讀集合
union                       : 獲取並集
intersection                : 獲取交集
disjunction                 : 獲取並集減交集
subtract                    : 獲取差集
containsAny                 : 判斷是否有交集
getCardinalityMap           : 獲取集合中所有元素的基數
isSubCollection             : 是否子集
isProperSubCollection       : 是否真子集
isEqualCollection           : 判斷集合是否相等
cardinality                 : 獲取集合中元素的基數
find                        : 查找第一個符合條件的元素
forAllDo                    : 對所有元素做操作
filter                      : 刪除原集合中不符合條件的元素
select                      : 查找出所有符合條件的元素並返回新集合
selectRejected              : 查找出所有不符合條件的元素並返回新集合
transform                   : 對原集合進行轉變
collect                     : 轉變爲新的集合
countMatches                : 查找到匹配的元素個數
exists                      : 判斷集合是否存在符合條件的元素
addIgnoreNull               : 新增元素如果不爲空
addAll                      : 新增多個元素
get                         : 獲取集合元素
size                        : 獲取集合個數
sizeIsEmpty                 : 判斷個數是否爲零
isEmpty                     : 判斷是否爲空
isNotEmpty                  : 判斷是否非空
retainAll                   : 保留元素
removeAll                   : 刪除下來
toString                    : 集合轉爲字符串~

顏色相關——ColorUtils.java

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

轉換相關——ConvertUtils.java

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

isDeviceRooted   : 判斷設備是否 rooted
isAdbEnabled     : 判斷設備 ADB 是否可用
getSDKVersionName: 獲取設備系統版本號
getSDKVersionCode: 獲取設備系統版本碼
getAndroidID     : 獲取設備 AndroidID
getMacAddress    : 獲取設備 MAC 地址
getManufacturer  : 獲取設備廠商
getModel         : 獲取設備型號
getABIs          : 獲取設備 ABIs
isTablet         : 判斷是否是平板
isEmulator       : 判斷是否是模擬器
getUniqueDeviceId: 獲取唯一設備 ID
isSameDevice     : 判斷是否同一設備~

閃光燈相關——FlashlightUtils.java

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

編碼解碼相關——EncodeUtils.java

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

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

文件相關——FileIOUtils.java

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

文件相關——FileUtils.java

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          : 根據全路徑獲取文件拓展名
notifySystemToScan        : 通知系統掃描文件~

Fragment相關——FragmentUtils.java

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

Gson相關——GsonUtils.java

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

圖片相關——ImageUtils.java

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                         : 獲取圖片尺寸~

意圖相關——IntentUtils.java

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

鍵盤相關——KeyboardUtils.java

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

語言相關——LanuageUtils.java

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

日誌相關——LogUtils.java

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~

Map相關——MapUtils.java

newUnmodifiableMap: 創建 UnmodifiableMap
newHashMap        : 創建 HashMap
newLinkedHashMap  : 創建 LinkedHashMap
newTreeMap        : 創建 TreeMap
newHashTable      : 創建 HashTable
isEmpty           : 判斷 Map 是否爲空
isNotEmpty        : 判斷 Map 是否非空
size              : 獲取 Map 元素個數
forAllDo          : 對所有元素做操作
transform         : 對 Map 做轉變
toString          : Map 轉爲字符串~

MetaData相關——MetaDataUtils.java

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

網絡相關——NetWorkUtils.java

openWirelessSettings                  : 打開網絡設置界面
isConnected                           : 判斷網絡是否連接
isAvailable[Async]                    : 判斷網絡是否可用
isAvailableByPing[Async]              : 用 ping 判斷網絡是否可用
isAvailableByDns[Async]               : 用 DNS 判斷網絡是否可用
getMobileDataEnabled                  : 判斷移動數據是否打開
isMobileData                          : 判斷網絡是否是移動數據
is4G                                  : 判斷網絡是否是 4G
getWifiEnabled                        : 判斷 wifi 是否打開
setWifiEnabled                        : 打開或關閉 wifi
isWifiConnected                       : 判斷 wifi 是否連接狀態
isWifiAvailable[Async]                : 判斷 wifi 數據是否可用
getNetworkOperatorName                : 獲取移動網絡運營商名稱
getNetworkType                        : 獲取當前網絡類型
getIPAddress[Async]                   : 獲取 IP 地址
getDomainAddress[Async]               : 獲取域名 IP 地址
getIpAddressByWifi                    : 根據 WiFi 獲取網絡 IP 地址
getGatewayByWifi                      : 根據 WiFi 獲取網關 IP 地址
getNetMaskByWifi                      : 根據 WiFi 獲取子網掩碼 IP 地址
getServerAddressByWifi                : 根據 WiFi 獲取服務端 IP 地址
registerNetworkStatusChangedListener  : 註冊網絡狀態改變監聽器
unregisterNetworkStatusChangedListener: 註銷網絡狀態改變監聽器~

對象相關——ObjectUtils.java

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

路徑相關——PathUtils.java

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 路徑(OBB 安卓擴展文件)

權限相關——PermissionUtils.java

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

手機相關——PhoneUtils.java

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

進程相關——ProcessUtils.java

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

反射相關——ReflectUtils.java

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

正則相關——RegexUtils.java

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

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

Rom相關——RomUtils.java

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 信息~

屏幕相關——ScreenUtils.java

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

sd卡相關——SDCardUtils.java

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

服務相關——ServiceUtils.java

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

shell相關——ShellUtils.java

execCmd[Async]: 執行命令~

尺寸相關——SizeUtils.java

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

Snackbar相關——SnackbarUtils.java

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

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            : 創建樣式字符串~

SP相關——SPStaticUtils.java

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 中清除所有數據~

字符串相關——StringUtils.java

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

線程相關——ThreadUtils.java

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              : 設置任務結束後交付的線程

時間相關——TimeUtils.java

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               : 獲取美式式星期
isAm                    : 判斷是否上午
isPm                    : 判斷是否下午
getValueByCalendarField : 根據日曆字段獲取值
getChineseZodiac        : 獲取生肖
getZodiac               : 獲取星座~

吐司相關——ToastUtils.java

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

URI相關——UriUtils.java

file2Uri: file 轉 uri
uri2File: uri 轉 file~

震動相關——VibrateUtils.java

vibrate: 震動
cancel : 取消~

視圖相關——ViewUtils.java

setViewEnabled      : 設置視圖是否可用
runOnUiThread       : 在 UI 線程運行
runOnUiThreadDelayed: 在 UI 線程延遲運行
isLayoutRtl         : 佈局是否從右到左
fixScrollViewTopping: 修復 ScrollView 置頂問題~

壓縮相關——ZipUtils.java

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

總結:

  • AndroidUtilCode框架真的很方便,以後有什麼問題可以直接來這裏查找,不用Google和百度了。還是覺得很方便。而且還可以學習這些源碼。瞭解原理,更上一層樓。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章