【android免root脚本制作】auto.js语法的认识和应用

17 篇文章 0 订阅
订阅专栏
6 篇文章 1 订阅
订阅专栏

        经过基础篇和 收金果的小小实践,我们对脚本有了粗略的认识,相信也产生了些进一步学习乃至掌握的兴趣,毕竟生活中很多时候也许就用上啦!远的不说就比如昨天618的抢券啊,公司上下班小程序打卡啊,诸如此类……接下来就针对语法逐步学习,为了方便非IT专业人士的理解学习,所以尽量的大白话讲述。

一、变量的使用

变量顾名思义,就是一个可以改变的量。说的简单点,可以理解为,字母表示值,但是这个值有很多种,不一定是数字,小数,还有很多其他类型,比如说字符,字符串,再大点,各种对象,手机电脑,都可以保存在一个变量里,但是各种对象的数据类型,可能包含着很多内容,并且还有函数。

1.变量的创建    -   var        

var创建变量,是js语言中最简单的创建方法。语法是:

var 变量名; 

比如我们要创建一个名字为a的变量,语句就是var a;这时就创建出来一个空的变量,如果输出他的值,那就是null(空),也可以在创建的同时给变量写上初始值,语法是:

var 变量名=值;

比如我们创建一个值为5,名字叫b的变量,语句就是var b=5;使用这句话之后,系统会创建一个叫b的变量并且给他赋值,值为5,这个变量数据类型就是数字(Number)类型。

关于变量名,也有一定要求,主要就是不能以数字开头,变量名不可重复,不能和运行关键词while,for,if,try等等的关键字相同。中文变量名在js是可以用,但是不推荐使用。        

拓展:在创建的时候,还有另一种情况我们需要先创建一个变量,但是在这时,我们还不知道这个变量的数值或者我们要定义的这个变量根本没有数值,但一定要规定数据类型。这时我们要用到构造函数,这是很多类里面都有的功能,创建的语法是:

var 变量名=new 数据类型(传入值);   

我们先不说自己写的类,如何写构造函数,先看看怎么使用别人类的构造函数,比如说我们要创建一个数据类型为数组的变量(数组就是一个序列,里面能放很多相同数据类型的变量),但不知道里面的内容,这时候就可以用数组的构造函数new Array();比如语句是var d=new Array();这时就创建了一个数据类型为数组的变量。

这时细心的朋友应该发现了,上面的语法里括号里明明写需要写上传入值的为什么这边语句里传入值是空的呢?这种构造函数,在创建时候不需要传入任何值,被叫做无参构造函数,与之相对的,还有有参构造函数,比如这个数组,其实有两种构造函数,还有一种是需要传入创建出来的数组的长度的,比如我要创建一个长度(整数类型)为5的数组(数组里面能放5个变量)名字叫e的数组,语句是var e=new Array(5);  当一个类有多个无参构造函数时,在创建的时候系统会根据你传入的值的个数和类型选择对应的构造函数。

2.基本数据类型        

虽然数据类型有很多,每个人都能自己写数据类型。但是基本数据类型实际上不多,主要有 数字型(Number),布尔型(Boolean),字符串型(String),其他还有 不明(Undefined),空(null)等。Number不用我多说 就是数字,布尔型就是对与否。true和false只有两个值,字符串就是我们说的文字abc之类的,但是表示字符串的时候必须要注意用英文输入法的双引号套住,比如要创建一个值为abc的字符串变量,语句是var f="abc";但如果你写成了var f=abc;这时,系统运行到这部时就会去寻找名字叫做abc的变量,没有找到就会抛出变量未找到的报错信息,导致脚本停止。

3.变量赋值 ——     赋值运算符 =

变量的值,是可变的那么如何修改变量的值呢,这就要用到赋值运算符-等于号。这个符号的作用就是把等号前的变量的值设置为等号后的值,比如按顺序三行代码

var a=5;
a=0;
log(a);

这时打印变量,输出的信息是0,虽然原来创建了值为5的变量,但后来将变量的值修改成0了,所以最终输出出来还是0。

4.变量间的运算

①字符串,字符串的拼接用加号进行运算

用变量也是一样的。

数字间加减乘除运算,乘号用*,除号用/

③布尔值运算         

非-感叹号,感叹号的作用是布尔值取反,比如本来为true的数据类型,用了!值为false,本来为false的变为true。        

 与-    &&,连接两个布尔值,如果两个值都为true,那么返回true,否则返回false         

任意-    ||,连接两个布尔值,如果两个中有一个为true,那么整体返回true,否则返回false     举个例子:

以上都是关于返回相同数据类型之间的计算,还有返回不同数据类型间的,比如两个数字相同则返回true不同返回false,就是返回不同数据类型间的计算,关系运算符。    

①判断是否相等,所有数据类型都可以使用        

双等于号==,判断两个变量是否相同,连接两个变量,如果左右两个变量完全相同,则整体返回true,不同返回false。        

感叹号等于号!=,判断两个变量是否不同,连接两个变量,如果左右两个变量,不同,返回true,相同则返回false。     

举个例子:

②判断数字大小,只用于连接两个数字,返回布尔值         大于:>    小于:<    大于等于:>=    小于等于:<=
 

5.信息输出

便于调试测试结果,一般我们打日志查看,特别是异常情况时。在Auto.js中信息输出有很多方式, 比如console.log();这个功能,在Auto.js中封装成了全局函数,所以可以直接用语法:

log(要输出的内容);

这是最常见的一种输出方式,打印黑字到日志,一般用来输出运行的普通信息。可以是任何类型的,但终究是用文字的形式表示出来。 日志打开方法:脚本编辑界面->右上角三个点->日志 我们来测试一下代码log("大富翁");的打印信息吧

                                                            

点击运行,然后点击右上角三个点->日志:

                                                            

日志里的输出功能还有很多:

console.verbose("要输出的内容");颜色为灰色,一般用来打印不重要内容。

console.info("要输出的内容");颜色为绿色,一般用来打印运行信息。

console.warn("要输出的内容");颜色为蓝色,一般用来打印运行警报。

console.error("要输出的内容");颜色为红色,一般用来打印运行报错信息。

除了在日志里打印输出,当然还有其他方法。

气泡输出:语法:

toast("要输出内容");

对话框输出:语法:

alert("标题","内容");

6.代码注释

要是程序写长了,不要说别人,自己看,过久了都很难看懂,这时就需要在代码上标注注释,注释写详细,是写程序的一种好习惯。系统运行代码时碰到注释会自动跳过,注释只是给写代码的人看的。那么如何写注释呢。     

行级注释 :

// 注释内容

行级注释,从双斜杠开始这一行后面的,全为注释。    

块级注释:

/*注释内容*/

跨行注释,从斜杠星号一直到星号斜杠中的内容,无论多少行,都判断为注释内容。

因为过于简单,读者自己写个范例实践下就好。

 

二、判断语句的使用

1.基本if语句        

这里方法要用到if语句,基本就是

if(判断内容){运行的代码块}

一般用大括号括起来的内容,叫做一个代码块,用于放代码。判断内容是否符合,里面肯定是一个布尔值,如果true则运行后方的代码,false则不运行。举个例子:

2.if else语句        

我们需要判断一个内容如果是则运行一向内容,如果不是,运行另一向内容。这个时候就要用到if else语句。语法:

if(判断内容){true的运行代码}else{false的运行代码}

非常简单,就和下一个的例子一起看吧。

3.if-else if-else语句        

语法:

if(第一个判断内容){第一个执行代码}else if(第二个判断内容){第二个执行代码}esle{其他情况的执行代码}

运行时系统会判断第一个内容,对就执行第一个执行代码,然后结束整个if循环,不对则继续判断后面的else if后的判断内容,还是对就执行第二个,不对继续往下,以上都不对,就运行else。在第一个if和最后一个else中间的else if可以无限加,只要判断对就执行对应的执行语句,并结束整个else语句,如果不对就继续往下,一直到else。举个例子

4.switch语句        

判断一个变量,是否等于下面的值,是则运行对应的代码。语法:

举个例子:

三、循环运行的使用

脚本中通过循环可以大大减少代码,还可以完成很多本来做不到的事情。这个功能是写脚本必须学会的。循环分为好多种,比较常见的有while,for循环等。下面我们就来挨个介绍吧。

1.while循环        

while循环是最基本的一种循环用法,也是最简单的。语法是

while(判断内容){运行内容}   

运行内容在循环中,也叫循环体。判断内容如果成立,就运行循环体的内容。判断内容是布尔值,比如while(true){循环体}这样就会无限运行循环体里的内容,因为判断内容一直为true没有变过。        

比如写个示例,我要循环打印字母a到日志,那么代码为

while(true){
    log("a");
}

运行后就可以看到日志内在疯狂的打印出字母a了。如果不想运行这么快,可以在每次log之后加一个sleep进行延时,比如

while(true){
    log("a");
    sleep(1000);
}

这样就每秒打印一次a字母了。        

只是限定死循环,再实际中完全没有作用因为这样就直接进入循环运行后,下面的代码完全运行不到了。我们现在一起想,如何做出循环限定次数,我们想想要达到定量循环,那就是,达到第几遍运行时,要让判断内容不成立,这样运行到那一遍时,就运行终止了。那我们可以设置一个变量,每循环一次都增加1,然后判断是否到那和值。这个代码的具体实现方法如下:

每次运行,第七行会把i的值修改成比i大1的值,也可以用i++来直接代替该功能。当运行到第9遍时,变量i从9变到10,然后判断出10并不小于10,所以停止这次循环。另注:这一个循环里面内容共循环10次,i分别从0到9。但是每次做定量循环如此常用的功能都要这么写非常麻烦,所以就有了一种新功能for循环,详情请看下面的内容。

2.for循环的基本使用        

 for循环几乎可以说是为定量循环功能量身定做的一个功能。基本语法为

for(语句1;判断内容;语句2){循环体}   

这个语句在运行的时候系统会先运行语句1,注意,语句1只运行这一遍,不会循环,然后判断内容如果为true,就运行循环体,循环体运行完后,运行语句2,语句2运行完后就,会到判断如果为true,继续进行循环。        

直接说可能有点抽象,我们举个例子理解这个功能

查看日志结果:

3.循环语句的默认值        

for循环和while不一样,他另一个方便的地方在于他有默认值。如果while里面判断内容不写肯定会报错,而for不会。for循环语句第一个如果空着,默认不执行,第二个不输入,默认为true,即无限循环,第三个空着也默认不执行。所以for(;;){循环体内容}也可以做无限循环使用。虽然可以省略语句内容,但是for循环后面括号里的两个分号,必须不能省略,不然也会报错

4.break和continue对循环操作的使用         

在循环中,还有另一个重要的功能就是break和continue,有了这两个功能后,循环将会更加方便,和实用。        

break的作用是终止整个循环,运行了这段代码直接停止整个循环,然后当然就去运行之后的内容了。比如,我们还可以用另一个方法做定量循环:

大家可以运行后查看日志看看输出结果。当判断循环变量加到10后就运行if语句里的break,停止循环,不是10当然就不运行。当然,运行了break之后,就算当前那次循环,在break后面的语句也不会运行了。

continue的作用是结束本次循环,进入下次循环,运行了这个代码后,当前循环continue后面的代码内容都不会运行,直接进入下一次循环。我们直接来看示例:

我们通过示例结果输出可以看到,他只打印了continue前,为什么没有打印continue后的内容呢。他开始循环,运行打印continue前,然后运行到了continue,这时,进入了下一次循环,并没有运行到后面的内容,所以又运行了输出continue前,然后再进入下一次循环,等待。看了这个示例,应该能理解用法咯。

5.循环内变量的生命周期        

在循环内也可以创建变量,但是我们要是循环运行创建变量,会不会因为设置的名字相同的变量,导致报错呢,答案是不会的,因为在循环中创建的变量,当这次循环结束,系统会自动销毁这个变量。当然,因为自动销毁,下一次循环也没法调用上次循环里创建的变量。而在循环结束后,也没有办法获取循环中的变量。那我们,如果要在循环外获取到循环内处理的变量怎么办呢,那只有在循环前创建之后要获取的变量,这一个办法。使用循环前,要记得根据需求,提前设置变量咯。ps:for循环中的语句1中创建的变量是在循环前运行的,所以可以在循环后直接调用。

6.do while循环        

这个循环,是比较少用的一个循环,他的语法是:

do{循环体}while(判断内容);   

他的用法和while差不多,区别就是,他会先运行循环体内容,然后再判断内容,看看要不要继续循环运行循环体。那他和while循环的区别在哪呢。那就是,就算判断内容一开始就为false,他也会先运行一次循环体语句。循环体语句至少会运行一次。

7.setInterval循环         

这个循环的功能是定时循环,也就是每运行一次循环体,会等待一段时间。他的语法是

setInterval(function(){循环体},延时);   

循环体内容,也不用多说了。这个循环的问题在于,他并没有判断内容,也就是说,要停止这个循环只能用上面提到的break功能,后面输入的延时,是每次循环体内容运行后,等待的时间,单位是毫秒,所有程序里的时间,单位一般都是毫秒。这个功能一般比较少用,主要用处在于ui线程上的循环处理,在ui中,以上的功能,只能在新线程中运行。

 

四、数组的使用

数组。这也是到以后代码里必不可少的一部分。他的作用是同样数据类型的对象放到一个集合中,一个变量中,还可以通过下标来获取这个集合指定位置的内容。但是和他名字不同的是,在数组里放的内容不只是数,而是所有内容都可以,包括布尔值,字符串,各种对象,甚至还可以在数组里放数组(也就是高维数组)等等,这就是数组。

下面让我们来具体了解一下数组的用法吧。

1.数组的表示        

数组在程序中,用中括号表示,里面的内容用英文的逗号“,”进行分割,比如放了三个数字一到三的数组,就是[1,2,3]    这个应该很好理解,如果放了三个字符串a b c那就是["a","b","c"],ps:字符串记得加引号。

2.数组的创建         

要创建一个数组,当然可以通过直接输入初始值来创建,比如var arr=[1,2,3];    这是最基本的创建方法,那我们要创建一个空数组怎么办呢,这时要用到构造函数。就是var arr=new Array(长度);    这样可以直接创建一个指定长度的空数组,比如要创建一个长度为5的空数组:var arr=new Array(5);  还有一个构造函数,可以传入多个内容比如var arr=new Array(5,6,7,8);  这时创建出来的数组就会自动判断数据类型(js本生就是泛型)根据传入内容的数量创建,对应长度和类型的数组。打印以上例子的结果是[5,6,7,8];

3.数组的长度         

数组的长度就是数组内内容的个数,比如 [1,3,5,7,9] 这个数组,长度为5 , ['a','b','c'] 的长度为3。可以用数组的length属性获得的长度,var arr=[1,2,3];log(arr.length);这就是一个输出arr数组长度的例子,结果当然为3。

4.数组的下标        

数组的下标是获取数组中指定内容的索引,数组中的每个内容,都有一个下标,按照顺序,从0开始,[1,2,3] 这个数组的三个内容的下标分别是0,1,2。

5.数组长度与下标的关系      

  在用数组的时候有个易错点,那就是很多人会认为最后一个内容的下标,就是数组的长度。然而下标是从0开始计数,而长度是从1开始数的。具体算下来,数组最后一个内容的下标就是数组长度-1

6.数组获取指定位置的内容      

  那我们如何获取并查看修改数组内的值呢,语法是:

变量名[下标]   

就这么简单,但是要注意的是,下标是从0开始的,举个例子:

 var arr=[2,3,4,5]; 

//输出下标为2的内容,即第三个
 log(arr(2)); 
//输出信息4 

arr[0]=6; 
log(arr); 
//输出信息[6,3,4,5]; 

我们用这个方法获得到了数组里的内容后,可以直接输出,赋值给变量或是直接修改。

7.push放入内容        

push是数组的一个方法,用来朝数组内添加元素。语法是:

数组.push(放入内容);   

运行时,会先把数组最后增加一格长度,并且赋值成括号内的放入内容。非常简单,就不给例子了。

8.pop和shift删除首位        

pop和shift两个数组的方法,分别可以用来删除数组的最后一位和第一位,同时会返回删掉的内容。比如原来一个数组arr的值是[1,2,3,4],这时运行一下arr.pop();他就成[1,2,3],这时再运行arr.shift();  他的值就变成了[2,3]  用法也很简单,自己尝试吧,一般返回值的用处并不是很大。

9.split字符串分割至数组      

  我们可以通过别的类中的一些函数或者数组类中的函数,可以把数组和其他类中互相转换。比如说split就可以把字符串转换到数组,split的主要作用就是把数组通过制定字符切割成多个字符串放入一个字符串数组。比如说一个字符串

var str="abcdabcdabcd";

然后用split处理,我们用一个新的变量,

var arr=str.split("c");

那么分割出来的字符串就是ab,dab,dab,d。

如果打印输出这个数那么打印出来的内容为["ab","dab","dab","d"]

10.循环遍历数组        

我们可以用循环来对数组里的每一个内容进行操作,我们直接用一个例子来说明这个功能吧,假如我们需要对一个数字数组的每一位的值增加一,那么我们看下面那个例子。

从大体上来看这个例子,我们可以发现在每一次的循环中,都通过下标获取到了数组的某一个内容,并用我们之前讲过的双加号的方法把他的值扩大到比原来大一的值。再仔细看,每次获取的下标的大小,从第一次循环,i的初始值为0,那么数组下标为0的那一个也就是第一个,一直每次循环i++获取下标更大一的内容,一直到最后一个,之前讲过在for循环中,每次循环会判断第二格的内容是否成立,在运行下面的内容

11.高维数组        

高维数组就是数组中嵌套数组,比如说 var arr=[[1,2,3],[4,5,6],[7,8,9]]; 这就是一个数组存放了三个数字数组在里面。那我们要获取输出第二个数组中的第三个值的代码就为log(arr[1][2]);         

高维数组在多重嵌套for循环做处理常用,这里只是略讲,不过也没有什么特别的功能,很容易看懂。

 

五、面向函数式编程

什么是函数?我们也可以叫他方法,就是可以把一些常用的代码块,放到一起,然后在不同的地方都要用到的时候就可以直接调用它。这样就可以省去很多重复的代码,理论角度就可以做到没有重复的代码块。

1.创建并且调用函数:function关键字

我们知道创建变量的其中一个关键字是var,创建函数同样是有关键字的,只有一个就是function,格式代码如下:

function 代码名(){     代码块内容; }

其实很简单,比如我们要创建一个叫log123的函数,用来按顺序输出1,2,3三个数字,也就是log(1);log(2);log(3)每次打三个麻烦,于是写一个函数可以,每次调用都按顺序输出123,代码如下:

function log123(){

    log(1);

    log(2);

    log(3);

}

也就这么简单,当我们需要调用他的时候,就直接运行log123()就行了,比如 log123(); log123(); 这样子就等于调用了两遍,输出的内容应该就为:

1 2 3 1 2 3

当然如果我们不调用函数,只创建,运行这个脚本什么也不会发生的。还有另一种函数的创建方法,和变量有点类似。代码格式如下:

var 函数名 = function(){代码块内容;}

其实用法一样,同样举个上面的例子:var log123 = function(){log(1);log(2);log(3)}

/* 我们这边来讲一下上面那两种创建方法的区别,看似作用一样,其实还是有区别的,等编程到达一定境界,并且开始追求程序效率了,那就应该要知道咯。        

我们首先要知道程序是如何运行的,其实我用简单一点的话来说就是:会有解析器(等引擎)把js文件转换成机器语言(即0和1,也是设备唯一看得懂的语言),然后再让设备运行。        

这个过程中,这两种函数就会有不同的解析方式。解析器在解析的时候会先把所有函数给解析出来,也就是说,一开始解析,就会把所有第一种方式建的函数全解析出来。        

所以这两种的区别也就在程序运行的加载差别上。在面向对象编程中还会有其他问题,但正常使用中,只有非常追求性能的人可能才需要用得上。*/

2.函数返回值:return关键字         

函数可以只有运行内容,但是我们也可以让他有返回内容。比如说在我们需要获取到函数运行的结果,或者快速停止函数的时候,我们都会用到return来返回。         return的主要作用就是,停止这个函数的运行,并且返回调用他的程序 在他后面的值。我们来看个例子:

log(returnTest());

function returnTest(){

        return 123

}

这个函数的运行结果就是在日志上打印了123。他的运行效果来说很简单,而实质上是先运行了log函数,然后他去调用returnTest函数去获取返回信息,最后得到了函数返回的123,将其输出。        

当然因为js使用的是泛型所以return后面可以跟任何数据类型(字符串记得加引号),也可以返回null。在一个函数运行结束时,也可以理解为默认返回null

3.关于函数名         

关于函数名也要稍微提一下,其实函数,也算是一种数据类型,所以他的名字和变量名一样的限定规则,详细可以看前面的文章。

4.关于函数的传入参数      

  函数的传入参数非常重要,比如说你需要给函数设置一些运行参数等。就会用到传入参数。        

传入参数的方法其实就是在创建函数的地方括号里写上传入参数的名称,这个变量会在你调用的时候创建,并且赋值为传入的值。注意:只有这个函数内的程序可以调取到这个变量。这个变量会在return时被销毁。        我们具体来看一个例子吧:

t(666);

function t(num){

      log(num);

      log(num);

}

这个程序的运行结果就是会输出两次666,这个函数的作用就是输出两次传入的值(这边传入的就是666)         函数还可以传入多个参数,中间用逗号(英文半角)隔开,我们直接来看一个例子:

addLog(123,456);

function addLog(n,m){

    log(n+m)

}

我们来详细解释一下这个程序的运行吧:首先运行的是第一行,调用了这个函数,函数创建的时候也创建了变量n和m,并赋予了初始值,123和456,然后运行log函数,把123和456相加传入其中输出了579        

其实我们调用的那些全局函数等,就是可以理解为是不在我们文件中的函数,熟练运用这些函数,可以大幅减少我们程序的内容。像我们autojs可以调用所有java和android及其内部提供的函数。至少有十万甚至百万个函数。所以学习的路还很长..........

7.关于同名函数        

不同于变量,如果传入参数数量不同的话,他可以同名。而你在调用函数的时候,会根据你传入参数的个数,选择适当的函数。         我们直接举个例子:

chooseFunction(1,2)

function chooseFunction(a){

    log(a)

}

function chooseFunction(a,b){

    log(a+b)

}

至此,auto.js的语法学习完毕,还有一些关于设备等的写法可以再查看教程。

 

AutoX.js 5.7.9 android安装包
04-17
不需要Root权限的JavaScript自动化软件。 由于原作者 不再维护 Auto.js 项目,网友再此基础上继续维护 如下为最新版的下载地址 https://github.com/kkevsekk1/AutoX/releases
Auto.Js 第一章:基础语法
qq_43435123的博客
11-14 4007
推荐ECMAScript及阮一峰 - ECMAScript 6教程 关键字 关键字是系统中不允许用户私自修改的。完整的关键字列表。 关键字就好比宇宙,不管它什么时候存在,什么时候灭亡。你不能更改它,但是能使用它。就算能更改它,也不是我们现在能做到的。 语法 规定好的规则,跟关键字一样不能改变。 来一个外国人,他说他们国家的话,你听不懂。这就是语法异常。恰巧你学过他们国家的语言,这就是语法包容 变量 量:代表一个含义的字符,比如说 “1”,我们知道它代表一个数字1。 “人”,我们知道是指 人,就够了。为什么1
Auto.js安卓脚本自动化app的代码语句大全
云霄IT的博客
05-18 6844
【代码】Auto.js安卓自动化app的语句大全。
autox.js如何打印日志?
wangbo_angel的博客
05-16 361
如果你想在脚本运行时实时看到日志,你可能需要使用Auto.js的悬浮窗功能,或者将日志输出到一个文件中。悬浮窗功能允许你将控制台作为一个悬浮窗口在设备上显示,这样你可以在不打开Auto.js应用的情况下查看日志。当你运行这段脚本时,"这是一条日志信息" 将被打印到Auto.js的控制台。通常,你可以通过在设备上运行Auto.js应用,然后点击控制台按钮来查看日志。要启用悬浮窗,你需要在Auto.js应用中进行设置,然后在脚本使用。最后,如果你需要将日志输出到一个文件中,Auto.js提供了。
Auto.js简单使用
土豆块嘎嘣脆的博客
02-02 7444
官网链接 https://pro.autojs.org/docs/#/zh-cn/
JavaScript-auto.js流程控制
麒麟
09-14 389
if单分支语句 格式 if(){ } let a=99; if(a==99){ console.log(a+"等于99") } if-esle双分支语句 格式: if(){ }else{ } let a=90; if(a==99){ console.log(a+"等于99") }else{ console.log(a+"不等于99") } if-elseif多分支语句 格式: if(){ }elseif(){ } while 格式: while(){ } .
AutoJS一文精通AutoJS脚本教程详解
Cupster
04-16 2万+
本文基于读者熟悉或了解JavaScript 1.基础 屏幕坐标系,屏幕左上角为原点(0,0),向右为x轴正向,向下为y轴正向 单位为px 其他大部语法JS相似或一致 2.常用api 函数 功能 click(x,y) click(500,500) 点击屏幕x=500px,y=500px的点 press(x,y,mills) press(200,200,1000) 按住(200,200)1秒钟 sleep(mills) sleep(1000) 程序暂停1秒 press(x,y
Auto.js Pro_Pro 7.0.4-1.apk
04-28
兼容性说明 不支持安卓10以上和华为手机调试运行,推荐在小米手机上调试运行。 但是打包的脚本不分手机型号都能运行。
基于Auto.js蚂蚁森林和一键完成淘宝、京东、微博等各大平台签到脚本
11-20
Auto.js是一款自动化软件,根据脚本内容便可以自动地执行相关的操作,并且手机无需root 使用JavaScript和Node.js实现你想实现的一切。 Auto.js Pro可以将日程繁琐重复的工作用JavaScript代码实现,让机器代替你的...
Auto.js模拟遥控器脚本源码
06-17
简要概述:一个简单的 Auto.js 模拟遥控器源码,仅供参考。 本脚本是为模拟电视遥控环境而设计的,可在手机上模拟电视的遥控器方向键操作。你也可以添加其他按键。 注意:该程序需要 root 权限。 参见博客:...
TaoBaoScripts:淘宝支付宝京东拼多多,双十一任务脚本auto.js适用安卓
03-16
小米,华为机型,系统和auto.js软件干架,猜测可能权限不够,需要悬浮窗和无障碍权限模拟器跑有风险,自己自愿酌,我不建议需要环境安卓设备(无需root),开启无障碍服务Auto.js软件,测试版和pro版版本运行步骤1....
Auto.JS】入门宝典—Auto.JS开发使用笔记(随笔和使用心得)
热门推荐
小宋小宋
07-15 12万+
官方网站:官方网站地址 https://hyb1996.github.io/AutoJs-Docs/#/ 以后忘记后快速熟悉方法: 1:翻看以前的autojs写过的注册和学习的源码,都是自己写的,很快就能想起来 2:查找官方函数文档的相关函数说明,很快就能找到一些解释 3:确定控件三大法宝: ①depth-desc-id-classname等常规属性 ②findone.parent().child(xx)等控件的父子依存关系 ③bounds,click(x,y)被逼无奈最后用坐标 ...
JavaScript循环(for循环,while循环,do...while),获取页面元素
Lvsiwei0719的博客
04-12 1636
一、js循环 do…while与while的区别 (1)do…while,while是可以相互转换的 (2)do…while将先执行一遍循环体中的语句,然后才判断表达式的真假 while循环 语法结构:while(条件语句){循环体;} do…while循环 语法结构:do{ 循环体; 增量/减量; } while(条件语句); for循环 语法结构:for(初始表达式;条件;增量/减量)...
【教程】Autojs脚本实现暂停和超时重启功能的思路和示例代码
xfxuezhang.cn
12-15 846
真的是非常简单和可拓展的实现方式
auto.js指令
qq_40408761的博客
09-25 6065
auto.js的常用指令集合
Auto.js 全命令整理(一) 数据获取专题
白瑕 的博客
06-22 2912
Auto.js 常用命令及作用 目录Auto.js 常用命令及作用函数 & 信息获取对应用命令Console屏幕操作模拟硬件按键监听屏幕按键监听 函数 & 信息获取 -------先获取,才能操控. 命令 目的 sleep(ms) 暂停执行?ms currentPackage() 返回最近一次/当前运行的应用的包名 currentActivity() 返回最近一次/当前运行的应用名(Activity名) setClip(文本) 设置剪贴板内容 getClip
Auto.js实例循环
weixin_46002413的博客
01-01 3677
for (i=0;i<5;i++){ text= "数字是" + i toast(text) } i=0 while (i<10) { text= "数字是" + i i++ toast(i) } i=0 do{ text="数字是"+i i++ toast(i) } while(i<10)
(你不知道的JS)JavaScript中双叹号(!!)作用
weixin_43844696的博客
06-05 145
经常看到这样的例子: var a; var b=!!a; a默认是undefined。!a是true,!!a则是false,所以b的值是false,而不再是undefined,也非其它值,主要是为后续判断提供便利。 !!一般用来将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false; 因为javascript是弱类型的语言(变量没有固定的数据类型)所以有时需要强制转换为相应的类型,类似的如: a=parseInt(“1234″) a=”1234″-0 //转
JavaScript比较运算大于小于等于
weixin_39218464的博客
10-03 3346
//比较运算 < > <= >= == === != !== 运算结果为布尔型,即true或false //与其它大多数编程语言不同,javascript允许任何类型与任何类型做比较 // var r = 3 >= 2; // alert(r); // var r = "3" > "2" // console.log(r); // var r = 2 > 13;//比较运算符的两边均为数字时,按照数字进行比较 .
auto.js 各个版本的优点缺点 和autoX.js
最新发布
05-21
Auto.js是一款基于JavaScript编写的Android自动化测试工具,它的主要功能是通过模拟用户的操作来自动执行某些操作。Auto.js的优点包括易于学习、脚本编写方便、支持多种脚本语言等。Auto.js的缺点主要是需要Root权限、不支持iOS系统、对于某些应用的自动化测试可能会有一些限制等。 Auto.js目前有多个版本,其中比较常见的版本包括Auto.js 3.0、Auto.js Pro和Auto.js V7。Auto.js 3.0是Auto.js的第三个版本,相比于之前的版本,它增加了UI调试功能、提高了兼容性、增加了新的API等。Auto.js Pro是Auto.js的付费版本,它相比费版增加了一些高级功能,如OCR识别、声音录制等。Auto.js V7是基于Auto.js 3.0开发的新版本,它加入了无障碍服务模式,提高了稳定性和兼容性。 AutoX.jsAuto.js的一个分支,它在原有的基础上增加了更多的API接口和一些实用功能,如按键监听、截图功能等。同时,AutoX.js还有一些其他版本,如AutoX 4.0和AutoX 5.0,它们相比于之前的版本增加了更多的功能和修复了一些问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 外包,你是外包不是正式员工,麻烦不要随便吃公司零食 24829
  • Android7.0版本后 Uri和文件路径互相转换封装类,实现系统分享功能及 FileProvider详细解析和踩坑指南,与fileprovider生成的Uri无法被识别 18362
  • 【开发者必看】APP《安全评估报告》填写范例 18024
  • 常用手机和平板的主流屏幕分辨率及适配注意项 16491
  • 【android免root脚本制作】基于控件的操作——auto.js进阶 15114

分类专栏

  • android小咖秀 34篇
  • app上架 3篇
  • 百度语音 4篇
  • PDF 2篇
  • 规范 2篇
  • wifi 1篇
  • Adobe
  • 批处理 1篇
  • 程序人生 27篇
  • 安卓 58篇
  • 程序bug 8篇
  • 时事 4篇
  • 安卓框架github 7篇
  • NDK开发 2篇
  • 面试招聘 7篇
  • Flutter 1篇
  • 安卓脚本 6篇
  • 架构师 1篇
  • IOS 2篇
  • android工具 6篇
  • java 7篇
  • Rxjava 2篇
  • kotlin 3篇
  • android 17篇
  • 网络 3篇
  • 批处理脚本

最新评论

  • 混合开发:android原生webview与H5,js的交互

    kkatrina: 也可以考虑使用GoEasy websocket消息推送,它支持android原生和web项目的websocket通信,打通原生端跟web端实时信息交互,以及服务端跟android端实时交互。

  • Lua 语法与C语言比较小结

    码莎拉蒂 .: Lua 语法与C语言比较小结 这文章写得非常详细 最近学lua语言直接把我学懵逼了

  • kotlin基本篇:kotlin与java语法不同写法比较

    锦瑟Shmily: // 只有一种构造函数的还可以这样写 class MyView(context: Context?) : View(context) { } Context后面的问号是什么意思?什么时候需要加问号?

  • Android7.0以前和7.0以后开启闪光灯的方式

    peihp_: Context或者activity都可以

  • Android7.0以前和7.0以后开启闪光灯的方式

    neu_ZZM: 请问 context是什么类型的变量呢,需要怎么定义呢

大家在看

  • css盒子模型简单案例 1
  • 【大模型应用开发 动手做AI Agent】思维树 619
  • NLP——机器翻译
  • NLP——基于Transformer实现机器翻译(日译中)
  • APP客户端接口本地缓存,降低请求峰值,减少云资源成本 2

最新文章

  • Lua 语法与C语言比较小结
  • autoJs_scriptDemo自动化测试学习脚本
  • 千年难遇回文日小纪
2020年3篇
2019年77篇
2018年33篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司光明SEO按天收费惠州网站优化按天收费宝安企业网站改版民治优秀网站设计木棉湾百搜标王福永模板推广双龙网站制作设计松岗网站搜索优化丹竹头网站定制福永网页设计荷坳网络营销松岗网站关键词优化西乡标王横岗企业网站改版福田营销型网站建设观澜网站定制惠州网站开发南澳品牌网站设计坪山seo南山网站开发永湖标王爱联网络推广石岩关键词按天计费同乐模板推广广州网站制作设计塘坑百姓网标王西乡seo福田seo网站推广罗湖网站设计模板沙井SEO按天计费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化