Android开发常用工具类
來源于http://www.open-open.com/lib/view/open1416535785398.html
主要介紹總結的Android開發中常用的工具類,大部分同樣適用于Java。
? ? ? ?目前包括 ?HttpUtils、DownloadManagerPro、Safe.ijiami、ShellUtils、PackageUtils、 PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、 ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、 ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。?
? ? ????1、HttpUtils
? ? ? ? Http網絡工具類,主要包括httpGet、httpPost以及http參數相關方法,以httpGet為例:
? ? ? ? static?HttpResponse?httpGet(HttpRequest?request)
? ? ? ? static?HttpResponse?httpGet(java.lang.String?httpUrl)
? ? ? ? static?String?httpGetString(String?httpUrl)
? ? ? ? 包含以上三個方法,默認使用gzip壓縮,使用bufferedReader提高讀取速度。
? ? ? ? HttpRequest中可以設置url、timeout、userAgent等其他http參數
? ? ? ? HttpResponse中可以獲取返回內容、http響應碼、http過期時間(Cache-Control的max-age和expires)等
? ? ? 前兩個方法可以進行高級參數設置及豐富內容返回,第三個方法可以簡單的傳入url獲取返回內容,httpPost類似。更詳細的設置 ? ? ? ? 可以直接使用HttpURLConnection或apache的HttpClient。
? ? ? 源碼可見HttpUtils.java,更多方法及更詳細參數介紹可見HttpUtils?Api?Guide。
? ? ??2、DownloadManagerPro
? ? ? Android系統下載管理DownloadManager增強方法,可用于包括獲取下載相關信息,如:
? ? ? getStatusById(long)?得到下載狀態
? ? ? getDownloadBytes(long)?得到下載進度信息
? ? ? getBytesAndStatus(long)?得到下載進度信息和狀態
? ? ? getFileName(long)?得到下載文件路徑
? ? ? getUri(long)?得到下載uri
? ? ? getReason(long)?得到下載失敗或暫停原因
? ? ? getPausedReason(long)?得到下載暫停原因
? ? ? getErrorCode(long)?得到下載錯誤碼
? ? ? 源碼可見DownloadManagerPro.java,更多方法及更詳細參數介紹可見DownloadManagerPro?Api?Guide。?
??? ? 3、Safe.iji ?ami
? ? ? Android漏洞檢測工具,在線上傳Android?apk,檢測apk開發過程中產生的一些易被黑客利用、攻擊的漏洞,根據存在的漏洞提出相應的解決方案,一鍵生成詳細的分析報告,讓Android開發者可以一目了然的知道自己的Android應用存在的漏洞并及時采取措施保護起來。
? ?
? ? ????4、ShellUtils
? ? ? ?Android?Shell工具類,可用于檢查系統root權限,并在shell或root用戶下執行shell命令。如:checkRootPermission()?檢查root權限 execCommand(String[]?commands,?boolean?isRoot,?boolean?isNeedResultMsg)?shell 環境執行命令,第二個參數表示是否root權限執行 execCommand(String?command,?boolean?isRoot)?shell環境執行命令
? ? ? ?源碼可見ShellUtils.java,更多方法及更詳細參數介紹可見ShellUtils?Api?Guide。
? ? ? ??5、PackageUtils
? ? ? ? Android包相關工具類,可用于(root)安裝應用、(root)卸載應用、判斷是否系統應用等,如:install(Context,?String)?安裝應用,如果是系統應用或已經root,則靜默安裝,否則一般安裝 uninstall(Context,?String)?卸載應用,如果是系統應用或已經root,則靜默卸載,否則一般卸載 isSystemApplication(Context,?String)?判斷應用是否為系統應用
? ? ? ? 源碼可見PackageUtils.java,更多方法及更詳細參數介紹可見ShellUtils?Api?Guide。
? ? ?????6、PreferencesUtils
? ? ? ? Android?SharedPreferences相關工具類,可用于方便的向SharedPreferences中讀取和寫入相關類型數據,如:putString(Context,?String,?String)?保存string類型數據
? ? ? ? putInt(Context,?String,?int)?保存int類型數據
? ? ? ? getString(Context,?String)?獲取string類型數據
? ? ? ? getInt(Context,?String)?獲取int類型數據
? ? ? ? 可通過修改PREFERENCE_NAME變量修改preference?name
? ? ? ? 源碼可見PreferencesUtils.java,更多方法及更詳細參數介紹可見PreferencesUtils?Api?Guide。
? ? ? ???7、JSONUtils
? ? ? ? JSONUtils工具類,可用于方便的向Json中讀取和寫入相關類型數據,如:
? ? ? ?String?getString(JSONObject?jsonObject,?String?key,?String?defaultValue)?得到string類型value
? ? ? ?String?getString(String?jsonData,?String?key,?String?defaultValue)?得到string類型value
? ? ? ?表示從json中讀取某個String類型key的值
? ? ? ? getMap(JSONObject?jsonObject,?String?key)?得到map
? ? ? ? getMap(String?jsonData,?String?key)?得到map
? ? ? ? 表示從json中讀取某個Map類型key的值
? ? ? ? 源碼可見JSONUtils.java,更多方法及更詳細參數介紹可見JSONUtils?Api?Guide。
? ? ????8、FileUtils
? ? ? ? 文件工具類,可用于讀寫文件及對文件進行操作。如:
? ? ? ? readFile(String?filePath)?讀文件
? ? ? ? writeFile(String?filePath,?String?content,?boolean?append)?寫文件
? ? ? ? getFileSize(String?path)?得到文件大小
? ? ? ? deleteFile(String?path)?刪除文件
? ? ? ? 源碼可見FileUtils.java,更多方法及更詳細參數介紹可見FileUtils?Api?Guide。
? ? ?????9、ResourceUtils
? ? ? ? Android?Resource工具類,可用于從android資源目錄的raw和assets目錄讀取內容,如:
? ? ? ? geFileFromAssets(Context?context,?String?fileName)?得到assets目錄下某個文件內容
? ? ? ? geFileFromRaw(Context?context,?int?resId)?得到raw目錄下某個文件內容
? ? ? ? 源碼可見ResourceUtils.java,更多方法及更詳細參數介紹可見ResourceUtils?Api?Guide。
? ? ??? 10、StringUtils
? ? ? ? String工具類,可用于常見字符串操作,如:
? ? ? ? isEmpty(String?str)?判斷字符串是否為空或長度為0
? ? ? ? isBlank(String?str)?判斷字符串是否為空或長度為0?或由空格組成
? ? ? ? utf8Encode(String?str)?以utf-8格式編碼
? ? ? ? capitalizeFirstLetter(String?str)?首字母大寫
? ? ? ? 源碼可見StringUtils.java,更多方法及更詳細參數介紹可見StringUtils?Api?Guide。
? ? ???11、ParcelUtils
? ? ? ? Android?Parcel工具類,可用于從parcel讀取或寫入特殊類型數據,如:
? ? ? ? readBoolean(Parcel?in)?從pacel中讀取boolean類型數據
? ? ? ? readHashMap(Parcel?in,?ClassLoader?loader)?從pacel中讀取map類型數據
? ? ? ? writeBoolean(boolean?b,?Parcel?out)?向parcel中寫入boolean類型數據
? ? ? ? writeHashMap(Map<K,?V>?map,?Parcel?out,?int?flags)?向parcel中寫入map類型數據
? ? ? ? 源碼可見ParcelUtils.java,更多方法及更詳細參數介紹可見ParcelUtils?Api?Guide。
??? ???12、RandomUtils
? ? ? ? 隨機數工具類,可用于獲取固定大小固定字符內的隨機數,如:
? ? ? ? getRandom(char[]?sourceChar,?int?length)?生成隨機字符串,所有字符均在某個字符串內
? ? ? ? getRandomNumbers(int?length)?生成隨機數字
? ? ? ? 源碼可見RandomUtils.java,更多方法及更詳細參數介紹可見RandomUtils?Api?Guide。
? ??? ?13、ArrayUtils
? ? ? ? 數組工具類,可用于數組常用操作,如:
? ? ? ? isEmpty(V[]?sourceArray)?判斷數組是否為空或長度為0
? ? ? ? getLast(V[]?sourceArray,?V?value,?V?defaultValue,?boolean?isCircle)?得到數組中某個元素前一個元素,isCircle表示是否循環
? ? ? ? getNext(V[]?sourceArray,?V?value,?V?defaultValue,?boolean?isCircle)?得到數組中某個元素下一個元素,isCircle表示是否循環
? ? ? ? 源碼可見ArrayUtils.java,更多方法及更詳細參數介紹可見ArrayUtils?Api?Guide。
? ? ???14、ImageUtils
? ? ? ? 圖片工具類,可用于Bitmap,?byte?array,?Drawable之間進行轉換以及圖片縮放,目前功能薄弱,后面會進行增強。如:
? ? ? ? bitmapToDrawable(Bitmap?b)?bimap轉換為drawable
? ? ? ? drawableToBitmap(Drawable?d)?drawable轉換為bitmap
? ? ? ? drawableToByte(Drawable?d)?drawable轉換為byte
? ? ? ? scaleImage(Bitmap?org,?float?scaleWidth,?float?scaleHeight)?縮放圖片
? ? ? ? 源碼可見ImageUtils.java,更多方法及更詳細參數介紹可見ImageUtils?Api?Guide。
? ? ??? ?15、ListUtils
? ? ? ? ?List工具類,可用于List常用操作,如:
? ? ? ? isEmpty(List<V>?sourceList)?判斷List是否為空或長度為0
? ? ? ? join(List<String>?list,?String?separator)?List轉換為字符串,并以固定分隔符分割
? ? ? ? addDistinctEntry(List<V>?sourceList,?V?entry)?向list中添加不重復元素
? ? ? ?源碼可見ListUtils.java,更多方法及更詳細參數介紹可見ListUtils?Api?Guide。
? ?????16、MapUtils
? ? ? ? Map工具類,可用于Map常用操作,如:
? ? ? ? isEmpty(Map<K,?V>?sourceMap)?判斷map是否為空或長度為0 ? ? ? ? ? ? ? ? parseKeyAndValueToMap(String?source,?String?keyAndValueSeparator,?String?keyAndValuePairSeparator,?boolean?ignoreSpace)?字符串解析為map
toJson(Map<String,?String>?map)?map轉換為json格式
源碼可見MapUtils.java,更多方法及更詳細參數介紹可見MapUtils?Api?Guide。
? ? ????17、ObjectUtils
? ? ? ? Object工具類,可用于Object常用操作,如:
? ? ? ? isEquals(Object?actual,?Object?expected)?比較兩個對象是否相等
? ? ? ? compare(V?v1,?V?v2)?比較兩個對象大小
? ? ? ? transformIntArray(int[]?source)??Integer?數組轉換為int數組
? ? ? ? 源碼可見ObjectUtils.java,更多方法及更詳細參數介紹可見ObjectUtils?Api?Guide。
? ?????18、SerializeUtils
? ? ? ? 序列化工具類,可用于序列化對象到文件或從文件反序列化對象,如:
? ? ? ?deserialization(String?filePath)?從文件反序列化對象
? ? ? ?serialization(String?filePath,?Object?obj)?序列化對象到文件
? ? ? ?源碼可見SerializeUtils.java,更多方法及更詳細參數介紹可見SerializeUtils?Api?Guide。
? ??? ?19、SystemUtils
? ? ? ?系統信息工具類,可用于得到線程池合適的大小,目前功能薄弱,后面會進行增強。如:
? ? ? ? getDefaultThreadPoolSize()?得到跟系統配置相符的線程池大小
? ? ? ? 源碼可見SystemUtils.java,更多方法及更詳細參數介紹可見SystemUtils?Api?Guide。
? ? ????20、TimeUtils
? ? ? ? 時間工具類,可用于時間相關操作,如:
? ? ? ? getCurrentTimeInLong()?得到當前時間
? ? ? ?getTime(long?timeInMillis,?SimpleDateFormat?dateFormat)?將long轉換為固定格式時間字符串
? ? ? ?源碼可見TimeUtils.java,更多方法及更詳細參數介紹可見TimeUtils?Api?Guide。
轉載于:https://www.cnblogs.com/896240130Master/p/6107272.html
總結
以上是生活随笔為你收集整理的Android开发常用工具类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: |洛谷|分治|P2799 国王的魔镜
- 下一篇: Android作业(Activitiy)