編輯:關於Android編程
不管是前端,後端,還是我們的android開發,實際工作中都會用到很多的工具類,這些工具類會讓我們工作更加得心應手,同樣,每一位開發者工作一定年限後都有自己的代碼庫,所以能適應不同工作環境,不同項目需求,總而言之,工具方法,利器啊!哈哈
GitHub地址:https://github.com/Blankj/AndroidUtilCode
為方便查找,已進行大致歸類,其目錄如下所示:
Activity相關→[ActivityUtils.java][activity.java]
isActivityExists : 判斷是否存在Activity launchActivity : 打開Activity
App相關→[AppUtils.java][app.java]
isInstallApp : 判斷App是否安裝 installApp : 安裝App(支持6.0) installAppSilent : 靜默安裝App uninstallApp : 卸載App uninstallAppSilent : 靜默卸載App launchApp : 打開App getAppPackageName : 獲取App包名 getAppDetailsSettings : 獲取App具體設置 getAppName : 獲取App名稱 getAppIcon : 獲取App圖標 getAppPath : 獲取App路徑 getAppVersionName : 獲取App版本號 getAppVersionCode : 獲取App版本碼 getAppSignature : 獲取App簽名 getAppSignatureSHA1 : 獲取應用簽名的的SHA1值 isSystemApp : 判斷App是否是系統應用 isAppForeground : 判斷App是否處於前台 getAppInfo : 獲取App信息 getAppsInfo : 獲取所有已安裝App信息 cleanAppData : 清除App所有數據
欄相關→[BarUtils.java][bar.java]
setTransparentStatusBar : 設置透明狀態欄(api大於19方可使用) hideStatusBar : 隱藏狀態欄 getStatusBarHeight : 獲取狀態欄高度 isStatusBarExists : 判斷狀態欄是否存在 getActionBarHeight : 獲取ActionBar高度 showNotificationBar : 顯示通知欄 hideNotificationBar : 隱藏通知欄
清除相關→[CleanUtils.java][clean.java]
cleanInternalCache : 清除內部緩存 cleanInternalFiles : 清除內部文件 cleanInternalDbs : 清除內部數據庫 cleanInternalDbByName : 根據名稱清除數據庫 cleanInternalSP : 清除內部SP cleanExternalCache : 清除外部緩存 cleanCustomCache : 清除自定義目錄下的文件
剪貼板相關→[ClipboardUtils.java][clipboard.java]
copyText : 復制文本到剪貼板 getText : 獲取剪貼板的文本 copyUri : 復制uri到剪貼板 getUri : 獲取剪貼板的uri copyIntent : 復制意圖到剪貼板 getIntent : 獲取剪貼板的意圖
關閉相關→[CloseUtils.java][close.java]
closeIO : 關閉IO closeIOQuietly : 安靜關閉IO
常量相關→[ConstUtils.java][const.java]
MemoryConst : 存儲相關常量 TimeConst : 時間相關常量 RegexConst : 正則相關常量
轉換相關→[ConvertUtils.java][convert.java]→[Test][convert.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][crash.java]
getInstance : 獲取單例 init : 初始化
設備相關→[DeviceUtils.java][device.java]
isRoot : 判斷設備是否root getSDKVersion : 獲取設備系統版本號 getAndroidID : 獲取設備AndroidID getMacAddress : 獲取設備MAC地址 getManufacturer : 獲取設備廠商,如Xiaomi getModel : 獲取設備型號,如MI2SC
判空相關→[EmptyUtils.java][empty.java]→[Test][empty.test]
isEmpty : 判斷對象是否為空 isNotEmpty : 判斷對象是否非空
編碼解碼相關→[EncodeUtils.java][encode.java]→[Test][encode.test]
urlEncode : URL編碼 urlDecode : URL解碼 base64Encode, base64Encode2String : Base64編碼 base64Decode : Base64解碼 base64UrlSafeEncode : Base64URL安全編碼 htmlEncode : Html編碼 htmlDecode : Html解碼
加密解密相關→[EncryptUtils.java][encrypt.java]→[Test][encrypt.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][file.java]→[Test][file.test]
getFileByPath : 根據文件路徑獲取文件 isFileExists : 判斷文件是否存在 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 : 獲取文件的MD5校驗碼 getDirName : 根據全路徑獲取最長目錄 getFileName : 根據全路徑獲取文件名 getFileNameNoExtension : 根據全路徑獲取文件名不帶拓展名 getFileExtension : 根據全路徑獲取文件拓展名
圖片相關→[ImageUtils.java][image.java]
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][intent.java]
getInstallAppIntent : 獲取安裝App(支持6.0)的意圖 getUninstallAppIntent : 獲取卸載App的意圖 getLaunchAppIntent : 獲取打開App的意圖 getAppDetailsSettingsIntent : 獲取App具體設置的意圖 getShareTextIntent : 獲取分享文本的意圖 getShareImageIntent : 獲取分享圖片的意圖 getComponentIntent : 獲取其他應用組件的意圖 getShutdownIntent : 獲取關機的意圖 getCaptureIntent : 獲取拍照的意圖
鍵盤相關→[KeyboardUtils.java][keyboard.java]
hideSoftInput : 動態隱藏軟鍵盤 clickBlankArea2HideSoftInput0 : 點擊屏幕空白區域隱藏軟鍵盤(注釋萌萌哒) showSoftInput : 動態顯示軟鍵盤 toggleSoftInput : 切換鍵盤顯示與否狀態 isShowSoftInput : 判斷鍵盤是否顯示
日志相關→[LogUtils.java][log.java]→[Test][log.test]
init : 初始化函數 getBuilder : 獲取LogUtils建造者 v : Verbose日志 d : Debug日志 i : Info日志 w : Warn日志 e : Error日志
網絡相關→[NetworkUtils.java][network.java]
openWirelessSettings : 打開網絡設置界面 isAvailable : 判斷網絡是否可用 isConnected : 判斷網絡是否連接 is4G : 判斷網絡是否是4G isWifiConnected : 判斷wifi是否連接狀態 getNetworkOperatorName : 獲取移動網絡運營商名稱 getPhoneType : 獲取移動終端類型 getNetWorkType, getNetWorkTypeName : 獲取當前的網絡類型(WIFI, 2G, 3G, 4G)
手機相關→[PhoneUtils.java][phone.java]
isPhone : 判斷設備是否是手機 getIMEI : 獲取IMIE碼 getIMSI : 獲取IMSI碼 getPhoneStatus : 獲取手機狀態信息 dial : 跳至填充好phoneNumber的撥號界面 call : 撥打phoneNumber sendSms : 發送短信 getAllContactInfo : 獲取手機聯系人 getContactNum : 打開手機聯系人界面點擊聯系人後便獲取該號碼(注釋萌萌哒) getAllSMS : 獲取手機短信並保存到xml中
正則相關→[RegexUtils.java][regex.java]→[Test][regex.test]
isMobileSimple : 驗證手機號(簡單) isMobileExact : 驗證手機號(精確) isTel : 驗證電話號碼 isIDCard15 : 驗證身份證號碼15位 isIDCard18 : 驗證身份證號碼18位 isEmail : 驗證郵箱 isURL : 驗證URL isChz : 驗證漢字 isUsername : 驗證用戶名 isDate : 驗證yyyy-MM-dd格式的日期校驗,已考慮平閏年 isIP : 驗證IP地址 isMatch : string是否匹配regex
屏幕相關→[ScreenUtils.java][screen.java]
getDeviceWidth, getDeviceHeight : 獲取手機分辨率 setTransparentStatusBar : 設置透明狀態欄(api大於19方可使用) hideStatusBar : 隱藏狀態欄(注釋萌萌哒) getStatusBarHeight : 獲取狀態欄高度 isStatusBarExists : 判斷狀態欄是否存在 getActionBarHeight : 獲取ActionBar高度 showNotificationBar : 顯示通知欄 hideNotificationBar : 隱藏通知欄 setLandscape : 設置屏幕為橫屏(注釋萌萌哒) snapShotWithStatusBar, snapShotWithoutStatusBar : 獲取屏幕截圖 isScreenLock : 判斷是否鎖屏
SD卡相關→[SDCardUtils.java][sdcard.java]
isSDCardEnable : 判斷SD卡是否可用 getDataPath : 獲取SD卡Data路徑 getSDCardPath : 獲取SD卡路徑 getFreeSpace : 計算SD卡的剩余空間 getSDCardInfo : 獲取SD卡信息
服務相關→[ServiceUtils.java][service.java]
isRunningService : 獲取服務是否開啟
Shell相關→[ShellUtils.java][shell.java]
isRoot : 判斷設備是否root execCmd : 是否是在root下執行命令
尺寸相關→[SizeUtils.java][size.java]
dp2px, px2dp : dp與px轉換 sp2px, px2sp : sp與px轉換 applyDimension : 各種單位轉換 forceGetViewSize : 在onCreate()即可強行獲取View的尺寸 measureView : ListView中提前測量View尺寸(注釋萌萌哒)
SP相關→[SPUtils.java][sp.java]→[Test][sp.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][string.java]→[Test][string.test]
isEmpty : 判斷字符串是否為null或長度為0 isSpace : 判斷字符串是否為null或全為空格 null2Length0 : null轉為長度為0的字符串 length : 返回字符串長度 upperFirstLetter : 首字母大寫 lowerFirstLetter : 首字母小寫 reverse : 反轉字符串 toDBC : 轉化為半角字符 toSBC : 轉化為全角字符 getPYFirstLetter : 獲得第一個漢字首字母 cn2PY : 中文轉拼音
線程池相關→[ThreadPoolUtils.java][thread_pool.java]
ThreadPoolUtils : ThreadPoolUtils構造函數 execute : 在未來某個時間執行給定的命令 execute : 在未來某個時間執行給定的命令鏈表 shutDown : 待以前提交的任務執行完畢後關閉線程池 shutDownNow : 試圖停止所有正在執行的活動任務 isShutDown : 判斷線程池是否已關閉 isTerminated : 關閉線程池後判斷所有任務是否都已完成 awaitTermination : 請求關閉、發生超時或者當前線程中斷 submit : 提交一個Callable任務用於執行 submit : 提交一個Runnable任務用於執行 invokeAll, invokeAny : 執行給定的任務 schedule : 延遲執行Runnable命令 schedule : 延遲執行Callable命令 scheduleWithFixedRate, scheduleWithFixedDelay : 延遲並循環執行命令
時間相關→[TimeUtils.java][time.java]→[Test][time.test]
milliseconds2String : 將時間戳轉為時間字符串 string2Milliseconds : 將時間字符串轉為時間戳 string2Date : 將時間字符串轉為Date類型 date2String : 將Date類型轉為時間字符串 date2Milliseconds : 將Date類型轉為時間戳 milliseconds2Date : 將時間戳轉為Date類型 milliseconds2Unit : 毫秒時間戳單位轉換(單位:unit) getIntervalTime : 獲取兩個時間差(單位:unit) getCurTimeMills, getCurTimeString, getCurTimeDate : 獲取當前時間 getIntervalByNow : 獲取與當前時間的差(單位:unit) isLeapYear : 判斷閏年 getWeek, getWeekIndex : 獲取星期 getWeekOfMonth : 獲取月份中的第幾周 getWeekOfYear : 獲取年份中的第幾周
吐司相關→[ToastUtils.java][toast.java]
init : 吐司初始化 showShortToastSafe : 安全地顯示短時吐司 showLongToastSafe : 安全地顯示長時吐司 showShortToast : 顯示短時吐司 showLongToast : 顯示長時吐司 cancelToast : 取消吐司顯示
壓縮相關→[ZipUtils.java][zip.java]→[Test][zip.test]
zipFiles : 批量壓縮文件 zipFile : 壓縮文件 unzipFiles : 批量解壓文件 unzipFile : 解壓文件 unzipFileByKeyword : 解壓帶有關鍵字的文件 getFilesPath : 獲取壓縮文件中的文件路徑鏈表 getComments : 獲取壓縮文件中的注釋鏈表 getEntries : 獲取壓縮文件中的文件對象
GitHub地址:https://github.com/Trinea/android-common
GitHub地址:https://github.com/litesuits/android-common
GitHub地址:https://github.com/greenrobot/essentials
GitHub地址:https://github.com/apache?utf8=%E2%9C%93&query=Common
1. Media Framework 層次(1) 應用層Music, VideoPlayer(2) JAVA層MediaPlayer : frameworks/base/
使用Intent調用語音識別程序說明Android中主要通過RecognizerIntent來實現語音識別,其實代碼比較簡單,但是如果找不到語音識別設備,就會拋出異常 A
0x00我們首先講一個webView這個方法的作用:webView.getSettings().setAllowFileAccessFromFileURLs(false)
這篇文章主要是練習了安卓listview的arrayadapter和baseadapter的簡單填充。1.arrayadapter填充布局: 代碼: pa