Android 開發人員不得不收集的代碼 (持續更新中)
為方便查找,已進行大致歸類,其目錄如下所示:
-
Activity相關→ActivityUtils.java→ Demo
isActivityExists : 判斷是否存在Activity launchActivity : 打開Activity getLauncherActivity : 獲取入口activity
-
App相關→AppUtils.java→ Demo
isInstallApp : 判斷App是否安裝 installApp : 安裝App(支持6.0) installAppSilent : 靜默安裝App uninstallApp : 卸載App uninstallAppSilent : 靜默卸載App isAppRoot : 判斷App是否有root權限 launchApp : 打開App closeApp : 關閉App getAppPackageName : 獲取App包名 getAppDetailsSettings : 獲取App具體設置 getAppName : 獲取App名稱 getAppIcon : 獲取App圖標 getAppPath : 獲取App路徑 getAppVersionName : 獲取App版本號 getAppVersionCode : 獲取App版本碼 isSystemApp : 判斷App是否是系統應用 isAppDebug : 判斷App是否是Debug版本 getAppSignature : 獲取App簽名 getAppSignatureSHA1 : 獲取應用簽名的的SHA1值 isAppForeground : 判斷App是否處于前臺 getForegroundApp : 獲取前臺應用包名 getAppInfo : 獲取App信息 getAppsInfo : 獲取所有已安裝App信息 cleanAppData : 清除App所有數據
-
欄相關→BarUtils.java
setTransparentStatusBar : 設置透明狀態欄(api大于19方可使用) hideStatusBar : 隱藏狀態欄 getStatusBarHeight : 獲取狀態欄高度 isStatusBarExists : 判斷狀態欄是否存在 getActionBarHeight : 獲取ActionBar高度 showNotificationBar : 顯示通知欄 hideNotificationBar : 隱藏通知欄
-
清除相關→CleanUtils.java→ Demo
cleanInternalCache : 清除內部緩存 cleanInternalFiles : 清除內部文件 cleanInternalDbs : 清除內部數據庫 cleanInternalDbByName : 根據名稱清除數據庫 cleanInternalSP : 清除內部SP cleanExternalCache : 清除外部緩存 cleanCustomCache : 清除自定義目錄下的文件
-
剪貼板相關→ClipboardUtils.java
copyText : 復制文本到剪貼板 getText : 獲取剪貼板的文本 copyUri : 復制uri到剪貼板 getUri : 獲取剪貼板的uri copyIntent : 復制意圖到剪貼板 getIntent : 獲取剪貼板的意圖
-
關閉相關→CloseUtils.java
closeIO : 關閉IO closeIOQuietly : 安靜關閉IO
-
常量相關→ConstUtils.java
MemoryConst : 存儲相關常量 TimeConst : 時間相關常量 RegexConst : 正則相關常量
-
轉換相關→ConvertUtils.java→ Test
bytes2HexString, hexString2Bytes : byteArr與hexString互轉 chars2Bytes, bytes2Chars : charArr與byteArr互轉 byte2Size, size2Byte : 字節數與unit為單位的size互轉 byte2FitSize : 字節數轉合適大小 bytes2Bits, bits2Bytes : bytes與bits互轉 input2OutputStream, output2InputStream : inputStream與outputStream互轉 inputStream2Bytes, bytes2InputStream : inputStream與byteArr互轉 outputStream2Bytes, bytes2OutputStream : outputStream與byteArr互轉 inputStream2String, string2InputStream : inputStream與string按編碼互轉 outputStream2String, string2OutputStream : outputStream與string按編碼互轉 bitmap2Bytes, bytes2Bitmap : bitmap與byteArr互轉 drawable2Bitmap, bitmap2Drawable : drawable與bitmap互轉 drawable2Bytes, bytes2Drawable : drawable與byteArr互轉 view2Bitmap : view轉Bitmap dp2px, px2dp : dp與px互轉 sp2px, px2sp : sp與px互轉
-
崩潰相關→CrashUtils.java
getInstance : 獲取單例 init : 初始化
-
設備相關→DeviceUtils.java→ Demo
isDeviceRoot : 判斷設備是否root getSDKVersion : 獲取設備系統版本號 getAndroidID : 獲取設備AndroidID getMacAddress : 獲取設備MAC地址 getManufacturer : 獲取設備廠商 getModel : 獲取設備型號 shutdown : 關機 reboot : 重啟 reboot2Recovery : 重啟到recovery reboot2Bootloader : 重啟到bootloader
-
判空相關→EmptyUtils.java→ Test
isEmpty : 判斷對象是否為空 isNotEmpty : 判斷對象是否非空
-
編碼解碼相關→EncodeUtils.java→ Test
urlEncode : URL編碼 urlDecode : URL解碼 base64Encode, base64Encode2String : Base64編碼 base64Decode : Base64解碼 base64UrlSafeEncode : Base64URL安全編碼 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解密
-
文件相關→FileUtils.java→ Test
getFileByPath : 根據文件路徑獲取文件 isFileExists : 判斷文件是否存在 rename : 重命名文件 isDir : 判斷是否是目錄 isFile : 判斷是否是文件 createOrExistsDir : 判斷目錄是否存在,不存在則判斷是否創建成功 createOrExistsFile : 判斷文件是否存在,不存在則判斷是否創建成功 createFileByDeleteOldFile : 判斷文件是否存在,存在則在創建之前刪除 copyDir : 復制目錄 copyFile : 復制文件 moveDir : 移動目錄 moveFile : 移動文件 deleteDir : 刪除目錄 deleteFile : 刪除文件 listFilesInDir : 獲取目錄下所有文件 listFilesInDir : 獲取目錄下所有文件包括子目錄 listFilesInDirWithFilter : 獲取目錄下所有后綴名為suffix的文件 listFilesInDirWithFilter : 獲取目錄下所有后綴名為suffix的文件包括子目錄 listFilesInDirWithFilter : 獲取目錄下所有符合filter的文件 listFilesInDirWithFilter : 獲取目錄下所有符合filter的文件包括子目錄 searchFileInDir : 獲取目錄下指定文件名的文件包括子目錄 writeFileFromIS : 將輸入流寫入文件 writeFileFromString : 將字符串寫入文件 getFileCharsetSimple : 簡單獲取文件編碼格式 getFileLines : 獲取文件行數 readFile2List : 指定編碼按行讀取文件到List readFile2SB : 指定編碼按行讀取文件到StringBuilder中 getFileSize : 獲取文件大小 getFileMD5, getFileMD5ToString : 獲取文件的MD5校驗碼 getDirName : 根據全路徑獲取最長目錄 getFileName : 根據全路徑獲取文件名 getFileNameNoExtension : 根據全路徑獲取文件名不帶拓展名 getFileExtension : 根據全路徑獲取文件拓展名
-
Handler相關→HandlerUtils.java→ Demo
HandlerHolder : 使用必讀
-
圖片相關→ImageUtils.java→ Demo
bitmap2Bytes, bytes2Bitmap : bitmap與byteArr互轉 drawable2Bitmap, bitmap2Drawable : drawable與bitmap互轉 drawable2Bytes, bytes2Drawable : drawable與byteArr互轉 getBitmap : 獲取bitmap scale : 縮放圖片 clip : 裁剪圖片 skew : 傾斜圖片 rotate : 旋轉圖片 getRotateDegree : 獲取圖片旋轉角度 toRound : 轉為圓形圖片 toRoundCorner : 轉為圓角圖片 fastBlur : 快速模糊 renderScriptBlur : renderScript模糊圖片 stackBlur : stack模糊圖片 addFrame : 添加顏色邊框 addReflection : 添加倒影 addTextWatermark : 添加文字水印 addImageWatermark : 添加圖片水印 toAlpha : 轉為alpha位圖 toGray : 轉為灰度圖片 save : 保存圖片 isImage : 根據文件名判斷文件是否為圖片 getImageType : 獲取圖片類型 compressByScale : 按縮放壓縮 compressByQuality : 按質量壓縮 compressBySampleSize : 按采樣大小壓縮
-
意圖相關→IntentUtils.java
getInstallAppIntent : 獲取安裝App(支持6.0)的意圖 getUninstallAppIntent : 獲取卸載App的意圖 getLaunchAppIntent : 獲取打開App的意圖 getAppDetailsSettingsIntent : 獲取App具體設置的意圖 getShareTextIntent : 獲取分享文本的意圖 getShareImageIntent : 獲取分享圖片的意圖 getComponentIntent : 獲取其他應用組件的意圖 getShutdownIntent : 獲取關機的意圖 getCaptureIntent : 獲取拍照的意圖
-
鍵盤相關→KeyboardUtils.java→ Demo
hideSoftInput : 動態隱藏軟鍵盤 clickBlankArea2HideSoftInput : 點擊屏幕空白區域隱藏軟鍵盤 showSoftInput : 動態顯示軟鍵盤 toggleSoftInput : 切換鍵盤顯示與否狀態
-
定位相關→LocationUtils.java→ Demo
isGpsEnabled : 判斷Gps是否可用 isLocationEnabled : 判斷定位是否可用 openGpsSettings : 打開Gps設置界面 register : 注冊 unregister : 注銷 getAddress : 根據經緯度獲取地理位置 getCountryName : 根據經緯度獲取所在國家 getLocality : 根據經緯度獲取所在地 getStreet : 根據經緯度獲取所在街道
-
日志相關→LogUtils.java→ Test
init : 初始化函數 getBuilder : 獲取LogUtils建造者 v : Verbose日志 d : Debug日志 i : Info日志 w : Warn日志 e : Error日志
-
網絡相關→NetworkUtils.java→ Demo
openWirelessSettings : 打開網絡設置界面 isConnected : 判斷網絡是否連接 isAvailableByPing : 判斷網絡是否可用 getDataEnabled : 判斷移動數據是否打開 setDataEnabled : 打開或關閉移動數據 is4G : 判斷網絡是否是4G getWifiEnabled : 判斷wifi是否打開 setWifiEnabled : 打開或關閉wifi isWifiConnected : 判斷wifi是否連接狀態 isWifiAvailable : 判斷wifi數據是否可用 getNetworkOperatorName : 獲取移動網絡運營商名稱 getNetworkType : 獲取當前網絡類型 getIPAddress : 獲取IP地址 getDomainAddress : 獲取域名ip地址
-
手機相關→PhoneUtils.java→ Demo
isPhone : 判斷設備是否是手機 getIMEI : 獲取IMEI碼 getIMSI : 獲取IMSI碼 getPhoneType : 獲取移動終端類型 isSimCardReady : 判斷sim卡是否準備好 getSimOperatorName, getSimOperatorByMnc : 獲取Sim卡運營商名稱 getPhoneStatus : 獲取手機狀態信息 dial : 跳至撥號界面 call : 撥打phoneNumber sendSms : 跳至發送短信界面 sendSmsSilent : 發送短信 getAllContactInfo : 獲取手機聯系人 getContactNum : 打開手機聯系人界面點擊聯系人后便獲取該號碼 getAllSMS : 獲取手機短信并保存到xml中
-
拼音相關→PinyinUtils.java→ Test
getPinyinFirstLetter : 獲取第一個漢字首字母 ccs2Pinyin : 漢字轉拼音
-
進程相關→ProcessUtils.java→ Demo
getForegroundProcessName : 獲取前臺線程包名 cleanAllBackgroundProcesses, cleanBackgroundProcesses : 清理后臺服務進程
-
正則相關→RegexUtils.java→ Test
isMobileSimple : 驗證手機號(簡單) isMobileExact : 驗證手機號(精確) isTel : 驗證電話號碼 isIDCard15 : 驗證身份證號碼15位 isIDCard18 : 驗證身份證號碼18位 isEmail : 驗證郵箱 isURL : 驗證URL isZh : 驗證漢字 isUsername : 驗證用戶名 isDate : 驗證yyyy-MM-dd格式的日期校驗,已考慮平閏年 isIP : 驗證IP地址 isMatch : 判斷是否匹配正則 getMatches : 獲取正則匹配的部分 getSplits : 獲取正則匹配分組 getReplaceFirst : 替換正則匹配的第一部分 getReplaceAll : 替換所有正則匹配的部分
-
屏幕相關→ScreenUtils.java
getScreenWidth : 獲取屏幕的寬度(單位:px) getScreenHeight : 獲取屏幕的高度(單位:px) setLandscape : 設置屏幕為橫屏 setPortrait : 設置屏幕為豎屏 isLandscape : 判斷是否橫屏 isPortrait : 判斷是否豎屏 getScreenRotation : 獲取屏幕旋轉角度 captureWithStatusBar : 獲取當前屏幕截圖,包含狀態欄 captureWithoutStatusBar : 獲取當前屏幕截圖,不包含狀態欄 isScreenLock : 判斷是否鎖屏
-
SD卡相關→SDCardUtils.java→ Demo
isSDCardEnable : 判斷SD卡是否可用 getSDCardPath : 獲取SD卡路徑 getDataPath : 獲取SD卡Data路徑 getFreeSpace : 計算SD卡的剩余空間 getSDCardInfo : 獲取SD卡信息
-
服務相關→ServiceUtils.java
isServiceRunning : 判斷服務是否運行 stopService : 停止服務
-
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
showShortSnackbar : 顯示短時snackbar showLongSnackbar : 顯示長時snackbar showIndefiniteSnackbar : 顯示自定義時長snackbar addView : 為SnackBar添加布局 dismissSnackbar : 取消snackbar顯示
-
SP相關→SPUtils.java→ Test
SPUtils : SPUtils構造函數 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中獲取所有鍵值對 remove : SP中移除該key contains : SP中是否存在該key clear : SP中清除所有數據
-
字符串相關→StringUtils.java→ Test
isEmpty : 判斷字符串是否為null或長度為0 isSpace : 判斷字符串是否為null或全為空格 equals : 判斷兩字符串是否相等 equalsIgnoreCase : 判斷兩字符串忽略大小寫是否相等 null2Length0 : null轉為長度為0的字符串 length : 返回字符串長度 upperFirstLetter : 首字母大寫 lowerFirstLetter : 首字母小寫 reverse : 反轉字符串 toDBC : 轉化為半角字符 toSBC : 轉化為全角字符
-
線程池相關→ThreadPoolUtils.java
ThreadPoolUtils : ThreadPoolUtils構造函數 execute : 在未來某個時間執行給定的命令 execute : 在未來某個時間執行給定的命令鏈表 shutDown : 待以前提交的任務執行完畢后關閉線程池 shutDownNow : 試圖停止所有正在執行的活動任務 isShutDown : 判斷線程池是否已關閉 isTerminated : 關閉線程池后判斷所有任務是否都已完成 awaitTermination : 請求關閉、發生超時或者當前線程中斷 submit : 提交一個Callable任務用于執行 submit : 提交一個Runnable任務用于執行 invokeAll, invokeAny : 執行給定的任務 schedule : 延遲執行Runnable命令 schedule : 延遲執行Callable命令 scheduleWithFixedRate : 延遲并循環執行命令 scheduleWithFixedDelay : 延遲并以固定休息時間循環執行命令
-
時間相關→TimeUtils.java→ Test
milliseconds2String : 將時間戳轉為時間字符串 string2Milliseconds : 將時間字符串轉為時間戳 string2Date : 將時間字符串轉為Date類型 date2String : 將Date類型轉為時間字符串 date2Milliseconds : 將Date類型轉為時間戳 milliseconds2Date : 將時間戳轉為Date類型 milliseconds2Unit : 毫秒時間戳單位轉換(單位:unit) getIntervalTime : 獲取兩個時間差(單位:unit) getCurTimeMills : 獲取當前時間戳 getCurTimeString : 獲取當前時間字符串 getCurTimeDate : 獲取當前Date getIntervalByNow : 獲取與當前時間的差(單位:unit) isLeapYear : 判斷閏年 getWeek, getWeekIndex : 獲取星期 getWeekOfMonth : 獲取月份中的第幾周 getWeekOfYear : 獲取年份中的第幾周
-
吐司相關→ToastUtils.java→ Demo
init : 吐司初始化 showShortToastSafe : 安全地顯示短時吐司 showLongToastSafe : 安全地顯示長時吐司 showShortToast : 顯示短時吐司 showLongToast : 顯示長時吐司 cancelToast : 取消吐司顯示
-
壓縮相關→ZipUtils.java→ Test
zipFiles : 批量壓縮文件 zipFile : 壓縮文件 unzipFiles : 批量解壓文件 unzipFile : 解壓文件 unzipFileByKeyword : 解壓帶有關鍵字的文件 getFilesPath : 獲取壓縮文件中的文件路徑鏈表 getComments : 獲取壓縮文件中的注釋鏈表 getEntries : 獲取壓縮文件中的文件對象
-
更新Log→update_log.md
關于
- 做這份整理是想把它作為Android開發的小字典,當遇到一些瑣碎問題時,不用再面向百度或者谷歌查詢API的使用,費時費力,這里有的話,大家盡管擼走;同時也希望它能逐日壯大起來,期待大家的Star和完善,當然我也會一直更新發布版本和日志,為了方便大家導入,現已上傳jcenter;其中很多代碼也是匯四方之精華,謝謝前輩們的提供,當然最終還是要通過單元測試的,如有錯誤,請及時告之。
- QQ群提供討論,1群:74721490(已滿)2群:25206533,至于驗證問題對大家來說肯定都是小case。
- 我的微博,求個關注哈。
Download
Gradle:
compile 'com.blankj:utilcode:1.3.4'
Proguard
-keep class com.blankj.utilcode.** { *; } -keepclassmembers class com.blankj.utilcode.** { *; } -dontwarn com.blankj.utilcode.**
來自:https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md