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

 

 本文由用戶 ThereseShd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!