/**
* 整理者: www.loveps.vip
* QQ: 472212709
* 日期: 20190224
* 妈呀: 整理了一宿,现在是早上6:34
* 功能: 把某些常用的函数集中起来,方便调用
*
*
*/
// //导入模块
// function 导入常用函数模块(){
// var url='https://raw.githubusercontent.com/snailuncle/autojsCommonFunctions/master/autojsCommonFunctions.js'
// var r = http.get(url)
// log("code = " + r.statusCode);
// var html=r.body.bytes()
// files.writeBytes('./autojsCommonFunctions.js',html)
// var common=require('./autojsCommonFunctions.js')
// return common
// }
// var common=导入常用函数模块()
// log(common)
// for(let i=0;i<33;i++){
// common.闪光弹('fire in the hole')
// }
[
'点击控件',
'铃声',
'启动app',
'停止app',
'卸载app',
'卸载app没root',
'清除app数据',
'启动最新安装的app',
'停止最新安装的app',
'卸载最新安装的app',
'清除最新安装的app数据',
'静默安装app',
'获取app图标',
'控制app联网',
'获取手机上所有的app名字',
'点击输入框弹出输入法',
'使所有输入框点击时都能弹出输入法',
'失去焦点',
'是否root',
'获取指定应用的版本号',
'打开qq群名片',
'打开qq名片',
'qq强制聊天',
'字节变为gbk中文',
'最新安装的app',
'文件修改时间',
'文件大小',
'字符串变字节',
'日期加N天',
'md5',
'是横屏还是竖屏',
'截图',
'随机字符',
'获取时间',
'调整手机音量',
'微信扫一扫',
'公共字符串',
'网络',
'安卓intent源码',
'获取手机ip地理位置',
'替换系统文件',
'编辑距离',
'数组交集',
'提取包含关键字的app',
'获取页面所有文字',
'悬浮控制',
'闪光弹',
'打开开发者选项',
'气泡',
'随机字符串',
'wifi状态',
'开关飞行模式',
'上滑',
'获取deflate网页内容',
'获取gzip网页内容'
]
var common = {}
Array.prototype.intersect = function () {
var result = new Array();
var obj = {};
for (var i = 0; i < arguments.length; i++) {
for (var j = 0; j < arguments[i].length; j++) {
var str = arguments[i][j];
if (!obj[str]) {
obj[str] = 1;
} else {
obj[str]++;
if (obj[str] == arguments.length) {
result.push(str);
}
} //end else
} //end for j
} //end for i
return result;
}
//集合去掉重复
Array.prototype.uniquelize = function () {
var tmp = {},
ret = [];
for (var i = 0, j = this.length; i < j; i++) {
if (!tmp[this[i]]) {
tmp[this[i]] = 1;
ret.push(this[i]);
}
}
return ret;
}
//并集
Array.prototype.union = function () {
var arr = new Array();
var obj = {};
for (var i = 0; i < arguments.length; i++) {
for (var j = 0; j < arguments[i].length; j++) {
var str = arguments[i][j];
if (!obj[str]) {
obj[str] = 1;
arr.push(str);
}
} //end for j
} //end for i
return arr;
}
//2个集合的差集 在arr不存在
Array.prototype.minus = function (arr) {
var result = new Array();
var obj = {};
for (var i = 0; i < arr.length; i++) {
obj[arr[i]] = 1;
}
for (var j = 0; j < this.length; j++) {
if (!obj[this[j]]) {
obj[this[j]] = 1;
result.push(this[j]);
}
}
return result;
};
// console.log(Array.intersect(["1", "2", "3"], ["2", "3", "4", "5", "6"])); //[2,3]
// console.log([1, 2, 3, 2, 3, 4, 5, 6].uniquelize()); //[1,2,3,4,5,6]
// console.log(Array.union(["1", "2", "3"], ["2", "3", "4", "5", "6"], ["5", "6", "7", "8", "9"]))
// console.log(["2", "3", "4", "5", "6"].minus(["1", "2", "3"]));
common.点击控件 = function (view) {
log(arguments.callee.name + '开始')
log(view)
if (view) {
var x = view.bounds().centerX()
var y = view.bounds().centerY()
log('将要点击的坐标 %s,%s', x, y)
press(x, y, 1)
} else {
throw '传入点击控件中的view异常'
}
log(arguments.callee.name + '结束')
}
common.铃声 = function (铃声类型, 是否循环播放, 播放时长) {
var 铃声类型 = 铃声类型 || 0
var 播放时长 = 播放时长 || 6000
var 是否循环播放 = 是否循环播放 || false
if (是否循环播放) {
播放时长 = 666 * 1000
}
var 铃声选择结果 = android.media.RingtoneManager.TYPE_NOTIFICATION
switch (铃声类型) {
case 0:
铃声选择结果 = android.media.RingtoneManager.TYPE_RINGTONE
break;
case 1:
铃声选择结果 = android.media.RingtoneManager.TYPE_ALARM
break;
case 2:
铃声选择结果 = android.media.RingtoneManager.TYPE_ALL
break;
default:
break;
}
var mp = new android.media.MediaPlayer();
mp.setDataSource(context, android.media.RingtoneManager.getDefaultUri(铃声选择结果));
if (是否循环播放) mp.setLooping(true);
mp.prepare();
mp.start();
threads.start(function () {
sleep(播放时长)
if (mp.isPlaying()) {
mp.stop()
}
});
return mp;
}
common.启动app = function (appName) {
launchApp(appName)
}
common.停止app = function (appName) {
var packageName=getPackageName(appName);
shell('am force-stop ' + packageName,true);
}
common.卸载app = function (appName) {
var packageName=getPackageName(appName);
shell("pm uninstall "+packageName,true)
}
common.清除app数据 = function (appName) {
var packageName=getPackageName(appName);
shell('pm clear ' + packageName,true);
}
common.卸载最新安装的app=function (){
var pm = context.getPackageManager()
var appList=pm.getInstalledApplications(0)
var appInfoList=[]
for(let i=0;i<appList.size();i++){
var app=appList.get(i)
var appInfo={
appName:app.loadLabel(pm),
packageName:app.packageName,
isSystemApp:app.isSystemApp(),
firstInstallTime:pm.getPackageInfo(app.packageName,0).firstInstallTime
}
appInfoList.push(appInfo)
}
appInfoList.sort((a,b)=>{
return b.firstInstallTime-a.firstInstallTime
})
log('最新安装的app是=%j',appInfoList[0])
var packageName=appInfoList[0].packageName
shell("pm uninstall "+packageName,true)
return appInfoList[0].appName
}
common.清除最新安装的app数据=function (){
var pm = context.getPackageManager()
var appList=pm.getInstalledApplications(0)
var appInfoList=[]
for(let i=0;i<appList.size();i++){
var app=appList.get(i)
var appInfo={
appName:app.loadLabel(pm),
packageName:app.packageName,
isSystemApp:app.isSystemApp(),
firstInstallTime:pm.getPackageInfo(app.packageName,0).firstInstallTime
}
appInfoList.push(appInfo)
}
appInfoList.sort((a,b)=>{
return b.firstInstallTime-a.firstInstallTime
})
log('最新安装的app是=%j',appInfoList[0])
var packageName=appInfoList[0].packageName
shell('pm clear ' + packageName,true);
return appInfoList[0].appName
}
common.停止最新安装的app=function (){
var pm = context.getPackageManager()
var appList=pm.getInstalledApplications(0)
var appInfoList=[]
for(let i=0;i<appList.size();i++){
var app=appList.get(i)
var appInfo={
appName:app.loadLabel(pm),
packageName:app.packageName,
isSystemApp:app.isSystemApp(),
firstInstallTime:pm.getPackageInfo(app.packageName,0