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类里面重载方法比较多 8. str2Date(...) 将时间字符串转换成Date 9. date2Str(...) 将Date转换成时间字符串 10. str2Calendar(...) 将时间字符串转换成Calendar 11. getCurDateStr(...) 获得当前日期的字符串 12. getMillon(...) 获得当前日期的字符串,精确到秒 13. strAddOneDay(...) 实现加一天的功能,返回的格式为String 14. strDecreaseOneDay(...) 实现减一天的功能,返回的格式为String 15. getLastdayDate(...) 获取昨天 Data 16. getNextdayDate(...) 获取明天Date 17. 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) 匹配**邮政编码