Android開發人員不得不收集的代碼(blankj:utilcode)

爲方便查找,已進行大致歸類,其目錄如下所示:

  • Activity相關→ActivityUtils.javaDemo

    isActivityExists    : 判斷是否存在Activity
    launchActivity      : 打開Activity
    getLauncherActivity : 獲取入口activity
  • App相關→AppUtils.javaDemo

    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.javaDemo

    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.javaTest

    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.javaDemo

    isDeviceRoot      : 判斷設備是否root
    getSDKVersion     : 獲取設備系統版本號
    getAndroidID      : 獲取設備AndroidID
    getMacAddress     : 獲取設備MAC地址
    getManufacturer   : 獲取設備廠商
    getModel          : 獲取設備型號
    shutdown          : 關機
    reboot            : 重啓
    reboot2Recovery   : 重啓到recovery
    reboot2Bootloader : 重啓到bootloader
  • 判空相關→EmptyUtils.javaTest

    isEmpty    : 判斷對象是否爲空
    isNotEmpty : 判斷對象是否非空
  • 編碼解碼相關→EncodeUtils.javaTest

    urlEncode                         : URL編碼
    urlDecode                         : URL解碼
    base64Encode, base64Encode2String : Base64編碼
    base64Decode                      : Base64解碼
    base64UrlSafeEncode               : Base64URL安全編碼
    htmlEncode                        : Html編碼
    htmlDecode                        : Html解碼
  • 加密解密相關→EncryptUtils.javaTest

    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.javaTest

    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.javaDemo

    HandlerHolder : 使用必讀
  • 圖片相關→ImageUtils.javaDemo

    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.javaDemo

    hideSoftInput                : 動態隱藏軟鍵盤
    clickBlankArea2HideSoftInput : 點擊屏幕空白區域隱藏軟鍵盤
    showSoftInput                : 動態顯示軟鍵盤
    toggleSoftInput              : 切換鍵盤顯示與否狀態
  • 定位相關→LocationUtils.javaDemo

    isGpsEnabled      : 判斷Gps是否可用
    isLocationEnabled : 判斷定位是否可用
    openGpsSettings   : 打開Gps設置界面
    register          : 註冊
    unregister        : 註銷
    getAddress        : 根據經緯度獲取地理位置
    getCountryName    : 根據經緯度獲取所在國家
    getLocality       : 根據經緯度獲取所在地
    getStreet         : 根據經緯度獲取所在街道
  • 日誌相關→LogUtils.javaTest

    init       : 初始化函數
    getBuilder : 獲取LogUtils建造者
    v          : Verbose日誌
    d          : Debug日誌
    i          : Info日誌
    w          : Warn日誌
    e          : Error日誌
  • 網絡相關→NetworkUtils.javaDemo

    openWirelessSettings   : 打開網絡設置界面
    isConnected            : 判斷網絡是否連接
    isAvailableByPing      : 判斷網絡是否可用
    getDataEnabled         : 判斷移動數據是否打開
    setDataEnabled         : 打開或關閉移動數據
    is4G                   : 判斷網絡是否是4G
    getWifiEnabled         : 判斷wifi是否打開
    setWifiEnabled         : 打開或關閉wifi
    isWifiConnected        : 判斷wifi是否連接狀態
    isWifiAvailable        : 判斷wifi數據是否可用
    getNetworkOperatorName : 獲取移動網絡運營商名稱
    getNetworkType         : 獲取當前網絡類型
    getIPAddress           : 獲取IP地址
    getDomainAddress       : 獲取域名ip地址
  • 手機相關→PhoneUtils.javaDemo

    isPhone                                 : 判斷設備是否是手機
    getIMEI                                 : 獲取IMEI碼
    getIMSI                                 : 獲取IMSI碼
    getPhoneType                            : 獲取移動終端類型
    isSimCardReady                          : 判斷sim卡是否準備好
    getSimOperatorName, getSimOperatorByMnc : 獲取Sim卡運營商名稱
    getPhoneStatus                          : 獲取手機狀態信息
    dial                                    : 跳至撥號界面
    call                                    : 撥打phoneNumber
    sendSms                                 : 跳至發送短信界面
    sendSmsSilent                           : 發送短信
    getAllContactInfo                       : 獲取手機聯繫人
    getContactNum                           : 打開手機聯繫人界面點擊聯繫人後便獲取該號碼
    getAllSMS                               : 獲取手機短信並保存到xml
  • 拼音相關→PinyinUtils.javaTest

    getPinyinFirstLetter : 獲取第一個漢字首字母
    ccs2Pinyin           : 漢字轉拼音
  • 進程相關→ProcessUtils.javaDemo

    getForegroundProcessName                              : 獲取前臺線程包名
    cleanAllBackgroundProcesses, cleanBackgroundProcesses : 清理後臺服務進程
  • 正則相關→RegexUtils.javaTest

    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.javaDemo

    isSDCardEnable : 判斷SD卡是否可用
    getSDCardPath  : 獲取SD卡路徑
    getDataPath    : 獲取SD卡Data路徑
    getFreeSpace   : 計算SD卡的剩餘空間
    getSDCardInfo  : 獲取SD卡信息
  • 服務相關→ServiceUtils.java

    isServiceRunning : 判斷服務是否運行
    stopService      : 停止服務
  • Shell相關→ShellUtils.java

    execCmd : 是否是在root下執行命令
  • 尺寸相關→SizeUtils.java

    dp2px, px2dp      : dppx轉換
    sp2px, px2sp      : sppx轉換
    applyDimension    : 各種單位轉換
    forceGetViewSize  : 在onCreate中獲取視圖的尺寸
    measureView       : 測量視圖尺寸
    getMeasuredWidth  : 獲取測量視圖寬度
    getMeasuredHeight : 獲取測量視圖高度
  • Snackbar相關→SnackbarUtils.javaDemo

    showShortSnackbar      : 顯示短時snackbar
    showLongSnackbar       : 顯示長時snackbar
    showIndefiniteSnackbar : 顯示自定義時長snackbar
    addView                : 爲SnackBar添加布局
    dismissSnackbar        : 取消snackbar顯示
  • SP相關→SPUtils.javaTest

    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.javaTest

    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.javaTest

    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.javaDemo

    init               : 吐司初始化
    showShortToastSafe : 安全地顯示短時吐司
    showLongToastSafe  : 安全地顯示長時吐司
    showShortToast     : 顯示短時吐司
    showLongToast      : 顯示長時吐司
    cancelToast        : 取消吐司顯示
  • 壓縮相關→ZipUtils.javaTest

    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.**

License


Copyright 2016 Blankj

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.


文/Blankj(簡書作者)
原文鏈接:http://www.jianshu.com/p/72494773aace
著作權歸作者所有,轉載請聯繫作者獲得授權,並標註“簡書作者”。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章