模块 module
module (模块)module (模块)
稳定性: 稳定
Auto.js 有一个简单的模块加载系统。 在 Auto.js 中,文件和模块是一一对应的(每个文件被视为一个独立的模块)。
例子,假设有一个名为 foo.js 的文件:
var circle = require('./circle.js');
console.log("半径为 4 的圆的面积是 %d", circle.area(4));
在第一行中,foo.js 加载了同一目录下的 circle.js 模块。
circle.js 文件的内容为:
const PI = Math.PI;
exports.area = function (r) {
return PI * r * r;
};
exports.circumference = (r) => 2 * PI * r;
circle.js 模块导出了 area() 和 circumference() 两个函数。 通过在特殊的 exports 对象上指定额外的属性,函数和对象可以被添加到模块的根部。 ...
axios
高级网络请求。
事件监听 events
events 模块提供了监听手机通知、按键、触摸的接口。您可以用他配合自动操作函数完成自动化工作。
传感器 sensors
sensors 模块提供了获取手机上的传感器的信息的支持,这些传感器包括距离传感器、光线光感器、重力传感器、方向传感器等。
协程
协程协程见 App 中 示例代码 / 协程
Promise.coroutine()v6.3.7 新增 在该版本引入bluebird后你可以使用bluebird带来的一项协程特性,这个方法接收一个Generator 函数作为参数,函数内部可以像async函数一样编写,返回一个返回值为Promise的函数,说起来可能有点难以理解,具体看下方例子
//async函数写法
let main = async function(s) {
var result = await Promise.resolve("value:"+s);
return result;
}
//Generator 函数写法
let main = Promise.coroutine(function*(s) {
var result = yield Promise.resolve("value:"+s);
return result;
})
main('test').then(log)
可以看到 ...
压缩与解压
压缩与解压压缩与解压压缩//压缩文件路径(必须是完整路径)
var filePath = "/sdcard/脚本.7z";
//目录路径(必须是完整路径)
var dirPath = "/sdcard/脚本";
//压缩类型
//支持的压缩类型包括:
// zip 7z bz2 bzip2 tbz2 tbz gz gzip tgz tar wim swm xz txz。
var type = "7z";
//压缩密码
var password = "password"
//7z加密压缩(若文件已存在则跳过)
//zips.A(type, filePath, dirPath, password)
//压缩
switch (zips.A(type, filePath, dirPath)) {
case 0:
toastLog("压缩成功!文件已保存为: " + filePath)
break;
case 1:
t ...
找图与找色
colors
稳定性: 稳定
在Auto.js有两种方式表示一个颜色。
一种是使用一个字符串”#AARRGGBB”或”#RRGGBB”,其中 AA 是Alpha通道(透明度)的值,RR 是R通道(红色)的值,GG 是G通道(绿色)的值,BB是B通道(蓝色)的值。例如”#ffffff”表示白色, “#7F000000”表示半透明的黑色。
另一种是使用一个16进制的”32位整数” 0xAARRGGBB 来表示一个颜色,例如 0xFF112233表示颜色”#112233”, 0x11223344表示颜色”#11223344”。
可以通过colors.toString()把颜色整数转换为字符串,通过colors.parseColor()把颜色字符串解析为颜色整数。
colorscolors.toString(color)
color {number} 整数RGB颜色值
返回 {string}
返回颜色值的字符串,格式为 “#AARRGGBB”。
colors.red(color)
color {number} | {string} 颜色值
返回 {number}
返回颜色color的R通 ...
多媒体 media
media模块提供多媒体编程的支持。目前仅支持音乐播放和媒体文件扫描。后续会结合UI加入视频播放等功能。
多线程 threads
Threads
稳定性: 实验
Threads 模块提供了多线程支持,可以启动新线程来运行脚本。
脚本主线程会等待所有子线程执行完成后才停止执行,因此如果子线程中有死循环,请在必要的时候调用exit()来直接停止脚本或threads.shutDownAll()来停止所有子线程。
通过threads.start()启动的所有线程会在脚本被强制停止时自动停止。
由于 JavaScript 自身没有多线程的支持,因此您可能会遇到意料之外的问题。
threadsthreads.start(action)
action {Function} 要在新线程执行的函数
返回 Thread
启动一个新线程并执行 action。
例如:
threads.start(function(){
//在新线程执行的代码
while(true){
log("子线程");
}
});
while(true){
log("脚本主线程");
}
通过该函数返回的Thre ...
对话框 dialogs
dialogs 模块提供了简单的对话框支持,可以通过对话框和用户进行交互。

