Android 开发常用工具类
后续将封装更多的工具类,将尝试封装一些跟View相关的工具类,像Adapter....,功能将不断完善,同时感谢每一位开源者的贡献,本工具类参考了很多网上工具类。
1.由于水平有限,难免有Bug,如果有任何问题,请反馈 xyb520zly@gmail.com
2.如果你有更好的代码,请提交Pull request.
3.感谢各位的star,你们的支持是我继续前进的动力.
SPUtil SharedPreferences工具
- getSpName(Context context) 获取SharedPreferences存储在sd卡中的文件名字
- setSP(Context context, String key, Object object) 根据传入不同参数类型调用不同的保存方法
- getSP(Context context, String key, Object defaultObject) 根据默认值得到保存的数据的具体类型,然后调用对应方法获取值
- removeSP(Context context, String key) 移除某个key值已经对应的值
- clearAllSP(Context context) 清除所有SharedPreferences数据
- contains(Context context, String key) 查询某个key是否存在
- getAllKeyValue(Context context) 返回所有的键值对
DateUtil 时间工具
DateUtils类里面重载方法比较多
- str2Date(...) 将时间字符串转换成Date
- date2Str(...) 将Date转换成时间字符串
- str2Calendar(...) 将时间字符串转换成Calendar
- getCurDateStr(...) 获得当前日期的字符串
- getMillon(...) 获得当前日期的字符串,精确到秒
- strAddOneDay(...) 实现加一天的功能,返回的格式为String
- strDecreaseOneDay(...) 实现减一天的功能,返回的格式为String
- getLastdayDate(...) 获取昨天 Data
- getNextdayDate(...) 获取明天Date
- isTheSameDay(...) 判断是否是同一天
LogUtil 日志工具
- init 初始化日志开关和TAG(默认日志为开,TAG为"ghost")
- v VERBOSE
- d DEBUG
- i INFO
- w WARN
- e ERROR
- a ASSERT
- json 输出json
- xml 输出xml ## StringUtil 字符串工具
- isEmpty(CharSequence str) 判断是否是空字符串、null、""
- subStringOmit(String subject, int size) 字符串截取到指定长度size+...的形式
- getLimitLengthStr(String str, int len, String symbol)截取字符串 超出的字符用symbol代替
- getStrLength(String str)获取字符串的实际长度(考虑了汉字的情况一个汉字按照俩个字符算)
- getHideEmailPrefix(String email)隐藏邮件地址前缀
- Str2List(String str,String symbol)字符串分割成一个数组
- List2Str(List list, String symbol)将list 用传入的分隔符组装为String
- replaceBracketStr(String str) 全角括号转为半角
- full2Half(String str)全角字符变半角字符
- replaceBlank(String str)去除字符串中的空格、回车、换行符、制表符
- str2Unicode(String string)字符串转换unicode
- unicode2Str(String unicode)unicode 转字符串
- trimPunct(String str)删除所有的标点符号
- SimilarDegree(String str1, String str2)字符串相似度比较
- getStrEncode(String str)获取字符串的编码
- countSubStr(String string, String str)获取字符串str在String中出现的次数
- nullToEmptyStr(Object str)空对象转化为空串
- capitalizeFirstLetter(String str)首字母大写
-
utf8Encode(String str)str使用UTF-8编码
GsonUtil Gson工具
- object2Json(...)object转json
- json2List(String jsonStr) jsonStr转List
- json2Map(String jsonStr)jsonStr转Map
- json2Bean(String jsonStr, Class<?> cl) jsonStr转Bean
- getJsonValue(String jsonStr, String key) 获取key值
JsonUtil Json工具
- getLong(String jsonData, String key, long defaultValue)
- getInt(String jsonData, String key, int defaultValue)
- getDouble(String jsonData, String key, Double defaultValue)
- getString(String jsonData, String key, String defaultValue)
- getStringArray(String jsonData, String key, String[] defaultValue)
- getStringList(String jsonData, String key, List defaultValue)
- getJSONArray(String jsonData, String key, JSONArray defaultValue)
- getBoolean(String jsonData, String key, Boolean defaultValue)
- getMap(String jsonData, String key)
DeviceUtil 设备信息工具
- getAndroidID(...) 获取AndroidID
- getIMEI(...) 获取设备IMEI码
- getIMSI(...) 获取设备IMSI码
- getWifiMacAddr(...) 获取MAC地址
- getIP(...) 获取网络IP地址(优先获取wifi地址)
- getWifiIP(...) 获取WIFI连接下的ip地址
- getGPRSIP(...) 获取GPRS连接下的ip地址
- getSerial(...) 获取设备序列号
- getSIMSerial(...) 获取SIM序列号
- getPhoneNumber(...) 获取手机号码(未获取成功)
- 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账号
AppUtils APP工具类
- getAppName(...) 获取应用名称
- getAppIcon(...) 获取应用图标
- getAppDate(...) 获取应用更新日期
- getAppSize(...) 获取应用大小
- getAppApk(...) 获取应用apk文件
- getAppVersionName(...) 获取应用版本名称
- getAppVersionCode(...) 获取应用版本号
- getAppInstaller(...) 获取应用的安装市场
- getAppPackageName(...) 获取应用包名
- hasPermission(...) 是否有权限
- isInstalled(...) 应用是否安装
- installApk(...) 安装应用
- uninstallApk(...) 卸载应用
- isSystemApp(...) 是否是系统应用
- isServiceRunning(...) 服务是否在运行
- stopRunningService(...) 停止服务
- getNumCores(...) 获取Cpu内核数
- killProcesses(...) 结束进程
- runScript(...) 运行脚本
- getRootPermission(...) 获得root权限
BitmapUtil bitmap的工具类
- bytes2Bitmap(...) Byte[]转Bitmap
- bitmap2Bytes(...) Bitmap转Byte[]
- bitmap2Drawable(...) Bitmap转Drawable
- drawable2Bitmap(...)Drawable转Bitmap
- bitmap2File(...) bitmap转file
- rotateBitmap(Bitmap bmp, int degrees) 旋转图像
- getBitmapSize(Bitmap bitmap)获取bitmap的大小
- getBestOptions(...)计算目标宽度,目标高度,inSampleSize
- calculateBestInSampleSize(...)计算Bitmap最适合大小
- createScaleBitmap(...)进行缩放,得到符合标准的bitmap
- getRoundedCornerBitmap(Bitmap bitmap, float roundPx)获取圆角图片
- compressImage(Bitmap image)质量压缩
- Bitmap compressFixBitmap(Bitmap bitMap, int outWidth, int outHeight)固定大小质量压缩
NetUtils 网络工具
- getNetworkType 获取网络类型
- getNetworkTypeName 获取网络名称
- isConnected 检查网络状态
- isNetworkAvailable 网络可用性
- isWiFi 是否wifi
- openNetSetting 打开网络设置界面
- setWifiEnabled 设置wifi状态
- getWifiScanResults 获取wifi列表
- getScanResultsByBSSID 过滤扫描结果
- getWifiConnectionInfo 获取wifi连接信息
SystemUtils 系统工具
- getDefaultThreadPoolSize(...)获取默认线程池大小
- sendSMS(...) 调用系统发送短信
- forwardToDial(...) 跳转到拨号
- callPhone(...) 直接呼叫号码
- sendMail(...) 发邮件
- hideKeyBoard(...) 隐藏系统键盘
- isBackground(...) 判断当前应用程序是否后台运行
- isSleeping(...) 判断手机是否处理睡眠
- isRooted(...)是否root
- isRunningOnEmulator(...) 当前设备是否是模拟器
- goHome(...) 返回Home
- getDeviceUsableMemory(...) 获取设备可用空间
- gc(...) 清理后台进程和服务
- createDeskShortCut(...) 创建桌面快捷方式
- createShortcut(...) 创建快捷方式
- shareText(...) 分享文本
- shareFile(...) 分享文件(此方法是调用FileUtils.shareFile中的方式)
- getShareTargets(...) 获取可接受分享的应用
- getCurrentLanguage(...)获取当前系统的语言
- isGpsEnabled GPS(...)是否打开
- showSoftInputMethod(Context context, EditText editText) 显示软键盘
- closeSoftInputMethod(...) 关闭软键盘
- showSoftInput(Context context) 显示软键盘
- closeSoftInput(...) 关闭软键盘
FileUtil 文件工具类
- countLines(File file)获取文件的行数
- List Lines(File file)以列表的方式获取文件的所有行
- appendLine(File file, String str)在文件末尾追加一行
- cleanFile(File file) 快速清空一个超大的文件
- mimeType(String file)获取文件的Mime类型
- fileType(File file)获取文件的类型
- modifyTime(File file)获取文件最后的修改时间
- hash(File file)获取文件的Hash
- copy(...)复制文件
- copyDir(...)复制目录
- createPaths(String paths)创建多级目录
- deleteFile(File file)删除一个文件
- deleteFile(String path)删除文件
- deleteDir(File file)删除一个目录
- searchFile(File dirPath, String fileName)在指定的目录下搜寻文个文件
- writeFile(...)将内容写入文件
- getFileName(String filePath)获取文件名
- getFolderName(String filePath)获取路径名
- getFileSize(String path)获取文件大小
- isFileExist(String filePath)判断文件是否存在
- openVideo(Context mContext, String videoPath)打开video
VerificationUtil 验证工具类
-
matcherRealName(String value) 判断姓名格式
1.真实姓名可以是汉字,也可以是字母,但是不能两者都有,也不能包含任何符号和数字 2.如果是英文名,可以允许英文名字中出现空格 3.英文名的空格可以是多个,但是不能连续出现多个 4.汉字不能出现空格
-
matcherPhoneNum(String value) 判断手机号格式 (匹配11数字,并且13-19开头)
- matcherAccount(String value) 判断账号格式 (4-20位字符)
- matcherPassword(String value) 判断密码格式 (6-12位字母或数字)
- matcherPassword2(String value) 判断密码格式(6-12位字母或数字,必须同时包含字母和数字)
- matcherEmail(String value) 判断邮箱格式
- matcherIP(String value) 判断IP地址
- matcherUrl(String value) 判断URL (http,https,ftp)
- matcherVehicleNumber(String value) 判断中国民用车辆号牌
- matcherIdentityCard(String value) 判断身份证号码格式
- isNumeric(String value) 是否数值型
- testRegex(String regex, String inputValue) 是否匹配正则
- checkPostcode(String postcode) 匹配中国邮政编码