auto js 的安装及使用
2021-05-26 本文已影响0人
王镇_ee87
注意
必须安卓7版本及以上,版本5-6的系统会遇到意想不到的bug 跳转
- 手机端的安装预配置
下载链接: https://hyb1996.github.io/AutoJs-Docs/#/
安装以后 打开无障碍服务,然后连接电脑
image.png
这里输入同一网络下的电脑ip
- 电脑下载vscode 并安装autojs插件
image.png
注意
连接以前一定要开启Autojs服务 Ctrl + Shift + P > Autojs start server - 新建js代码,然后 Ctrl + Shift + P > autojs Run 代码就会在手机上执行。
常用命令
getClip() 获取手机粘贴板
toast("hello"); //悬浮框
launchApp("QQ"); //打开QQ : 直接打开,手机应用的名称大小写敏感
launch("com.tencent.mobileqq"); //注意: 用包名,打开软件
back(); //返回
// 使用 应用名称,获取应用的包名.
var PackageName;
PackageName=getPackageName("QQ");
log(PackageName);
//使用 包名,获取 应用名称.
var AppName;
AppName = getAppName("com.tencent.mobileqq");
log(AppName);
单击事件(坐标)
click("x", "y");
单击事件(元素)
id("element_id").findOne().click();
//打开应用的详情页面(用包名打开)
app.openAppsetting("com.tencent.mobileqq");
获取文本的坐标位置
var str = "";
var x = text(str).findOne().bounds().left;// 首次出现的x坐标
var y = text(str).findOne().bounds().top;// 首次出现的y坐标
子字符串判断
function judge_include_str(str, sub_str){
if(("".equals(str)) || ("".equals(sub_str))){
return -1;
}
return str.indexOf(sub_str, 0);
}
当前页面显示内容
function screen_content(){
var fas = "";
var fsfan = className("TextView").find();
for(var i = 0; i < fsfan.length; i++){
var ftxt = fsfan[i].text();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
fsfan = className("Button").find();
for(i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].text();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
fsfan = className("android.view.View").find();
for(i = 0; i < fsfan.length; i++){
ftxt = fsfan[i].text();
if(ftxt != ""){
if(fas == ""){
fas = ftxt;
}else{
fas = fas +"_-_"+ ftxt;
}
}
}
return fas;
}
睡眠函数 1000 = 1秒
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}
当前页面的内容判断
function judge_page_include_str(sub_str){
str = screen_content();
if(("".equals(str)) || ("".equals(sub_str))){
return false;
}
var ind = str.indexOf(sub_str, 0)
if(ind>0){
return true;
}else{
return false;
}
}
//此代码由飞云脚本圈整理提供(www.feiyunjs.com)
function bezier_curves(cp, t) {
cx = 3.0 * (cp[1].x - cp[0].x);
bx = 3.0 * (cp[2].x - cp[1].x) - cx;
ax = cp[3].x - cp[0].x - cx - bx;
cy = 3.0 * (cp[1].y - cp[0].y);
by = 3.0 * (cp[2].y - cp[1].y) - cy;
ay = cp[3].y - cp[0].y - cy - by;
tSquared = t * t;
tCubed = tSquared * t;
result = {
"x": 0,
"y": 0
};
result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
return result;
};
//仿真随机带曲线滑动
//qx, qy, zx, zy, time 代表起点x,起点y,终点x,终点y,过程耗时单位毫秒
function sml_move(qx, qy, zx, zy, time) {
var xxy = [time];
var point = [];
var dx0 = {
"x": qx,
"y": qy
};
var dx1 = {
"x": random(qx - 100, qx + 100),
"y": random(qy , qy + 50)
};
var dx2 = {
"x": random(zx - 100, zx + 100),
"y": random(zy , zy + 50),
};
var dx3 = {
"x": zx,
"y": zy
};
for (var i = 0; i < 4; i++) {
eval("point.push(dx" + i + ")");
};
log(point[3].x)
for (let i = 0; i < 1; i += 0.08) {
xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]
xxy.push(xxyy);
}
log(xxy);
gesture.apply(null, xxy);
};
while (1<5)
{
sleep(4000)
sml_move(530, 2350, 440, 450, 1470); // 起始点_X , 起始点_Y,终点_X,终点_Y,滑动需要的时间 1.47秒
}
//打开卸载APP对话框
app.uninstall("com.tencent.mobileqq");