AndroidTools
github地址:AndroidTools (喜欢这个工具的,可以star一下,以后方便找到,Happy coding!)
English README
关于AndroidTools
这个项目包含了我们Android开发中常用的工具类。集成这个项目后,我们自己就不用写各种Utils类了,这将会简化你的代码,节省开发者的宝贵时间,让我们把注意力转到最重要的业务上来,使我们的开发变得更容易。Happy coding!
如何使用AndroidTools
1.在根目录的build.gradle文件中repositories的末尾添加如下:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
2.在你的app/build.gradle文件中添加依赖:
dependencies {
compile 'com.github.mazouri:AndroidTools:1.0'
}
3.在你的application类中初始化AndroidTools:
public class YourApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//必须调用init方法
Tools.init(this);
//可选 如果你想看到AndroidTools内部打印的log, 要加上这一行
Tools.openToolsLog(true);
}
}
4.然后你可以像下面这样使用【Tools.工具类型.具体方法】:
// 日志工具,此方法为指定tag打印log
Tools.log().tag(App.class.getSimpleName()).d("print log with tag()");
// 字符串工具,此方法为 判断字符串是否为空
Tools.string().isEmpty(App.class.getSimpleName());
// 网络工具类,此方法为 判断是否连接wifi
Tools.network().isWifiConnected(this);
Screenshots
device_info.gif
归类总结,方便大家查阅
你也可以通过docs进行查阅.
Tools
方法 |
描述 |
Tools.app() |
获取Application, 即Context |
All tools list: AppTool, ApkTool, InputMethodTool, IntentTool, ProcessTool, SnackbarTool, ToastTool, ConstantsTool, ConvertTool, DeviceTool, NetworkTool, BitmapTool, CloseTool, ExternalStorageTool, FileTool, SPTool, LogTool, RegexTool, SecureTool, ShellTool, StringTool, TimeTool, UnitTool.
AppTool
//usage examples:
Tools.appTool().getAllRunningService(Tools.app()); //获取所有运行的服务
Tools.appTool().startService(Tools.app(), MockService.class); //启动服务
方法 |
描述 |
getAllRunningService |
获取所有运行的服务 |
startService |
启动服务 |
stopService |
停止服务 |
bindService |
绑定服务 |
unbindService |
解绑服务 |
getAppVersionCode |
获取应用版本号 |
getLauncherActivity |
获取launcher activity |
getPackageName |
获取应用包名 |
getTopActivityName |
获取顶层activity名称 |
getVersionNameFromPackage |
获取应用版本名称 |
getAppVersionCode |
获取应用版本号 |
isActivityExists |
判断是否存在Activity |
isAppForeground |
判断App是否处于前台 |
isProessRunning |
进程是否运行 |
isProessRunning |
进程是否运行 |
isRunningForeground |
判断应用是否在前台运行 |
isServiceRunning |
服务是否运行 |
launchActivity |
打开Activity |
ApkTool
//usage examples:
Tools.apk().getAppDetailsSettings(Tools.app()); // 获取App具体设置
方法 |
描述 |
getAppDetailsSettings |
获取App具体设置 |
getAppIcon |
获取App图标 |
getAppName |
获取App名称 |
getAppPath |
获取App路径 |
getAppSignature |
获取App签名 |
getAppSignatureSHA1 |
获取应用签名的的SHA1值 |
getChannelFromApk |
从apk中获取版本信息 |
installApp |
安装App |
installAppSilent |
静默安装App |
uninstallAppSilent |
静默卸载App |
isAppDebug |
判断App是否是Debug版本 |
isAppInstall |
检查手机上是否安装了指定的软件 |
isAppRoot |
判断App是否有root权限 |
isSystemApp |
判断App是否是系统应用 |
launchApp |
打开App |
uninstallApp |
卸载App |
InputMethodTool
//usage examples:
Tools.inputMethod().isActiveSoftInput(Tools.app()); // 判断输入法是否处于激活状态
方法 |
描述 |
hideInputSoftFromWindowMethod |
隐藏键盘 :强制隐藏 |
isActiveSoftInput |
判断输入负是否处于激活状态 |
showInputSoftFromWindowMethod |
显示输入法 |
ProcessTool
//usage examples:
Tools.process().getAllBackgroundProcesses(); // 获取后台服务进程
方法 |
描述 |
getAllBackgroundProcesses |
获取所有的后台服务进程 |
getForegroundProcessName |
获取前台线程包名 |
killAllBackgroundProcesses |
杀死所有的后台服务进程 |
killBackgroundProcesses |
杀死后台服务进程 |
IntentTool
//usage examples:
Tools.intent().getInstallAppIntent("/sdcard/mock.apk"); // 获取安装App的意图
方法 |
描述 |
getAppDetailsSettingsIntent |
获取App具体设置的意图 |
getCaptureIntent |
获取拍照的意图 |
getComponentIntent |
获取其他应用组件的意图 |
getInstallAppIntent |
获取安装App的意图 |
getLaunchAppIntent |
获取打开App的意图 |
getShareImageIntent |
获取分享图片的意图 |
getShareTextIntent |
获取分享文本的意图 |
getShutdownIntent |
获取分享文本的意图 |
getUninstallAppIntent |
获取分享文本的意图 |
SnackbarTool
//usage examples:
Tools.snackbar().dismissSnackbar()(); // 取消snackbar显示
方法 |
描述 |
addView |
为snackbar添加布局 在show...Snackbar之后调用 |
dismissSnackbar |
取消snackbar显示 |
showIndefiniteSnackbar |
显示自定义时长snackbar |
showLongSnackbar |
显示长时snackbar |
showShortSnackbar |
显示短时snackbar |
ProcessTool
//usage examples:
Tools.process().getAllBackgroundProcesses(); // 获取后台服务进程
方法 |
描述 |
getAllBackgroundProcesses |
获取后台服务进程 |
ToastTool
//usage examples:
Tools.toast().showToast(Toast.app, "show toast"); // 获取后台服务进程
方法 |
描述 |
showToast |
显示Short型Toast |
showToastLong |
显示Long型Toast |
ConvertTool
//usage examples:
Tools.convert().dp2px(50f); // dp转px
方法 |
描述 |
bitmap2Bytes |
bitmap转byteArr |
bitmap2Drawable |
bitmap转drawable |
bits2Bytes |
bits转bytes |
byte2FitMemorySize |
字节数转合适内存大小 保留3位小数 |
byte2MemorySize |
字节数转以unit为单位的内存大小 |
bytes2Bitmap |
byteArr转bitmap |
bytes2Bits |
bytes转bits |
bytes2Chars |
byteArr转charArr |
bytes2Drawable |
byteArr转drawable |
bytes2HexString |
byteArr转hexString |
bytes2InputStream |
byteArr转inputStream |
bytes2OutputStream |
outputStream转byteArr |
dp2px |
dp转px |
px2dp |
px转dp |
px2sp |
px转sp |
sp2px |
sp转px |
drawable2Bitmap |
drawable转bitmap |
drawable2Bytes |
drawable转byteArr |
hexString2Bytes |
hexString转byteArr |
input2OutputStream |
inputStream转outputStream |
inputStream2Bytes |
inputStream转byteArr |
inputStream2String |
inputStream转string按编码 |
memorySize2Byte |
以unit为单位的内存大小转字节数 |
millis2FitTimeSpan |
毫秒时间戳转合适时间长度 |
millis2TimeSpan |
毫秒时间戳转以unit为单位的时间长度 |
output2InputStream |
outputStream转inputStream |
outputStream2Bytes |
outputStream转byteArr |
outputStream2String |
outputStream转string按编码 |
string2InputStream |
string转inputStream按编码 |
string2OutputStream |
string转outputStream按编码 |
timeSpan2Millis |
以unit为单位的时间长度转毫秒时间戳 |
view2Bitmap |
view转Bitmap |
DeviceTool
//usage examples:
Tools.device().getAllSDCardSize(); // 获取SD大小
方法 |
描述 |
coptyToClipBoard |
复制到剪切板 |
existSDCard |
判断SDCard是否可用 |
getAllSDCardSize |
获取SD大小 |
getAppPackageNamelist |
获取非系统应用包名 |
getAvailaleSDCardSize |
获取可用空间大小 |
getIMEI |
获取IMEI |
getLatestCameraPicture |
获取最后一次拍照的图片 |
getLocalIPAddress |
获取本机IP地址 |
getMac |
获取MAC地址 |
getNavigationBarHeight |
获取navigationbar高度 |
getScreenPix |
获取手机大小(分辨率) |
getStatusBarHeight |
获取statusbar高度 |
getTopBarHeight |
获取状态栏高度+标题栏(ActionBar)高度 |
getUDID |
获取UDID |
goHome |
主动回到Home,后台运行 |
isOnline |
是否有网络 |
isSoftKeyAvail |
判断是否有软控制键 |
vibrate |
震动 |
NetworkTool
//usage examples:
Tools.network().getDataEnabled()(); // 判断移动数据是否打开
方法 |
描述 |
getDataEnabled |
判断移动数据是否打开 |
getDomainAddress |
获取域名ip地址 |
getIPAddress |
获取IP地址 |
getNetType |
判断手机连接的网络类型(wifi,2G,3G,4G) |
getNetworkOperatorName |
获取网络运营商名称 如中国移动、中国联通、中国电信 |
is4G |
判断网络是否是4G |
isNetworkConnected |
判断是否连接网络 |
isWifiConnected |
判断是否连接wifi |
openWirelessSettings |
打开网络设置界面 3.0以下打开设置界面 |
setDataEnabled |
打开或关闭移动数据 |
BitmapTool
//usage examples:
Tools.bitmap().toRoundCorner(); // 转化成圆bitmap
方法 |
描述 |
bitmapToByte |
Bitmap转bytes |
bitmapToDrawable |
Bitmap转Drawable |
bitmapToString |
bitmap转换成Base64编码String |
byteToBitmap |
bytes转Bitmap |
compressBimap |
质量压缩图片-压缩在maxSize以内 |
compressBitmap |
等比压缩(宽高等比缩放) |
compressBitmap |
压缩bitmp到目标大小(质量压缩) |
compressBitmap |
质量压缩图片-压缩在1M以内 |
compressBitmap |
质量压缩图片 |
compressBitmap |
图片缩放-尺寸缩放 |
compressBitmapBig |
图片缩放-尺寸缩放 |
compressBitmapSmall |
图片缩放-尺寸缩放 |
compressImage |
质量压缩图片-压缩在1M以内 |
compressImage |
质量压缩图片 |
compressImage |
质量压缩图片-压缩在maxSize以内 |
createBitmapThumbnail |
生成bitmap缩略图 |
drawableToBitmap |
drawable转Bitmap |
getDegress |
根据path, 获取图片旋转角度 |
rotateBitmap |
旋转bitmap |
saveBitmap |
保存Bitmap到文件 |
scaleImage |
缩放image |
scaleImageTo |
缩放image到指定高、宽 |
CloseTool
//usage examples:
Tools.close().closeIO(in); // 关闭IO
方法 |
描述 |
closeIO |
关闭IO |
closeIOQuietly |
安静关闭IO |
ExternalStorageTool
//usage examples:
Tools.externalStorage().isAvailable(); // sdcard是否可用
方法 |
描述 |
getAllStorageLocations |
获取所有可用sdcard |
getSdCardPath |
获取sdcard路径 |
isAvailable |
sdcard是否可用 |
isWritable |
sdcard是否可写 |
FileTool
//usage examples:
Tools.file().getFileByPath("/sdcard/mock.txt"); // 根据文件路径获取文件
方法 |
描述 |
copyDir |
复制目录 |
copyFile |
复制文件 |
createFileByDeleteOldFile |
判断文件是否存在,存在则在创建之前删除 |
createOrExistsDir |
判断目录是否存在,不存在则判断是否创建成功 |
createOrExistsFile |
判断文件是否存在,不存在则判断是否创建成功 |
deleteDir |
删除目录 |
deleteFile |
删除文件 |
deleteFilesInDir |
删除目录下的所有文件 |
getDirLength |
获取目录长度 |
getDirName |
获取全路径中的最长目录 |
getFileByPath |
根据文件路径获取文件 |
getFileCharsetSimple |
简单获取文件编码格式 |
getFileExtension |
获取全路径中的文件拓展名 |
getFileLastModified |
获取文件最后修改的毫秒时间戳 |
getFileLength |
获取文件长度 |
getFileLines |
获取文件行数 |
getFileMD5 |
获取文件的MD5校验码 |
getFileMD5ToString |
获取文件的MD5校验码 |
getFileName |
获取全路径中的文件名 |
getFileNameNoExtension |
获取全路径中的不带拓展名的文件名 |
getFileSize |
获取文件大小 |
isDir |
判断是否是目录 |
isFile |
判断是否是文件 |
isFileExists |
判断文件是否存在 |
listFilesInDir |
获取目录下所有文件包括子目录 |
listFilesInDirWithFilter |
获取目录下所有符合filter的文件包括子目录 |
moveDir |
移动目录 |
moveFile |
移动文件 |
readFile2Bytes |
读取文件到字符数组中 |
readFile2List |
指定编码按行读取文件到链表中 |
readFile2String |
指定编码按行读取文件到字符串中 |
rename |
重命名文件 |
searchFileInDir |
获取目录下指定文件名的文件包括子目录 大小写忽略 |
writeFileFromIS |
将输入流写入文件 |
writeFileFromString |
将字符串写入文件 |
SPTool
//usage examples:
Tools.sp().saveShareBoolean("mock_key", true); // 存储moke_key的值到shared_preference的文件
方法 |
描述 |
name |
设置SharedPreference的xml文件名,默认为AndroidTools.xml |
saveShareBoolean |
存储布尔值 |
saveShareInt |
存储整型值 |
saveShareString |
存储字符串 |
LogTool
//three kinds of LogTool usage:
Tools.log().d("print log with default generated tag"); //默认tag ==> 打印结果为【类名.方法名[第几行]】:App.onCreate(line:20)
Tools.log().tag(App.class.getSimpleName()).d("print log with tag()");//指定tag
Tools.log().d(App.class.getSimpleName(), "print log with set tag");//指定tag
方法 |
描述 |
setDebug |
设置是否打印log |
tag |
设置tag |
|
|
|
RegexTool
//usage examples:
Tools.regex().isEmail("wangdd_bj@163.com"); // 获取后台服务进程
方法 |
描述 |
isUserName |
是否为用户名 |
isPassword |
是否为密码 |
isMobile |
是否为手机号 |
isEmail |
是否为邮箱 |
isChinese |
是否为中文 |
isIDCard |
是否为身份证号(中国) |
isUrl |
是否为URL |
isIPAddress |
是否为IP地址 |
isPlateNum |
是否为车牌号(中国) |
isVehicleVin |
是否为车辆vin码 |
ShellTool
//usage examples:
Tools.shell().execCmd("ls /sdcard/", ""); // 获取后台服务进程
方法 |
描述 |
execCmd |
是否是在root下执行命令 |
StringTool
//usage examples:
Tools.string().isEmpty(); // 是否为null或者长度为0或者都是空格
方法 |
描述 |
isEmpty |
是否为null或者长度为0或者都是空格 |
isBlank |
是否为null或者长度为0或者都是空格 |
length |
字符串长度,如果为null,返回0 |
nullStrToEmpty |
将空对象转化为空字符串 |
capitalizeFirstLetter |
首字母大写 |
utf8Encode |
编码为utf-8 |
fullWidthToHalfWidth |
全角转半角 |
halfWidthToFullWidth |
半角转全角 |
sqliteEscape |
数据库字符转义 |
TimeTool
//usage examples:
Tools.time().millis2String(System.currentTimeMillis()); // 将时间戳转为时间字符串
方法 |
描述 |
date2Millis |
将Date类型转为时间戳 |
date2String |
将Date类型转为时间字符串 |
getChineseZodiac |
获取生肖 |
getFitTimeSpan |
获取合适型两个时间差 |
getFitTimeSpanByNow |
获取合适型与当前时间的差 |
getFriendlyTimeSpanByNow |
获取友好型与当前时间的差 |
getNowTimeDate |
获取当前Date |
getNowTimeMills |
获取当前毫秒时间戳 |
getNowTimeString |
获取当前时间字符串 |
getTimeSpan |
获取两个时间差 |
getTimeSpanByNow |
获取与当前时间的差 |
getWeek |
获取星期 |
getWeekIndex |
获取星期 注意:周日的Index才是1,周六为7 |
getWeekOfMonth |
获取月份中的第几周 注意:国外周日才是新的一周的开始 |
getWeekOfYear |
获取年份中的第几周 注意:国外周日才是新的一周的开始 |
getZodiac |
获取星座 |
isLeapYear |
判断是否闰年 |
isSameDay |
判断是否同一天 |
millis2Date |
将时间戳转为Date类型 |
millis2String |
将时间戳转为时间字符串 |
string2Date |
将时间字符串转为Date类型 |
string2Millis |
将时间字符串转为时间戳 |
UnitTool
//usage examples:
Tools.unit().c2f(27f); // 摄氏度转华氏度
方法 |
描述 |
c2f |
摄氏度转华氏度 |
f2c |
华氏度转摄氏度 |
km2mi |
km转mile |
mi2km |
mile转km |
l2gal |
升转加仑 |
l100km2mpg |
百公里油耗转mpg |
mpg2l100km |
mpg转百公里油耗 |
SecureTool
方法 |
描述 |
encryptMD2ToString |
MD2加密 |
encryptMD5ToString |
MD5加密 |
encryptMD5File2String |
MD5加密文件 |
encryptSHA1ToString |
SHA1加密 |
encryptSHA224ToString |
SHA224加密 |
encryptSHA256ToString |
SHA256加密 |
encryptSHA384ToString |
SHA384加密 |
encryptSHA512ToString |
SHA512加密 |
hashTemplate |
hash加密模板 |
encryptHmacMD5ToString |
HmacMD5加密 |
encryptHmacSHA1ToString |
HmacSHA1加密 |
encryptDES2Base64 |
DES加密后转为Base64编码 |
encryptDES2HexString |
DES加密后转为16进制 |
encryptDES |
DES加密 |
decryptBase64DES |
DES解密Base64编码密文 |
decryptHexStringDES |
DES解密16进制密文 |
decryptDES |
DES解密 |
encrypt3DES2Base64 |
3DES加密后转为Base64编码 |
encrypt3DES2HexString |
3DES加密后转为16进制 |
encrypt3DES |
3DES加密 |
decrypt3DES |
3DES解密 |
encryptAES2Base64 |
AES加密后转为Base64编码 |
encryptAES |
AES加密 |
decryptAES |
AES解密 |
github地址:AndroidTools (喜欢这个工具的,可以star一下,以后方便找到,Happy coding!)
更多更新请持续关注AndroidTools
网友评论