您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關(guān)Android有哪些常用工具類,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
主要介紹總結(jié)的Android開發(fā)中常用的工具類,大部分同樣適用于Java。 目前包括HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、 PreferencesUtils、JSONUtils、FileUtils、ResourceUtils、StringUtils、 ParcelUtils、RandomUtils、ArrayUtils、ImageUtils、ListUtils、MapUtils、 ObjectUtils、SerializeUtils、SystemUtils、TimeUtils。 The English version of this article see:Android Common Utils 所有代碼都在TrineaAndroidCommon@Github中,歡迎Star或Fork^_*,除這些工具類外此項目還包括緩存、下拉 ListView等。詳細接口介紹可見TrineaAndroidCommon API Guide。 具體使用:可直接引入TrineaAndroidCommon作為你項目的library(如何拉取代碼及添加公共庫),或是自己抽取其中的部分使用。
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)
包含以上三個方法,默認使用gzip壓縮,使用bufferedReader提高讀取速度。
HttpRequest中可以設(shè)置url、timeout、userAgent等其他http參數(shù)
HttpResponse中可以獲取返回內(nèi)容、http響應(yīng)碼、http過期時間(Cache-Control的max-age和expires)等
前兩個方法可以進行高級參數(shù)設(shè)置及豐富內(nèi)容返回,第三個方法可以簡單的傳入url獲取返回內(nèi)容,httpPost類似。更詳細的設(shè)置可以直接使用HttpURLConnection或apache的HttpClient。
源碼可見HttpUtils.java,更多方法及更詳細參數(shù)介紹可見HttpUtils Api Guide。
Android系統(tǒng)下載管理DownloadManager增強方法,可用于包括獲取下載相關(guān)信息,如:
getStatusById(long) 得到下載狀態(tài)
getDownloadBytes(long) 得到下載進度信息
getBytesAndStatus(long) 得到下載進度信息和狀態(tài)
getFileName(long) 得到下載文件路徑
getUri(long) 得到下載uri
getReason(long) 得到下載失敗或暫停原因
getPausedReason(long) 得到下載暫停原因
getErrorCode(long) 得到下載錯誤碼
源碼可見DownloadManagerPro.java,更多方法及更詳細參數(shù)介紹可見DownloadManagerPro Api Guide。關(guān)于Android DownManager使用可見DownManager Demo。
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í)行命令,第二個參數(shù)表示是否root權(quán)限執(zhí)行
execCommand(String command, boolean isRoot) shell環(huán)境執(zhí)行命令
源碼可見ShellUtils.java,更多方法及更詳細參數(shù)介紹可見ShellUtils Api Guide。關(guān)于靜默安裝可見apk-root權(quán)限靜默安裝。
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,更多方法及更詳細參數(shù)介紹可見ShellUtils Api Guide。關(guān)于靜默安裝可見apk-root權(quán)限靜默安裝。
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,更多方法及更詳細參數(shù)介紹可見PreferencesUtils Api Guide。
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中讀取某個String類型key的值
getMap(JSONObject jsonObject, String key) 得到map
getMap(String jsonData, String key) 得到map
表示從json中讀取某個Map類型key的值
源碼可見JSONUtils.java,更多方法及更詳細參數(shù)介紹可見JSONUtils Api Guide。
文件工具類,可用于讀寫文件及對文件進行操作。如:
readFile(String filePath) 讀文件
writeFile(String filePath, String content, boolean append) 寫文件
getFileSize(String path) 得到文件大小
deleteFile(String path) 刪除文件
源碼可見FileUtils.java,更多方法及更詳細參數(shù)介紹可見FileUtils Api Guide。
Android Resource工具類,可用于從android資源目錄的raw和assets目錄讀取內(nèi)容,如:
geFileFromAssets(Context context, String fileName) 得到assets目錄下某個文件內(nèi)容
geFileFromRaw(Context context, int resId) 得到raw目錄下某個文件內(nèi)容
源碼可見ResourceUtils.java,更多方法及更詳細參數(shù)介紹可見ResourceUtils Api Guide。
String工具類,可用于常見字符串操作,如:
isEmpty(String str) 判斷字符串是否為空或長度為0
isBlank(String str) 判斷字符串是否為空或長度為0 或由空格組成
utf8Encode(String str) 以utf-8格式編碼
capitalizeFirstLetter(String str) 首字母大寫
源碼可見StringUtils.java,更多方法及更詳細參數(shù)介紹可見StringUtils Api Guide。
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,更多方法及更詳細參數(shù)介紹可見ParcelUtils Api Guide。
隨機數(shù)工具類,可用于獲取固定大小固定字符內(nèi)的隨機數(shù),如:
getRandom(char[] sourceChar, int length) 生成隨機字符串,所有字符均在某個字符串內(nèi)
getRandomNumbers(int length) 生成隨機數(shù)字
源碼可見RandomUtils.java,更多方法及更詳細參數(shù)介紹可見RandomUtils Api Guide。
數(shù)組工具類,可用于數(shù)組常用操作,如:
isEmpty(V[] sourceArray) 判斷數(shù)組是否為空或長度為0
getLast(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到數(shù)組中某個元素前一個元素,isCircle表示是否循環(huán)
getNext(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到數(shù)組中某個元素下一個元素,isCircle表示是否循環(huán)
源碼可見ArrayUtils.java,更多方法及更詳細參數(shù)介紹可見ArrayUtils Api Guide。
圖片工具類,可用于Bitmap, byte array, Drawable之間進行轉(zhuǎn)換以及圖片縮放,目前功能薄弱,后面會進行增強。如:
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,更多方法及更詳細參數(shù)介紹可見ImageUtils Api Guide。
List工具類,可用于List常用操作,如:
isEmpty(List<V> sourceList) 判斷List是否為空或長度為0
join(List<String> list, String separator) List轉(zhuǎn)換為字符串,并以固定分隔符分割
addDistinctEntry(List<V> sourceList, V entry) 向list中添加不重復(fù)元素
源碼可見ListUtils.java,更多方法及更詳細參數(shù)介紹可見ListUtils Api Guide。
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轉(zhuǎn)換為json格式
源碼可見MapUtils.java,更多方法及更詳細參數(shù)介紹可見MapUtils Api Guide。
Object工具類,可用于Object常用操作,如:
isEquals(Object actual, Object expected) 比較兩個對象是否相等
compare(V v1, V v2) 比較兩個對象大小
transformIntArray(int[] source) Integer 數(shù)組轉(zhuǎn)換為int數(shù)組
源碼可見ObjectUtils.java,更多方法及更詳細參數(shù)介紹可見ObjectUtils Api Guide。
序列化工具類,可用于序列化對象到文件或從文件反序列化對象,如:
deserialization(String filePath) 從文件反序列化對象
serialization(String filePath, Object obj) 序列化對象到文件
源碼可見SerializeUtils.java,更多方法及更詳細參數(shù)介紹可見SerializeUtils Api Guide。
系統(tǒng)信息工具類,可用于得到線程池合適的大小,目前功能薄弱,后面會進行增強。如:
getDefaultThreadPoolSize() 得到跟系統(tǒng)配置相符的線程池大小
源碼可見SystemUtils.java,更多方法及更詳細參數(shù)介紹可見SystemUtils Api Guide。
時間工具類,可用于時間相關(guān)操作,如:
getCurrentTimeInLong() 得到當前時間
getTime(long timeInMillis, SimpleDateFormat dateFormat) 將long轉(zhuǎn)換為固定格式時間字符串
源碼可見TimeUtils.java,更多方法及更詳細參數(shù)介紹可見TimeUtils Api Guide。
關(guān)于“Android有哪些常用工具類”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。