19個(gè)Android常用工具類匯總
來源:易賢網(wǎng) 閱讀:8447 次 日期:2015-03-31 11:01:14
溫馨提示:易賢網(wǎng)小編為您整理了“19個(gè)Android常用工具類匯總”,方便廣大網(wǎng)友查閱!

主要介紹總結(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

所有代碼都在中,歡迎Star或Fork^_*,除這些工具類外此項(xiàng)目還包括緩存、下拉ListView等。詳細(xì)接口介紹可見TrineaAndroidCommon API Guide。

具體使用:可直接引入TrineaAndroidCommon作為你項(xiàng)目的library(如何拉取代碼及添加公共庫),或是自己抽取其中的部分使用。

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è)方法可以簡單的傳入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。關(guān)于Android DownManager使用可見DownManager Demo。

3、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。關(guān)于靜默安裝可見apk-root權(quán)限靜默安裝。

4、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。關(guān)于靜默安裝可見apk-root權(quán)限靜默安裝。

5、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。

6、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。

7、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。

8、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。

9、StringUtils

String工具類,可用于常見字符串操作,如:

isEmpty(String str) 判斷字符串是否為空或長度為0

isBlank(String str) 判斷字符串是否為空或長度為0 或由空格組成

utf8Encode(String str) 以u(píng)tf-8格式編碼

capitalizeFirstLetter(String str) 首字母大寫

源碼可見StringUtils.java,更多方法及更詳細(xì)參數(shù)介紹可見StringUtils Api Guide。

10、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。

11、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。

12、ArrayUtils

數(shù)組工具類,可用于數(shù)組常用操作,如:

isEmpty(V[] sourceArray) 判斷數(shù)組是否為空或長度為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。

13、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。

14、ListUtils

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,更多方法及更詳細(xì)參數(shù)介紹可見ListUtils Api Guide。

15、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轉(zhuǎn)換為json格式

源碼可見MapUtils.java,更多方法及更詳細(xì)參數(shù)介紹可見MapUtils Api Guide。

16、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。

17、SerializeUtils

序列化工具類,可用于序列化對(duì)象到文件或從文件反序列化對(duì)象,如:

deserialization(String filePath) 從文件反序列化對(duì)象

serialization(String filePath, Object obj) 序列化對(duì)象到文件

源碼可見SerializeUtils.java,更多方法及更詳細(xì)參數(shù)介紹可見SerializeUtils Api Guide。

18、SystemUtils

系統(tǒng)信息工具類,可用于得到線程池合適的大小,目前功能薄弱,后面會(huì)進(jìn)行增強(qiáng)。如:

getDefaultThreadPoolSize() 得到跟系統(tǒng)配置相符的線程池大小

源碼可見SystemUtils.java,更多方法及更詳細(xì)參數(shù)介紹可見SystemUtils Api Guide。

19、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。

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:19個(gè)Android常用工具類匯總
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)