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