## Android developers should collect the following utils **[中文版README][readme-cn.md]→[How to get this README from README-CN][trans]** *** Directory is shown below: > - **About Activity→[ActivityUtils.java][activity.java]** ``` isActivityExists launchActivity ``` > - **About App→[AppUtils.java][app.java]** ``` isInstallApp installApp installAppSilent uninstallApp uninstallAppSilent isAppRoot launchApp closeApp getAppPackageName getAppDetailsSettings getAppName getAppIcon getAppPath getAppVersionName getAppVersionCode isSystemApp isAppDebug getAppSignature getAppSignatureSHA1 isAppForeground getForegroundApp getAppInfo getAppsInfo cleanAppData ``` > - **About Bar→[BarUtils.java][bar.java]** ``` setTransparentStatusBar hideStatusBar getStatusBarHeight isStatusBarExists getActionBarHeight showNotificationBar hideNotificationBar ``` > - **About Clean→[CleanUtils.java][clean.java]** ``` cleanInternalCache cleanInternalFiles cleanInternalDbs cleanInternalDbByName cleanInternalSP cleanExternalCache cleanCustomCache ``` > - **About Clipboard→[ClipboardUtils.java][clipboard.java]** ``` copyText getText copyUri getUri copyIntent getIntent ``` > - **About Close→[CloseUtils.java][close.java]** ``` closeIO closeIOQuietly ``` > - **About Const→[ConstUtils.java][const.java]** ``` MemoryConst TimeConst RegexConst ``` > - **About Convert→[ConvertUtils.java][convert.java]→[Test][convert.test]** ``` bytes2HexString, hexString2Bytes chars2Bytes, bytes2Chars byte2Size, size2Byte byte2FitSize bytes2Bits, bits2Bytes input2OutputStream, output2InputStream inputStream2Bytes, bytes2InputStream outputStream2Bytes, bytes2OutputStream inputStream2String, string2InputStream outputStream2String, string2OutputStream bitmap2Bytes, bytes2Bitmap drawable2Bitmap, bitmap2Drawable drawable2Bytes, bytes2Drawable view2Bitmap dp2px, px2dp sp2px, px2sp ``` > - **About Crash→[CrashUtils.java][crash.java]** ``` getInstance init ``` > - **About Device→[DeviceUtils.java][device.java]** ``` isDeviceRoot getSDKVersion getAndroidID getMacAddress getManufacturer getModel shutdown reboot ``` > - **About Empty→[EmptyUtils.java][empty.java]→[Test][empty.test]** ``` isEmpty isNotEmpty ``` > - **About Encode→[EncodeUtils.java][encode.java]→[Test][encode.test]** ``` urlEncode urlDecode base64Encode, base64Encode2String base64Decode base64UrlSafeEncode htmlEncode htmlDecode ``` > - **About Encrypt→[EncryptUtils.java][encrypt.java]→[Test][encrypt.test]** ``` encryptMD2, encryptMD2ToString encryptMD5, encryptMD5ToString encryptMD5File, encryptMD5File2String encryptSHA1, encryptSHA1ToString encryptSHA224, encryptSHA224ToString encryptSHA256, encryptSHA256ToString encryptSHA384, encryptSHA384ToString encryptSHA512, encryptSHA512ToString encryptHmacMD5, encryptHmacMD5ToString encryptHmacSHA1, encryptHmacSHA1ToString encryptHmacSHA224, encryptHmacSHA224ToString encryptHmacSHA256, encryptHmacSHA256ToString encryptHmacSHA384, encryptHmacSHA384ToString encryptHmacSHA512, encryptHmacSHA512ToString encryptDES, encryptDES2HexString, encryptDES2Base64 decryptDES, decryptHexStringDES, decryptBase64DES encrypt3DES, encrypt3DES2HexString, encrypt3DES2Base64 decrypt3DES, decryptHexString3DES, decryptBase64_3DES encryptAES, encryptAES2HexString, encryptAES2Base64 decryptAES, decryptHexStringAES, decryptBase64AES ``` > - **About File→[FileUtils.java][file.java]→[Test][file.test]** ``` getFileByPath isFileExists rename isDir isFile createOrExistsDir createOrExistsFile createFileByDeleteOldFile copyDir copyFile moveDir moveFile deleteDir deleteFile listFilesInDir listFilesInDir listFilesInDirWithFilter listFilesInDirWithFilter listFilesInDirWithFilter listFilesInDirWithFilter searchFileInDir writeFileFromIS writeFileFromString getFileCharsetSimple getFileLines readFile2List readFile2SB getFileSize getFileMD5 getDirName getFileName getFileNameNoExtension getFileExtension ``` > - **About Image→[ImageUtils.java][image.java]** ``` bitmap2Bytes, bytes2Bitmap drawable2Bitmap, bitmap2Drawable drawable2Bytes, bytes2Drawable getBitmap scale clip skew rotate getRotateDegree toRound toRoundCorner fastBlur renderScriptBlur stackBlur addFrame addReflection addTextWatermark addImageWatermark toAlpha toGray save isImage getImageType compressByScale compressByQuality compressBySampleSize ``` > - **About Intent→[IntentUtils.java][intent.java]** ``` getInstallAppIntent getUninstallAppIntent getLaunchAppIntent getAppDetailsSettingsIntent getShareTextIntent getShareImageIntent getComponentIntent getShutdownIntent getCaptureIntent ``` > - **About Keyboard→[KeyboardUtils.java][keyboard.java]** ``` hideSoftInput clickBlankArea2HideSoftInput showSoftInput toggleSoftInput ``` > - **About Log→[LogUtils.java][log.java]→[Test][log.test]** ``` init getBuilder v d i w e ``` > - **About Network→[NetworkUtils.java][network.java]** ``` openWirelessSettings isConnected isAvailableByPing getDataEnabled setDataEnabled is4G getWifiEnabled setWifiEnabled isWifiConnected isWifiAvailable getNetworkOperatorName getNetworkType, getNetworkTypeName getIPAddress getDomainAddress ``` > - **About Phone→[PhoneUtils.java][phone.java]** ``` isPhone getIMEI getIMSI getPhoneType getSimOperatorName, getSimOperatorByMnc getPhoneStatus dial call sendSms sendSmsSilent getAllContactInfo getContactNum getAllSMS ``` > - **About Process→[ProcessUtils.java][process.java]** ``` getForegroundProcessName cleanAllBackgroundProcesses,cleanBackgroundProcesses ``` > - **About Regex→[RegexUtils.java][regex.java]→[Test][regex.test]** ``` isMobileSimple isMobileExact isTel isIDCard15 isIDCard18 isEmail isURL isChz isUsername isDate isIP isMatch ``` > - **About Screen→[ScreenUtils.java][screen.java]** ``` getDeviceWidth, getDeviceHeight setTransparentStatusBar hideStatusBar getStatusBarHeight isStatusBarExists getActionBarHeight showNotificationBar hideNotificationBar setLandscape snapShotWithStatusBar, snapShotWithoutStatusBar isScreenLock ``` > - **About SDCard→[SDCardUtils.java][sdcard.java]** ``` isSDCardEnable getSDCardPath getDataPath getFreeSpace getSDCardInfo ``` > - **About Service→[ServiceUtils.java][service.java]** ``` isServiceRunning stopService ``` > - **About Shell→[ShellUtils.java][shell.java]** ``` execCmd ``` > - **About Size→[SizeUtils.java][size.java]** ``` dp2px, px2dp sp2px, px2sp applyDimension forceGetViewSize measureView ``` > - **About Snackbar→[SnackbarUtils.java][snackbar.java]** ``` showShortSnackbar showLongSnackbar showIndefiniteSnackbar addView ``` > - **About SP→[SPUtils.java][sp.java]→[Test][sp.test]** ``` SPUtils putString getString putInt getInt putLong getLong putFloat getFloat putBoolean getBoolean getAll remove contains clear ``` > - **About String→[StringUtils.java][string.java]→[Test][string.test]** ``` isEmpty isSpace equals null2Length0 length upperFirstLetter lowerFirstLetter reverse toDBC toSBC getPYFirstLetter cn2PY ``` > - **About ThreadPool→[ThreadPoolUtils.java][thread_pool.java]** ``` ThreadPoolUtils execute execute shutDown shutDownNow isShutDown isTerminated awaitTermination submit submit invokeAll, invokeAny schedule schedule scheduleWithFixedRate, scheduleWithFixedDelay ``` > - **About Time→[TimeUtils.java][time.java]→[Test][time.test]** ``` milliseconds2String string2Milliseconds string2Date date2String date2Milliseconds milliseconds2Date milliseconds2Unit getIntervalTime getCurTimeMills, getCurTimeString, getCurTimeDate getIntervalByNow isLeapYear getWeek, getWeekIndex getWeekOfMonth getWeekOfYear ``` > - **About Toast→[ToastUtils.java][toast.java]** ``` init showShortToastSafe showLongToastSafe showShortToast showLongToast cancelToast ``` > - **About Zip→[ZipUtils.java][zip.java]→[Test][zip.test]** ``` zipFiles zipFile unzipFiles unzipFile unzipFileByKeyword getFilesPath getComments getEntries ``` > - **更新Log→[update_log.md][update_log.md]** *** **I'm so sorry for that the code is annotated with Chinese.** ### Download *** Gradle: ``` groovy compile 'com.blankj:utilcode:1.3.1' ``` ### Proguard *** ``` -keep class com.blankj.utilcode.** { *; } -keep classmembers 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. ``` [update_log.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/update_log.md [readme.md]: https://github.com/Blankj/AndroidUtilCode [readme-cn.md]: https://github.com/Blankj/AndroidUtilCode/blob/master/README-CN.md [trans]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/TestUtils.java [activity.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ActivityUtils.java [app.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/AppUtils.java [bar.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/BarUtils.java [clean.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/CleanUtils.java [clipboard.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ClipboardUtils.java [close.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/CloseUtils.java [const.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ConstUtils.java [convert.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ConvertUtils.java [convert.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/ConvertUtilsTest.java [crash.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/CrashUtils.java [device.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/DeviceUtils.java [empty.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/EmptyUtils.java [empty.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/EmptyUtilsTest.java [encode.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/EncodeUtils.java [encode.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/EncodeUtilsTest.java [encrypt.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/EncryptUtils.java [encrypt.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/EncryptUtilsTest.java [file.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/FileUtils.java [file.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/FileUtilsTest.java [image.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ImageUtils.java [intent.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/IntentUtils.java [keyboard.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/KeyboardUtils.java [log.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/LogUtils.java [log.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/LogUtilsTest.java [network.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/NetworkUtils.java [phone.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/PhoneUtils.java [regex.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/RegexUtils.java [regex.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/RegexUtilsTest.java [screen.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ScreenUtils.java [sdcard.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/SDCardUtils.java [service.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ServiceUtils.java [shell.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ShellUtils.java [size.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/SizeUtils.java [snackbar.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/SnackbarUtils.java [sp.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/SPUtils.java [sp.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/SPUtilsTest.java [string.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/StringUtils.java [string.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/StringUtilsTest.java [thread_pool.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ThreadPoolUtils.java [time.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/TimeUtils.java [time.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/TimeUtilsTest.java [toast.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ToastUtils.java [zip.java]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/main/java/com/blankj/utilcode/utils/ZipUtils.java [zip.test]: https://github.com/Blankj/AndroidUtilCode/blob/master/utilcode/src/test/java/com/blankj/utilcode/utils/ZipUtilsTest.java [weibo]: http://weibo.com/blankcmj