本文目录一览:
auto.js-01基于坐标的触摸模拟
//duration {number} 按住时长,单位毫秒。
setScreenMetrics(width, height) ;//设置脚本坐标点击所适合的屏幕宽高。如果脚本运行时,屏幕宽度不一致会自动放缩坐标。
click(x, y) ;//模拟点击坐标(x, y),并返回是否点击成功。只有在点击执行完成后脚本才继续执行。默认100ms点击时长。
longClick(x, y);//模拟长按坐标(x, y), 并返回是否成功。只有在长按执行完成(大约600毫秒)时脚本才会继续执行。
press(x, y, duration);//模拟按住坐标(x, y), 并返回是否成功。只有按住操作执行完成时脚本才会继续执行。
swipe(x1, y1, x2, y2, duration);//模拟从坐标(x1, y1)滑动到坐标(x2, y2),并返回是否成功。只有滑动操作执行完成时脚本才会继续执行。
gesture(duration, [x1, y1], [x2, y2], ...);//模拟手势操作。
gestures([delay1, duration1, [x1, y1], [x2, y2], ...], [delay2, duration2, [x3, y3], [x4, y4], ...], ...) ;
//同时模拟多个手势。
//输出
log();//日志输出。 toast();//气泡输出。toastLog();//气泡,日志输出。alert();//对话框输出。
//注释
行级注释 --- //注释内容。块级注释 --- /*注释内容*/。
1.字符串的拼接用加号进行运算。
2.布尔值运算
非-感叹号,感叹号的作用是布尔值取反,比如本来为true的数据类型,用了!值为false,本来为false的变为true。
都- ,连接两个布尔值,如果两个值都为true,那么返回true,否则返回false
任意- ||,连接两个布尔值,如果两个中有一个为true,那么整体返回true,否则返回false
autojs死巡环内存爆炸
内存溢出是一种程序运行会出现的错误,当程序所需要的内存大于剩余内存(机器能提供给你的内存),就会抛出内存溢出的错误
var obj = {}
for (var i = 0; i 100000000; i++) {
obj[i] = new Array[100000000]
}
登录后复制
内存泄漏
占用的内存没有及时的释放从而失去控制,从而造成内存的浪费。内存泄漏多了就容易引发内存溢出。
常见的内存泄漏案例:
1、意外的全局变量
function fn() {
var name = '张三'
var age = 18
address = '上海' // 没有用var定义,这时候address是全局的
}
fn() // 因为address会被变量提升到了全局变量,fn调用完成后address还保留在内存中
登录后复制
2、没有及时清除定时器
// 没有及时清理定时器
var timer = setInterval(() = {
console.log(new Date())
}, 1000);
// clearInterval(timer) 及时清理定时器
登录后复制
3、没有及时清理闭包
// 函数执行完后, 函数内的局部变量没有释放, 占用内存时间会变长,容易造成内存泄露
function fun() {
var a = 5
function getA() {
return a
}
return getA
}
var f = fun()
f() // 5
// f = null 让内部函数成为垃圾对象,释放闭包
登录后复制
4、没有及时清理清理dom元素的引用
var dom = document.getElementById('box')
document.body.removeChild(dom) // dom删除后,下面依然能打印出整个div
console.log(dom) // div id="box"嘿嘿嘿/div
dom = null
console.log(dom) // 释放资源,解除引用
登录后复制
5、addEventListener
监听事件的解除,监听的时候addEventListener,在不监听的时候要使用removeEventListener。
autojs歌曲代码
Auto.js是利用安卓系统的“辅助功能”实现类似于按键精灵一样,可以通过代码模拟一系列界面动作的辅助工作。
与“按键精灵”不同的是,它的模拟动作并不是简单的使用在界面定坐标点来实现,而是类似与win一般,找窗口句柄来实现的。
Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。
吸引我使用Auto.js Pro的原因有很多。最主要的几个原因是:
Auto.js Pro能开发免ROOT的安卓脚本。
Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型。
Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面。
Auto.js Pro使用的javascript的语法比较优雅,代码可读性强。
Auto.js Pro的命令库非常的丰富,接口比较多。
Auto.js Pro脚本文件体积比较小。1000行的代码,打包后的apk文件只有3-5M,还没有广告。
auto.js怎么实现等待按钮出现再点击?
1坐标点击就是直接点击某个点,这个点是固定的,所以在不同分辨率兼容性差,所以不推荐使用。
2控件点击是autojs左右特点的一项功能,它是基于安卓的无障碍功能的,在软件上有很好的支持,但是游戏就不行了。具体的教程很多,不多说了,就说说我在使用时踩得一些坑。
①有些控件能用autojs的工具找到,但是写出来后却识别不出来,手动滑动一下屏幕就能找到了,不知道是不是BUG,所以加个判断,防止找不到脚本出错。
②寻找控件建议不要用findOne()、waitFor()、exists()等一些会阻塞的方法,不然稍微出现一点其他事件就会阻塞,导致脚本莫名其妙的卡死,使用findOne(timeout)、findonce()时可以加个判断在不为null的时候再点击或其他操作,因为没找到返回null,直接click就会报错,脚本停止运行,要是是找的父或者子控件也写到判断里
③找图找色特别消耗内存,所以在能用控件就用控件,找图找色在找到后要用recycle()来对创建的图像对象回收,提高脚本稳定,让脚本能持续运行更长时间,截图也需要一定的时间
④如果脚本有悬浮窗,使用找图要注意不要将要找地图遮挡。
⑤控件中使用text比id要靠谱一些,在一些软件中id是会改变的。
autojs的脚本有哪些
jquery很简单的吧1231对应的内容1对应的内容1对应的内容.tab{width:100px;height:30px;line-height:30px;overflow:hidden;margIN:0auto;}.tabspan{float:left;width:30px;text-align:center;background:#666;color:#fff}.tabspan.on{background:red;color:#fff}.tablist{widtH:100px;height:100px;overflow:hidden;margIN:10pxauto;border:1pxsolid#666;}这样就可以了。