1. 程式人生 > >基於Android系統Api封裝常用工具類

基於Android系統Api封裝常用工具類

專案地址

https://github.com/h4de5ing/AndroidCommon/blob/master/README-cn.md

gradle使用方式

compile 'com.code19.library:library:0.1.2'

常用工具類

使用示例:
AppUtils.getAppName(MainActivity.this,com.code19.androidcommon);

library Module中的類:

  • AppUtils.java 應用工具類

    • getAppName 獲取應用名稱
    • getAppIcon 獲取應用圖示
    • getAppFirstInstallTime 獲取應用第一次安裝日期
    • getAppLastUpdateTime 獲取應用更新日期
    • getAppSize 獲取應用大小
    • getAppApk 獲取應用apk檔案
    • getAppVersionName 獲取應用版本名稱
    • getAppVersionCode 獲取應用版本號
    • getAppInstaller 獲取應用的安裝市場
    • getAppSign 獲取應用簽名
    • getAppTargetSdkVersion 獲取應用相容sdk
    • getAppUid 獲取應用uid
    • getNumCores 獲取Cpu核心數
    • getRootPermission 獲得root許可權
    • getAppPermissions 獲取應用的所有許可權
    • hasPermission 是否有許可權
    • isInstalled 應用是否安裝
    • installApk 安裝應用
    • uninstallApk 解除安裝應用
    • isSystemApp 是否是系統應用
    • isServiceRunning 服務是否在執行
    • stopRunningService 停止服務
    • killProcesses 結束程序
    • runScript 執行指令碼
    • runApp 啟動應用
    • cleanCache 清除應用內部快取
    • cleanDatabases 清除應用內部資料庫
    • cleanSharedPreference 清除應用內部SP
  • CacheUtils.java 快取工具類

    • setCache 設定快取
    • getCache 獲取快取
  • CipherUtils.java 密碼工具類

    • md5(String input) 字串md5
    • md5L(String input) 字串md5,返回小寫密文
    • md5(InputStream in) 輸入流md5
    • base64Encode Base64加密
    • base64Decode Base64解密
    • XorEncode 異或加密
    • XorDecode 異或解密
    • sha1 字串sha1值
    • sha1 檔案hash校驗
  • CoordinateTransformUtil.java GPS座標轉換工具

    • 百度座標(BD09)、國測局座標(火星座標,GCJ02)、和WGS84座標系之間的轉換的工具
    • bd09towgs84 百度座標系(BD-09)轉WGS座標(百度座標緯度,百度座標經度),WGS84座標陣列
    • wgs84tobd09 WGS座標轉百度座標系(BD-09)(WGS84座標系的經度,WGS84座標系的緯度),百度座標陣列
    • gcj02tobd09 火星座標系(GCJ-02)轉百度座標系(BD-09)(火星座標經度,火星座標緯度),百度座標陣列
    • bd09togcj02 百度座標系(BD-09)轉火星座標系(GCJ-02)(百度座標緯度,百度座標經度),火星座標陣列
    • wgs84togcj02 WGS84轉GCJ02(火星座標系)(WGS84座標系的經度,WGS84座標系的緯度),火星座標陣列
    • gcj02towgs84 GCJ02(火星座標系)轉GPS84(火星座標系的經度,火星座標系緯度),WGS84座標陣列
    • transformlat 緯度轉換
    • transformlng 經度轉換
    • out_of_china 判斷是否在國內,不在國內不做偏移
  • DateUtil.java 日期工具類

    • formatDataTime 格式化日期時間
    • formatDate 格式化日期
    • formatTime 格式化時間
    • formatDateCustom 自定義格式的格式化日期時間
    • string2Date 將時間字串轉換成Date
    • getDate 獲取系統日期
    • getTime 獲取系統時間
    • getDateTime 獲取系統日期時間
    • subtractDate 計算兩個時間差
    • getDateAfter 得到幾天後的時間
    • getWeekOfMonth 獲取當前時間為本月的第幾周
    • getDayOfWeek 獲取當前時間為本週的第幾天
  • DensityUtil.java 螢幕工具類

    • dip2px dp轉畫素
    • dip2sp dip轉sp
    • px2dip 畫素轉dp
    • px2sp 畫素轉sp
    • sp2px sp轉畫素
    • sp2dip sp轉dip
    • getScreenW 獲取螢幕寬度
    • getScreenH 獲取螢幕高度
    • getScreenRealSize 獲取螢幕的真實高度
    • getStatusBarH 獲取狀態列高度
    • getNavigationBarrH 獲取導航欄高度
  • DeviceUtils.java 裝置資訊工具

    • getAndroidID 獲取AndroidID
    • getIMEI 獲取裝置IMEI碼
    • getIMSI 獲取裝置IMSI碼
    • getWifiMacAddr 獲取MAC地址
    • getIP 獲取網路IP地址(優先獲取wifi地址)
    • getWifiIP 獲取WIFI連線下的ip地址
    • getGPRSIP 獲取GPRS連線下的ip地址
    • getSerial 獲取裝置序列號
    • getSIMSerial 獲取SIM序列號
    • getMNC 獲取網路運營商 46000,46002,46007 中國移動,46001 中國聯通,46003 中國電信
    • getCarrier 獲取網路運營商:中國電信,中國移動,中國聯通
    • getModel 獲取硬體型號
    • getBuildBrand 獲取編譯廠商
    • getBuildHost 獲取編譯伺服器主機
    • getBuildTags 獲取描述Build的標籤
    • getBuildTime 獲取系統編譯時間
    • getBuildUser 獲取系統編譯作者
    • getBuildVersionRelease 獲取編譯系統版本(5.1)
    • getBuildVersionCodename 獲取開發代號
    • getBuildVersionIncremental 獲取原始碼控制版本號
    • getBuildVersionSDK 獲取編譯的SDK
    • getBuildID 獲取修訂版本列表(LMY47D)
    • getSupportedABIS CPU指令集
    • getManufacturer 獲取硬體製造廠商
    • getBootloader 獲取系統啟動程式版本號
    • getScreenDisplayID
    • getDisplayVersion 獲取系統版本號
    • getLanguage 獲取語言
    • getCountry 獲取國家
    • getOSVersion 獲取系統版本:5.1.1
    • getGSFID 獲取GSF序列號
    • getBluetoothMAC 獲取藍芽地址
    • getPsuedoUniqueID Android裝置物理唯一識別符號
    • getFingerprint 構建標識,包括brand,name,device,version.release,id,version.incremental,type,tags這些資訊
    • getHardware 獲取硬體資訊
    • getProduct 獲取產品資訊
    • getDevice 獲取裝置資訊
    • getBoard 獲取主機板資訊
    • getRadioVersion 獲取基帶版本(無線電韌體版本 Api14以上)
    • getUA 獲取的瀏覽器指紋(User-Agent)
    • getDensity 獲取得螢幕密度
    • getGoogleAccounts 獲取google賬號
  • FileUtils.java 檔案工具類

    • closeIO 關閉IO流
    • isFileExist 檔案是否存在
    • writeFile 將字串寫入到檔案
    • readFile 從檔案中讀取字串
    • readFile 從檔案中讀取字串(可設定編碼)
    • copyFile 複製檔案
    • copyFileFast 快速複製
    • shareFile 分享檔案
    • zip zip壓縮
    • unzip zip解壓
    • formatFileSize 格式化檔案大小
    • Stream2File 將輸入流寫入到檔案
    • createFolder 建立資料夾
    • createFolder 建立資料夾(支援覆蓋已存在的同名資料夾)
    • getFileName 獲取檔名
    • getFileSize 獲取檔案大小
    • rename 重名名檔案\資料夾
    • getFolderName 獲取資料夾名稱
    • getFilesArray 獲取資料夾下所有檔案
    • deleteFile 刪除檔案
    • deleteFileByDirectory 刪除目錄下的所有檔案
    • openImage 開啟圖片
    • openVideo 開啟視訊
    • openURL 開啟URL
    • downloadFile 下載檔案
    • upgradeApp 通過APKURL升級應用
    • isSDCardAvailable 是否掛在SDCard
    • getAppExternalPath 獲取應用在SDCard上的工作路徑
    • getExtraPath 獲取SDCard上目錄的路徑
  • JsonUtils.java Json工具類(需要依賴Gson 2.0以上)

    • toJson 物件轉json
    • fromJson json轉物件
    • mapToJson Map轉為JSONObject
    • collection2Json 集合轉換為JSONArray
    • object2Json Object物件轉換為JSONArray
    • string2JSONObject json字串生成JSONObject物件
  • L.java 日誌工具

    • init 初始化日誌開關和TAG(預設日誌為開,TAG為"ghost")
    • v VERBOSE
    • d DEBUG
    • i INFO
    • w WARN
    • e ERROR
    • a ASSERT
    • json 輸出json
    • xml 輸出xml
  • NetUtils.java 網路工具

    • getNetworkType 獲取網路型別
    • getNetworkTypeName 獲取網路名稱
    • isConnected 檢查網路狀態
    • isNetworkAvailable 網路可用性
    • isWiFi 是否wifi
    • openNetSetting 開啟網路設定介面
    • setWifiEnabled 設定wifi狀態
    • setDataEnabled 設定資料流量狀態
    • getWifiScanResults 獲取wifi列表
    • getScanResultsByBSSID 過濾掃描結果
    • getWifiConnectionInfo 獲取wifi連線資訊
  • SPUtils.java SharedPreferences工具

    • setSP 儲存SharedPreferences值
    • getSp 獲取SharedPreferences值
    • cleanAllSP 清除所有的SP值
  • StringUtils.java 字串工具

    • getChsAscii 漢字轉成ASCII碼
    • convert 單字解析
    • getSelling 片語解析
    • parseEmpty 將null轉化為""
    • isEmpty 是否是空字串
    • chineseLength 中文長度
    • strLength 字串長度
    • subStringLength 獲取指定長度的字元所在位置
    • isChinese 是否是中文
    • isContainChinese 是否包含中文
    • strFormat2 不足2位前面補0
    • convert2Int 型別安全轉換
    • decimalFormat 指定小數輸出
  • SystemUtils.java 系統工具

    • sendSMS 呼叫系統傳送簡訊
    • forwardToDial 跳轉到撥號
    • callPhone 直接呼叫號碼
    • sendMail 發郵件
    • openWeb 開啟瀏覽器
    • openContacts 開啟聯絡人
    • openSettings 開啟系統設定
/**
 * com.android.settings.AccessibilitySettings 輔助功能設定
 * com.android.settings.ActivityPicker 選擇活動
 * com.android.settings.ApnSettings APN設定
 * com.android.settings.ApplicationSettings 應用程式設定
 * com.android.settings.BandMode 設定GSM/UMTS波段
 * com.android.settings.BatteryInfo 電池資訊
 * com.android.settings.DateTimeSettings 日期和時間設定
 * com.android.settings.DateTimeSettingsSetupWizard 日期和時間設定
 * com.android.settings.DevelopmentSettings 應用程式設定=》開發設定
 * com.android.settings.DeviceAdminSettings 裝置管理器
 * com.android.settings.DeviceInfoSettings 關於手機
 * com.android.settings.Display 顯示——設定顯示字型大小及預覽
 * com.android.settings.DisplaySettings 顯示設定
 * com.android.settings.DockSettings 底座設定
 * com.android.settings.IccLockSettings SIM卡鎖定設定
 * com.android.settings.InstalledAppDetails 語言和鍵盤設定
 * com.android.settings.LanguageSettings 語言和鍵盤設定
 * com.android.settings.LocalePicker 選擇手機語言
 * com.android.settings.LocalePickerInSetupWizard 選擇手機語言
 * com.android.settings.ManageApplications 已下載(安裝)軟體列表
 * com.android.settings.MasterClear 恢復出廠設定
 * com.android.settings.MediaFormat 格式化手機快閃記憶體
 * com.android.settings.PhysicalKeyboardSettings 設定鍵盤
 * com.android.settings.PrivacySettings 隱私設定
 * com.android.settings.ProxySelector 代理設定
 * com.android.settings.RadioInfo 手機資訊
 * com.android.settings.RunningServices 正在執行的程式(服務)
 * com.android.settings.SecuritySettings 位置和安全設定
 * com.android.settings.Settings 系統設定
 * com.android.settings.SettingsSafetyLegalActivity 安全資訊
 * com.android.settings.SoundSettings 聲音設定
 * com.android.settings.TestingSettings 測試——顯示手機資訊、電池資訊、使用情況統計、Wifi
 * information、服務資訊 com.android.settings.TetherSettings 繫結與行動式熱點
 * com.android.settings.TextToSpeechSettings 文字轉語音設定
 * com.android.settings.UsageStats 使用情況統計
 * com.android.settings.UserDictionarySettings 使用者詞典
 * com.android.settings.VoiceInputOutputSettings 語音輸入與輸出設定
 * com.android.settings.WirelessSettings 無線和網路設定
 */
* hideKeyBoard 隱藏系統鍵盤
* isBackground 判斷當前應用程式是否後臺執行
* isSleeping 判斷手機是否處理睡眠
* installApk 安裝apk
* isRooted 是否root
* isRunningOnEmulator 當前裝置是否是模擬器
* goHome 返回Home
* hexdigest 32位簽名
* getDeviceUsableMemory 獲取裝置可用空間
* gc 清理後臺程序和服務
* getProcessName 獲取程序名字
* createDeskShortCut 建立桌面快捷方式
* createShortcut 建立快捷方式
* shareText 分享文字
* shareFile 分享檔案(此方法是呼叫FileUtils.shareFile中的方式)
* getShareTargets 獲取可接受分享的應用
* getCurrentLanguage 獲取當前系統的語言 
* getLanguage 獲取當前系統的語言
* isGpsEnabled GPS是否開啟
* showSoftInputMethod 顯示軟鍵盤
* closeSoftInputMethod 關閉軟鍵盤
* showSoftInput 顯示軟鍵盤
* closeSoftInput 關閉軟鍵盤
* toWeChatScan 開啟微信掃描
* toAliPayScan 開啟支付寶掃描
* toAliPayPayCode 開啟支付寶支付碼
* getRandomNumber 獲取隨機數
  • VerificationUtils.java 驗證工具類

    • matcherRealName 判斷姓名格式
    真實姓名可以是漢字,也可以是字母,但是不能兩者都有,也不能包含任何符號和數字
    1.如果是英文名,可以允許英文名字中出現空格
    2.英文名的空格可以是多個,但是不能連續出現多個
    3.漢字不能出現空格
    
    • matcherPhoneNum 判斷手機號格式 (匹配11數字,並且13-19開頭)
    • matcherAccount 判斷賬號格式 (4-20位字元)
    • matcherPassword 判斷密碼格式 (6-12位字母或數字)
    • matcherPassword2 判斷密碼格式 (6-12位字母或數字,必須同時包含字母和數字)
    • matcherEmail 判斷郵箱格式
    • matcherIP 判斷IP地址
    • matcherUrl 判斷URL (http,https,ftp)
    • matcherVehicleNumber 判斷中國民用車輛號牌
    • matcherIdentityCard 判斷身份證號碼格式
    • isNumeric 是否數值型
    • testRegex 是否匹配正則
    • checkPostcode 匹配中國郵政編碼
  • ViewUtils.java View工具

    • removeSelfFromParent
    • requestLayoutParent
    • isTouchInView
    • bigImage
    • setTVUnderLine 給TextView設定下劃線
    • showPopupWindow
    • dismissPopup
    • captureView 截圖
    • createViewBitmap 截圖
    • convertViewToBitmap 截圖
    • getActivityBitmap 獲取Activity的截圖
    • getStatusBarHeight 獲取狀態列高度
    • getToolbarHeight 獲取工具欄高度
    • getNavigationBarHeight 獲取導航欄高度
    • measureView 測量view
    • getViewWidth 獲取view的寬度
    • getViewHeight 獲取view的高度
    • getActivity 獲取view的上下文
    /**
     * 身份證校驗
     * <p>
     * 根據〖中華人民共和國國家標準 GB 11643-1999〗中有關公民身份號碼的規定,公民身份號碼是特徵組合碼,由十七位數字本體碼和一位數字校驗碼組成。
     * 排列順序從左至右依次為:六位數字地址碼,八位數字出生日期碼,三位數字順序碼和一位數字校驗碼。
     * 地址碼錶示編碼物件常住戶口所在縣(市、旗、區)的行政區劃程式碼。
     * 出生日期碼錶示編碼物件出生的年、月、日,其中年份用四位數字表示,年、月、日之間不用分隔符。
     * 順序碼錶示同一地址碼所標識的區域範圍內,對同年、月、日出生的人員編定的順序號。順序碼的奇數分給男性,偶數分給女性。
     * 校驗碼是根據前面十七位數字碼,按照ISO 7064:1983.MOD 11-2校驗碼計算出來的檢驗碼。
     * 出生日期計算方法。
     * 15位的身份證編碼首先把出生年擴充套件為4位,簡單的就是增加一個19或18,這樣就包含了所有1800-1999年出生的人;
     * 2000年後出生的肯定都是18位的了沒有這個煩惱,至於1800年前出生的,那啥那時應該還沒身份證號這個東東,⊙﹏⊙b汗...
     * 下面是正則表示式:
     * 出生日期1800-2099  /(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])/
     * 身份證正則表示式 /^[1-9]\d{5}((1[89]|20)\d{2})(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dx]$/i
     * 15位校驗規則 6位地址編碼+6位出生日期+3位順序號
     * 18位校驗規則 6位地址編碼+8位出生日期+3位順序號+1位校驗位
     * 校驗位規則     公式:∑(ai×Wi)(mod 11)……………………………………(1)
     * 公式(1)中:
     * i----表示號碼字元從由至左包括校驗碼在內的位置序號;
     * ai----表示第i位置上的號碼字元值;
     * Wi----示第i位置上的加權因子,其數值依據公式Wi=2^(n-1)(mod 11)計算得出。
     * i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
     * Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
     * </P>
     *
     * @author Yoojia.Chen ([email protected])
     * @version version 2015-05-21
     * @since 2.0
     */

這個庫參考了眾多網路的中的程式碼,在此對這些無私奉獻的人致以最誠摯的感謝。

相關推薦

基於Android系統Api封裝常用工具

專案地址 https://github.com/h4de5ing/AndroidCommon/blob/master/README-cn.md gradle使用方式 compile 'com.code19.library:library:0.1.2' 常用工具類 使用示

Android常用工具

cti def air exp -a src 重復元素 nec empty 主要介紹總結的Android開發中常用的工具類,大部分同樣適用於Java。目前包括HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、Prefe

Android常用工具集合(持續更新)

1.訊息通知管理類,適配Android8.0 https://blog.csdn.net/huangliniqng/article/details/83537119 2.Android撥打電話工具類:  https://blog.csdn.net/huangliniqng/

javascript 總結(常用工具封裝

** JavaScript ** 1. type 型別判斷 isString (o) { //是否字串 return Object.prototype.toString.call(o).slice(8, -1) === 'String' } isNumb

基於Eros的Android端功能增強的工具

當前工具類支援--基礎依賴包wxframework <= 1.0.9 的版本 如果您的基礎依賴包wxframework的版本 > 1.0.9 , 為了使該工具類繼續可以使用, 可前往: Eros-plugin-android-extend 基於Eros框架下的

Android : 封裝Http工具,以及日誌攔截器的工具

這個沒有什麼好說的 同標題 package soexample.umeng.com.okhttp.utils; import android.os.Environment; import java.io.File; import java.io.IOException; import

Android快速開發系列 10個常用工具

開啟大家手上的專案,基本都會有一大批的輔助類,今天特此整理出10個基本每個專案中都會使用的工具類,用於快速開發~~ 在此感謝群裡給我發專案中工具類的兄弟/姐妹~ 1、日誌工具類L.java Java package c

最全Android開發常用工具

  主要介紹總結的Android開發中常用的工具類,大部分同樣適用於Java。        目前包括  HttpUtils、DownloadManagerPro、Safe.ijiami、ShellUtils、PackageUtils、 PreferencesUtils、

android 常用 工具 com.liuan:common 個人總結

git 地址 點我傳送  此處永遠是線上最新的程式碼!!!!! 說明書在git README.md 內容同下 可能有會更改 大概如下 最新說明文件 點我tp 有些程式碼寫第一次 興致盎然,可

常用工具】SharedPreferences封裝SPUtils

public class SPUtils { /** * 儲存在手機裡面的檔名 */ public static final String FILE_NAME = "share_data"; /** * 儲

Java常用工具封裝——Base64 編碼和解碼

Base64 編碼和解碼工具類,供參考。 import java.io.*; /** * Base64 編碼和解碼。 * * @author jiangshuai * @date 2016年10月03日 */ public class Base64 { p

Java常用工具封裝——String操作工具

專案中經常需要用到String的一些操作,結合看到的一些前人的工具類抽取,編寫了如下針對String的常用操作的工具類,供大家參考。 package com.mkyong.common; import java.util.ArrayList; import

Java基於apache.commons.lang的日期工具簡單封裝

package cn.lettleprincess.util; import java.text.ParseException; import java.util.ArrayList; import java.util.Calendar; import java.util

Phalcon搭建多模組框架二十八:封裝curl工具並模擬api介面請求與響應

在開發中經常會需要寫介面給別人呼叫或者呼叫別人的介面,通常使用http post傳送json格式資料,響應也往往是json格式資料。除了必要的簽名,有時候為了資料安全還需要對資料進行對稱或非對稱加密。這裡我們只是模擬post請求傳送和響應json格式資料。

Java常用工具封裝——連線資料庫的工具

資料庫操作工具類,供大家參考。 package com.itjh.javaUtil; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement

Android-Universal-Image-Loader的工具封裝

在Android開發中對圖片資源的處理已經司空見慣了,如果還是使用Android API提供的方法來處理圖片(尤其是網路圖片),不僅複雜工作量大,而且還達不到好的一個效果.所以最終選擇一些圖片處理框架,如Android-Universal-Image-Loader,pica

羊皮書APP(Android版)開發系列(十)Android開發常用工具

日期格式化工具 package cn.studyou.baselibrary.utils; import java.text.DecimalFormat; import java.text.ParseException; import java.text

Java常用工具API(Arrays,Collections,包裝,日期,Math,Systeml)

一、陣列Arrays類(全為靜態方法) 返回型別 方法名 作用 String Arrays.toString(type[] a) 返回指定陣列內容的字串表示形式 void Arrays.sort(type[] a

android系統提供的常用命令列工具

本部落格只要沒有註明“轉”,那麼均為原創,轉貼請註明本部落格連結連結android提供了不少命令列工具,方便我們除錯和檢視資訊.下面是frameworks/base/cmds(android 6.0.1)中的命令.$ tree cmds -L 1cmds├── am├── a

android 獲取手機信息工具

telephony == 系統 設備 android pack devices 信息 context package com.yqy.yqy_listviewheadview; import android.content.Context; import androi