diff --git a/app/src/main/assets/docs/all.html b/app/src/main/assets/docs/all.html index f01e96e2..dafff867 100644 --- a/app/src/main/assets/docs/all.html +++ b/app/src/main/assets/docs/all.html @@ -2,7 +2,7 @@ - 全局变量与函数 | Auto.js 2.0.16 文档 + 全局变量与函数 | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@
  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | @@ -244,15 +246,19 @@

  • Images
  • colors
      @@ -268,6 +274,8 @@
    • Image
    • Point
    • +
    • HTTP +
    • +
    • Response +
    • +
    • Dialogs +
    • Engines
      • engines.execScript(name, script[, config])
      • engines.execScriptFile(path[, config])
      • @@ -1301,118 +1337,248 @@ sleep(500);

        Images#

        Stability: 2 - Stable

        images模块提供了一些手机设备中常见的图片处理函数,包括截图、读写图片、图片剪裁、找色、找图等。

        -

        requestScreenCapture([width, height])#

        +

        images.requestScreenCapture([landscape])#

          -
        • width <number> 截图宽度
        • -
        • height <number> 截图高度
        • +
        • landscape <boolean> 布尔值, 表示将要执行的截屏是否为横屏。如果landscape为false, 则表示竖屏截图; true为横屏截图。

        向系统申请屏幕截图权限,返回是否请求成功。

        第一次使用该函数会弹出截图权限请求,建议选择“总是允许”。

        -

        这个函数只是申请截图权限,并不会真正执行截图,真正的截图函数是[captureScreen][]都调用一次。

        +

        这个函数只是申请截图权限,并不会真正执行截图,真正的截图函数是[captureScreen][]。

        该函数在截图脚本中只需执行一次,而无需每次调用[captureScreen][]都调用一次。

        -

        不指定参数时默认为屏幕宽高。指定参数时,并不会严格以width和height为截图宽度和高度,而是以和width, height接近的最适合的宽高为截图宽高。例如在1920*1080屏幕中requestScreenCapture(600, 1000)请求的截图的高度一般是540*960。

        -

        如果在第一次权限请求时选择"总是允许", 之后的脚本执行该函数通常耗时200毫秒以内(测试机型:小米6)。

        -

        建议在本软件界面运行该函数,在其他软件界面运行时容易出现一闪而过的黑屏。

        -

        如果要进行截图、找色的软件界面为横屏,则requestScreenCapture函数需要在横屏状态下执行,否则后续截图将会异常,调用findColor等函数时坐标变换会出现错误。

        -

        captureScreen()#

        -

        截取当前屏幕并返回一个[Image][]对象。

        +

        如果不指定landscape值,则截图方向由当前设备屏幕方向决定,因此务必注意执行该函数时的屏幕方向。

        +

        建议在本软件界面运行该函数,在其他软件界面运行时容易出现一闪而过的黑屏现象。

        +

        示例:

        +
        //请求截图
        +if(!requestScreenCapture()){
        +    toast("请求截图失败");
        +    exit();
        +}
        +//连续截图10张图片(间隔1秒)并保存到存储卡目录
        +for(var i = 0; i < 10; i++){
        +    captureScreen("/sdcard/screencapture" + i + ".png");
        +    sleep(1000);
        +}
        +

        该函数也可以作为全局函数使用。

        +

        images.captureScreen()#

        +

        截取当前屏幕并返回一个Image对象。

        没有截图权限时执行该函数会抛出SecurityException。

        -

        该函数不会返回null,两次调用可能返回相同的Image对象。这是因为设备截图的更新需要一定的时间,短时间内(几十ms)连续调用则会返回同一张截图。

        -

        captureScreen(path)#

        +

        该函数不会返回null,两次调用可能返回相同的Image对象。这是因为设备截图的更新需要一定的时间,短时间内(一般来说是16ms)连续调用则会返回同一张截图。

        +

        截图需要转换为Bitmap格式,从而该函数执行需要一定的时间(0~20ms)。

        +

        另外在requestScreenCapture()执行成功后需要一定时间后才有截图可用,因此如果立即调用captureScreen(),会等待一定时间后(一般为几百ms)才返回截图。

        +

        例子:

        +
        //请求横屏截图
        +requestScreenCapture(true);
        +//截图
        +var img = captureScreen();
        +//获取在点(100, 100)的颜色值
        +var color = images.pixel(img, 100, 100);
        +//显示该颜色值
        +toast(colors.toString(color));
        +

        该函数也可以作为全局函数使用。

        +

        images.captureScreen(path)#

        截取当前屏幕并以PNG格式保存到path中。如果文件不存在会被创建;文件存在会被覆盖。

        -

        该函数不会返回任何值。

        +

        该函数不会返回任何值。该函数也可以作为全局函数使用。

        images.pixel(image, x, y)#

          -
        • image <Image> 图片
        • -
        • x <number> 要获取的像素的横坐标。
        • -
        • y <y> 要获取的像素的纵坐标。
        • +
        • image <Image> 图片
        • +
        • x <number> 要获取的像素的横坐标。
        • +
        • y <number> 要获取的像素的纵坐标。

        返回图片image在点(x, y)处的像素的ARGB值。

        -

        该值的格式为0xAARRGGBB,是一个"32位整数"(虽然JavaScript中并不区分整数类型和其他数值类型。

        +

        该值的格式为0xAARRGGBB,是一个"32位整数"(虽然JavaScript中并不区分整数类型和其他数值类型)。

        坐标系以图片左上角为原点。以图片左侧边为y轴,上侧边为x轴。

        images.saveImage(image, path)#

          -
        • image <image> 图片
        • -
        • path <string> 路劲
        • +
        • image <image> 图片
        • +
        • path <string> 路劲

        把图片image以PNG格式保存到path中。如果文件不存在会被创建;文件存在会被覆盖。

        +

        images.read(path)#

        +
        +

        读取在路径path的图片文件并返回一个Image对象。如果文件不存在或者文件无法解码则返回null。

        +

        images.load(url)#

        +
        +

        加载在地址URL的网络图片并返回一个Image对象。如果地址不存在或者图片无法解码则返回null。

        images.findColor(image, color, options)#

          -
        • image <image> 图片
        • -
        • color <number> | <string> 要寻找的颜色的RGB值。如果是一个整数,则以0xRRGGBB的形式代表RGB值(A通道会被忽略);如果是字符串,则以"#RRGGBB"代表其RGB值。
        • -
        • options <Object> 选项
        • +
        • image <Image> 图片
        • +
        • color <number> | <string> 要寻找的颜色的RGB值。如果是一个整数,则以0xRRGGBB的形式代表RGB值(A通道会被忽略);如果是字符串,则以"#RRGGBB"代表其RGB值。
        • +
        • options <Object> 选项
        -

        在图片中寻找颜色color。找到时返回找到的点[Point][],找不到时返回null。

        +
  • 在图片中寻找颜色color。找到时返回找到的点Point,找不到时返回null。

    选项包括:

    返回这些颜色通道构成的整数颜色值。Alpha通道将是255(不透明)。

    colors.argb(alpha, red, green, blue)#

    返回这些颜色通道构成的整数颜色值。

    Image#

    -

    [captureScreen][] 返回的对象。

    +

    表示一张图片,可以是截图的图片,或者本地读取的图片,或者从网络获取的图片。

    Image.getWidth()#

    返回以像素为单位图片宽度。

    Image.getHeight()#

    返回以像素为单位的图片高度。

    +

    Image.saveTo(path)#

    +
    +

    把图片保存到路径path。(如果文件存在则覆盖)

    +

    Image.pixel(x, y)#

    +
    +

    返回图片image在点(x, y)处的像素的ARGB值。

    +

    该值的格式为0xAARRGGBB,是一个"32位整数"(虽然JavaScript中并不区分整数类型和其他数值类型)。

    +

    坐标系以图片左上角为原点。以图片左侧边为y轴,上侧边为x轴。

    Point#

    -

    findColor返回的对象。

    +

    findColor, findImage返回的对象。表示一个点(坐标)。

    Point.x#

    横坐标。

    Point.y#

    @@ -2505,6 +2684,218 @@ sh.exit();

    相当于context.sendBroadcast(intent)。

    + +

    HTTP#

    +
    Stability: 2 - Stable

    http模块提供一些进行http请求的函数。

    +

    http.get(url[, options, callback])#

    +
    +

    对地址url进行一次HTTP GET 请求。如果没有回调函数,则在请求完成或失败时返回此次请求的响应(参见[Response][])。

    +

    最简单GET请求如下:

    +
    console.show();
    +var r = http.get("www.baidu.com");
    +log("code = " + r.statusCode);
    +log("html = " + r.body.string());
    +

    采用回调形式的GET请求如下:

    +
    console.show();
    +http.get("www.baidu.com", {}, function(res, err){
    +    if(err){
    +        console.error(err);
    +        return;
    +    }
    +    log("code = " + r.statusCode);
    +    log("html = " + r.body.string());
    +});
    +

    如果要增加HTTP头部信息,则在options参数中添加,例如:

    +
    console.show();
    +var r = http.get("www.baidu.com", {
    +    headers: {
    +        "Accept-Language": "zh-cn,zh;q=0.5",
    +        "User-Agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X
    +10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56
    +Safari/535.11"
    +    }
    +});
    +log("code = " + r.statusCode);
    +log("html = " + r.body.string());
    +

    一个请求天气并解析返回的天气JSON结果的例子如下:

    +
    var city = "广州";
    +var res = http.get("http://www.sojson.com/open/api/weather/json.shtml?city=" + city);
    +if(res.statusCode != 200){
    +    toast("请求失败: " + res.statusCode + " " + res.statusMessage);
    +}else{
    +    var weather = res.body.json();
    +    log(weather);
    +    toast(util.format("温度: %s 湿度: %s 空气质量: %s", weather.data.wendu,
    +        weather.data.shidu, weather.quality));
    +}
    +

    http.post(url, data[, options, callback])#

    +
    +

    对地址url进行一次HTTP POST 请求。如果没有回调函数,则在请求完成或失败时返回此次请求的响应(参见[Response][])。

    +

    其中POST数据可以是字符串或键值对。具体含义取决于options.contentType的值。默认为"application/x-www-form-urlencoded"(表单提交), 这种方式是JQuery的ajax函数的默认方式。

    +

    一个模拟表单提交登录淘宝的例子如下:

    +
    var url = "https://login.taobao.com/member/login.jhtml";
    +var username = "你的用户名";
    +var password = "你的密码";
    +var res = http.post(url, {
    +    "TPL_username": username,
    +    "TPL_password": password
    +});
    +var html = res.body.string();
    +if(html.contains("页面跳转中")){
    +    toast("登录成功");
    +}else{
    +    toast("登录失败");
    +}
    +

    http.postJson(url[, data, options, callback])#

    +
    +

    以JSON格式向目标Url发起POST请求。如果没有回调函数,则在请求完成或失败时返回此次请求的响应(参见[Response][])。

    +

    JSON格式指的是,将会调用JSON.stringify()把data对象转换为JSON字符串,并在HTTP头部信息中把"Content-Type"属性置为"application/json"。这种方式是AngularJS的ajax函数的默认方式。

    +

    一个调用图灵机器人接口的例子如下:

    +

    http.request(url[, options, callback])#

    +
    +

    对目标地址url发起一次HTTP请求。如果没有回调函数,则在请求完成或失败时返回此次请求的响应(参见[Response][])。

    +

    选项options可以包含以下属性:

    + +

    该函数是get, post, postJson等函数的基础函数。因此除非是PUT, DELET等请求,或者需要更高定制的HTTP请求,否则直接使用get, post, postJson等函数会更加方便。

    +

    Response#

    +

    HTTP请求的响应。

    +

    Response.statusCode#

    +
    +

    当前响应的HTTP状态码。例如200(OK), 404(Not Found)等。

    +

    有关HTTP状态码的信息,参见菜鸟教程:HTTP状态码

    +

    Response.statusMessage#

    +
    +

    当前响应的HTTP状态信息。例如"OK", "Bad Request", "Forbidden"。

    +

    有关HTTP状态码的信息,参见菜鸟教程:HTTP状态码

    +

    例子:

    +
    var res = http.get("www.baidu.com");
    +if(res.statusCode >= 200 && res.statusCode < 300){
    +    toast("页面获取成功!");
    +}else if(res.statusCode == 404){
    +    toast("页面没找到哦...");
    +}else{
    +    toast("错误: " + res.statusCode + " " + res.statusMessage);
    +}
    +

    Response.headers#

    +
    +

    当前响应的HTTP头部信息。该对象的键是响应头名称,值是各自的响应头值。 所有响应头名称都是小写的(吗)。

    +

    有关HTTP头部信息,参见菜鸟教程:HTTP响应头信息

    +

    例子:

    +
    console.show();
    +var res = http.get("www.qq.com");
    +console.log("HTTP Headers:")
    +for(var headerName in res.headers){
    +    console.log("%s: %s", headerName, res.headers[headerName]);
    +}
    +

    Response.body#

    +
    +

    当前响应的内容。他有以下属性和函数:

    + +

    Response.request#

    +
    +

    Response.url#

    +
    +

    Response.method#

    +
    +
    + +

    Dialogs#

    +
    Stability: 2 - Stable

    dialogs 模块允许用户通过对话框与脚本进行交互。

    +

    dialogs.rawInput(title[, default])#

    +
    +

    显示一个包含输入框的对话框。如果指定了 default ,那么对话框显示时输入框的内容就为该值。

    +

    该函数也可通过 rawInput(title[, default])prompt(title[, default]) 或者 dialogs.prompt(title[, default]) 来调用。调用时脚本将阻塞直至对话框被关闭。如果用户输入内容并点击确定,函数将返回输入的内容;否则返回 null

    +

    dialogs.input(title[, default])#

    +

    等效于 eval(dialogs.rawInput(title, default))

    +

    dialogs.prompt(title[, default])#

    +

    见 dialogs.rawInput

    +

    dialogs.alert(title[, content])#

    +
    +

    显示一个只包含“确定”按钮的提示对话框。

    +

    该函数也可通过 alert(title[, content]) 来调用。调用时脚本将阻塞直至对话框被关闭。该函数无返回值。

    +

    dialogs.confirm(title[, content])#

    +
    +

    显示一个包含“确定”和“取消”按钮的提示对话框。

    +

    该函数也可通过 confirm(title[, content]) 来调用。调用时脚本将阻塞直至对话框被关闭。如果用户点击“确定”则返回 true ,否则返回 false

    +

    dialogs.select(title, items)#

    +
    +

    显示一个带有选项列表的对话框。

    +

    该函数也可通过 dialogs.select(title, ...items) 来调用。
    例如: dialogs.select("标题", ["A", "B", "C"]) 可以用 dialogs.select("标题", "A", "B", "C") 替代。

    +

    调用时脚本将阻塞直至对话框被关闭。如果用户点击了对话框中的某个选项,该函数会返回该选项的位置(选中第一个选项返回0,第二个选项返回1,以此类推),否则返回-1。

    +

    dialogs.singleChoice(title, items[, index])#

    +
    +

    显示一个带有单选框选项列表的对话框。

    +

    调用时脚本将阻塞直至对话框被关闭。如果用户选中了对话框中的某个选项并点击“确定”,该函数会返回该选项的位置(选中第一个选项返回0,第二个选项返回1,以此类推),否则返回-1。

    +

    dialogs.multiChoice(title, items[, indexes])#

    +
    +

    显示一个带有多选框选项列表的对话框。

    +

    调用时脚本将阻塞直至对话框被关闭。如果用户点击“确定”按钮,该函数会返回所有已选选项的位置组成的数组,否则返回空数组。 +

    Engines#

    Stability: 2 - Stable

    engines模块包含了一些与脚本引擎有关的函数,包括运行其他脚本,关闭脚本等。

    diff --git a/app/src/main/assets/docs/app.html b/app/src/main/assets/docs/app.html index 7cd468b3..c0007f8f 100644 --- a/app/src/main/assets/docs/app.html +++ b/app/src/main/assets/docs/app.html @@ -2,7 +2,7 @@ - App | Auto.js 2.0.16 文档 + App | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@
  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/console.html b/app/src/main/assets/docs/console.html index 92e2274b..38fc5249 100644 --- a/app/src/main/assets/docs/console.html +++ b/app/src/main/assets/docs/console.html @@ -2,7 +2,7 @@ - Console | Auto.js 2.0.16 文档 + Console | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/coordinates-based-automation.html b/app/src/main/assets/docs/coordinates-based-automation.html index 2692be6b..b76a6b8f 100644 --- a/app/src/main/assets/docs/coordinates-based-automation.html +++ b/app/src/main/assets/docs/coordinates-based-automation.html @@ -2,7 +2,7 @@ - Android7.0以上点按与手势模拟 | Auto.js 2.0.16 文档 + Android7.0以上点按与手势模拟 | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/documentation.html b/app/src/main/assets/docs/documentation.html index 9c6e28e7..a93989f7 100644 --- a/app/src/main/assets/docs/documentation.html +++ b/app/src/main/assets/docs/documentation.html @@ -2,7 +2,7 @@ - About this Documentation | Auto.js 2.0.16 文档 + About this Documentation | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/engines.html b/app/src/main/assets/docs/engines.html index 1527834b..a5c404ee 100644 --- a/app/src/main/assets/docs/engines.html +++ b/app/src/main/assets/docs/engines.html @@ -2,7 +2,7 @@ - Engines | Auto.js 2.0.16 文档 + Engines | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/events.html b/app/src/main/assets/docs/events.html index 8b783f06..0b0dfa38 100644 --- a/app/src/main/assets/docs/events.html +++ b/app/src/main/assets/docs/events.html @@ -2,7 +2,7 @@ - Events | Auto.js 2.0.16 文档 + Events | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/files.html b/app/src/main/assets/docs/files.html index 97d8d9a3..9f86bb40 100644 --- a/app/src/main/assets/docs/files.html +++ b/app/src/main/assets/docs/files.html @@ -2,7 +2,7 @@ - Files | Auto.js 2.0.16 文档 + Files | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/globals.html b/app/src/main/assets/docs/globals.html index c3d4c28d..9f04af7b 100644 --- a/app/src/main/assets/docs/globals.html +++ b/app/src/main/assets/docs/globals.html @@ -2,7 +2,7 @@ - 全局变量与函数 | Auto.js 2.0.16 文档 + 全局变量与函数 | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/images.html b/app/src/main/assets/docs/images.html index af75e99c..01d8b3bf 100644 --- a/app/src/main/assets/docs/images.html +++ b/app/src/main/assets/docs/images.html @@ -2,7 +2,7 @@ - Images | Auto.js 2.0.16 文档 + Images | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | @@ -65,15 +67,19 @@

    目录

    • Images
    • colors
        @@ -89,6 +95,8 @@
      • Image
      • Point
          @@ -103,118 +111,248 @@

          Images#

          Stability: 2 - Stable

          images模块提供了一些手机设备中常见的图片处理函数,包括截图、读写图片、图片剪裁、找色、找图等。

          -

          requestScreenCapture([width, height])#

          +

          images.requestScreenCapture([landscape])#

            -
          • width <number> 截图宽度
          • -
          • height <number> 截图高度
          • +
          • landscape <boolean> 布尔值, 表示将要执行的截屏是否为横屏。如果landscape为false, 则表示竖屏截图; true为横屏截图。

          向系统申请屏幕截图权限,返回是否请求成功。

          第一次使用该函数会弹出截图权限请求,建议选择“总是允许”。

          -

          这个函数只是申请截图权限,并不会真正执行截图,真正的截图函数是[captureScreen][]都调用一次。

          +

          这个函数只是申请截图权限,并不会真正执行截图,真正的截图函数是[captureScreen][]。

          该函数在截图脚本中只需执行一次,而无需每次调用[captureScreen][]都调用一次。

          -

          不指定参数时默认为屏幕宽高。指定参数时,并不会严格以width和height为截图宽度和高度,而是以和width, height接近的最适合的宽高为截图宽高。例如在1920*1080屏幕中requestScreenCapture(600, 1000)请求的截图的高度一般是540*960。

          -

          如果在第一次权限请求时选择"总是允许", 之后的脚本执行该函数通常耗时200毫秒以内(测试机型:小米6)。

          -

          建议在本软件界面运行该函数,在其他软件界面运行时容易出现一闪而过的黑屏。

          -

          如果要进行截图、找色的软件界面为横屏,则requestScreenCapture函数需要在横屏状态下执行,否则后续截图将会异常,调用findColor等函数时坐标变换会出现错误。

          -

          captureScreen()#

          -

          截取当前屏幕并返回一个[Image][]对象。

          +

          如果不指定landscape值,则截图方向由当前设备屏幕方向决定,因此务必注意执行该函数时的屏幕方向。

          +

          建议在本软件界面运行该函数,在其他软件界面运行时容易出现一闪而过的黑屏现象。

          +

          示例:

          +
          //请求截图
          +if(!requestScreenCapture()){
          +    toast("请求截图失败");
          +    exit();
          +}
          +//连续截图10张图片(间隔1秒)并保存到存储卡目录
          +for(var i = 0; i < 10; i++){
          +    captureScreen("/sdcard/screencapture" + i + ".png");
          +    sleep(1000);
          +}
          +

          该函数也可以作为全局函数使用。

          +

          images.captureScreen()#

          +

          截取当前屏幕并返回一个Image对象。

          没有截图权限时执行该函数会抛出SecurityException。

          -

          该函数不会返回null,两次调用可能返回相同的Image对象。这是因为设备截图的更新需要一定的时间,短时间内(几十ms)连续调用则会返回同一张截图。

          -

          captureScreen(path)#

          +

          该函数不会返回null,两次调用可能返回相同的Image对象。这是因为设备截图的更新需要一定的时间,短时间内(一般来说是16ms)连续调用则会返回同一张截图。

          +

          截图需要转换为Bitmap格式,从而该函数执行需要一定的时间(0~20ms)。

          +

          另外在requestScreenCapture()执行成功后需要一定时间后才有截图可用,因此如果立即调用captureScreen(),会等待一定时间后(一般为几百ms)才返回截图。

          +

          例子:

          +
          //请求横屏截图
          +requestScreenCapture(true);
          +//截图
          +var img = captureScreen();
          +//获取在点(100, 100)的颜色值
          +var color = images.pixel(img, 100, 100);
          +//显示该颜色值
          +toast(colors.toString(color));
          +

          该函数也可以作为全局函数使用。

          +

          images.captureScreen(path)#

          截取当前屏幕并以PNG格式保存到path中。如果文件不存在会被创建;文件存在会被覆盖。

          -

          该函数不会返回任何值。

          +

          该函数不会返回任何值。该函数也可以作为全局函数使用。

          images.pixel(image, x, y)#

            -
          • image <Image> 图片
          • -
          • x <number> 要获取的像素的横坐标。
          • -
          • y <y> 要获取的像素的纵坐标。
          • +
          • image <Image> 图片
          • +
          • x <number> 要获取的像素的横坐标。
          • +
          • y <number> 要获取的像素的纵坐标。

          返回图片image在点(x, y)处的像素的ARGB值。

          -

          该值的格式为0xAARRGGBB,是一个"32位整数"(虽然JavaScript中并不区分整数类型和其他数值类型。

          +

          该值的格式为0xAARRGGBB,是一个"32位整数"(虽然JavaScript中并不区分整数类型和其他数值类型)。

          坐标系以图片左上角为原点。以图片左侧边为y轴,上侧边为x轴。

          images.saveImage(image, path)#

            -
          • image <image> 图片
          • -
          • path <string> 路劲
          • +
          • image <image> 图片
          • +
          • path <string> 路劲

          把图片image以PNG格式保存到path中。如果文件不存在会被创建;文件存在会被覆盖。

          +

          images.read(path)#

          +
          +

          读取在路径path的图片文件并返回一个Image对象。如果文件不存在或者文件无法解码则返回null。

          +

          images.load(url)#

          +
          +

          加载在地址URL的网络图片并返回一个Image对象。如果地址不存在或者图片无法解码则返回null。

          images.findColor(image, color, options)#

            -
          • image <image> 图片
          • -
          • color <number> | <string> 要寻找的颜色的RGB值。如果是一个整数,则以0xRRGGBB的形式代表RGB值(A通道会被忽略);如果是字符串,则以"#RRGGBB"代表其RGB值。
          • -
          • options <Object> 选项
          • +
          • image <Image> 图片
          • +
          • color <number> | <string> 要寻找的颜色的RGB值。如果是一个整数,则以0xRRGGBB的形式代表RGB值(A通道会被忽略);如果是字符串,则以"#RRGGBB"代表其RGB值。
          • +
          • options <Object> 选项
          -

          在图片中寻找颜色color。找到时返回找到的点[Point][],找不到时返回null。

          +

          在图片中寻找颜色color。找到时返回找到的点Point,找不到时返回null。

          选项包括:

            -
          • region <Array> 找色区域。是一个两个或四个元素的数组。(region[0], region[1])表示找色区域的左上角;region[2]*region[3]表示找色区域的宽高。如果只有region只有两个元素,则找色区域为(region[0], region[1])到屏幕右下角。如果不指定region选项,则找色区域为整张图片。
          • -
          • threads <number> 指定找色使用的线程数。不能超过16。最适合的线程数取决于设备。默认线程数为2。
          • -
          • algorithm <string> 指定颜色匹配算法。包括:
              -
            • "equal": 相等匹配,只有与给定颜色color完全相等时才匹配。
            • +
            • region <Array> 找色区域。是一个两个或四个元素的数组。(region[0], region[1])表示找色区域的左上角;region[2]*region[3]表示找色区域的宽高。如果只有region只有两个元素,则找色区域为(region[0], region[1])到屏幕右下角。如果不指定region选项,则找色区域为整张图片。
            • +
            • threshold <number> 找色时颜色相似度的临界值,范围为0~255(越小越相似,0为颜色相等,255为任何颜色都能匹配)。默认为16。threshold和浮点数相似度(0.0~1.0)的换算为 similarity = (255 - threshold) / 255.
            • +
            +

            该函数也可以作为全局函数使用。

            +

            一个循环找色的例子如下:

            +
            requestScreenCapture();
            +
            +//循环找色,找到红色(#ff0000)时停止并报告坐标
            +while(true){
            +    var img = captureScreen();
            +    var point = findColor(img, "#ff0000");
            +    if(point){
            +        toast("找到红色,坐标为(" + point.x + ", " + point.y + ")");
            +    }
            +}
            +

            一个区域找色的例子如下:

            +
            //读取本地图片/sdcard/1.png
            +var img = images.read("/sdcard/1.png");
            +//判断图片是否加载成功
            +if(!img){
            +    toast("没有该图片");
            +    exit();
            +}
            +//在该图片中找色,指定找色区域为在位置(400, 500)的宽为300长为200的区域,指定找色临界值为4
            +var point = findColor(img, "#00ff00", {
            +     region: [400, 500, 300, 200],
            +     threshold: 4
            + });
            +if(point){
            +    toast("找到啦:" + point);
            +}else{
            +    toast("没找到");
            +}
            +

            images.findColorInRegion(img, color, x, y[, width, height, threshold])#

            +

            区域找色的简便方法。

            +

            相当于

            +
            images.findColor(img, color, {
            +     region: [x, y, width, height],
            +     threshold: threshold
            +});
            +

            该函数也可以作为全局函数使用。

            +

            images.findColorEquals(img, color[, x, y, width, height])#

            +

            严格找色的简便方法。找色时要求颜色完全相等才匹配。

            +

            相当于

            +
            images.findColor(img, color, {
            +   region: [x, y, width, height],
            +   threshold: 0
            +});
            +

            该函数也可以作为全局函数使用。

            +

            示例: +(通过找QQ红点的颜色来判断是否有未读消息)

            +
            requestScreenCapture();
            +launchApp("QQ");
            +sleep(1200);
            +var p = findColorEquals(captureScreen(), "#f64d30");
            +if(p){
            +    toast("有未读消息");
            +}else{
            +    toast("没有未读消息");
            +}
            +

            images.detectsColor(image, color, x, y[, threshold = 16, algorithm = "diff"])#

            +
              +
            • image <Image> 图片
            • +
            • color <number> | <string> 要检测的颜色
            • +
            • x <number> 要检测的位置横坐标
            • +
            • y <number> 要检测的位置纵坐标
            • +
            • threshold <number> 颜色相似度临界值,默认为16。取值范围为0~255。
            • +
            • algorithm <string> 颜色匹配算法,包括:
                +
              • "equal": 相等匹配,只有与给定颜色color完全相等时才匹配。
              • "diff": 差值匹配。与给定颜色的R、G、B差的绝对值之和小于threshold时匹配。
              • "rgb": rgb欧拉距离相似度。与给定颜色color的rgb欧拉距离小于等于threshold时匹配。
              • "rgb+": 加权rgb欧拉距离匹配(LAB Delta E)。
              • "hs": hs欧拉距离匹配。hs为HSV空间的色调值。
            • -
            • threshold <number> 找色时颜色相似度的临界值,范围为0~255(越小越相似,0为颜色相等,255为任何颜色都能匹配)。默认为16。threshold和浮点数相似度(0.0~1.0)的换算为 similarity = (255 - threshold) / 255.
            • +
            +

            返回图片image在位置(x, y)处是否匹配到颜色color。用于检测图片中某个位置是否是特定颜色。

            +

            一个判断微博客户端的某个微博是否被点赞过的例子:

            +
            requestScreenCapture();
            +//找到点赞控件
            +var like = id("ly_feed_like_icon").findOne();
            +//获取该控件中点坐标
            +var x = like.bounds().centerX();
            +var y = like.bounds().centerY();
            +//截图
            +var img = captureScreen();
            +//判断在该坐标的颜色是否为橙红色
            +if(images.detectsColor(img, "#fed9a8", x, y)){
            +    //是的话则已经是点赞过的了,不做任何动作
            +}else{
            +    //否则点击点赞按钮
            +    like.click();
            +}
            +

            images.findImage(img, template[, options])#

            +
              +
            • img <Image> 大图片
            • +
            • template <Image> 小图片(模板)
            • +
            • options <Object> 找图选项
            • +
            +

            找图。在大图片img中查找小图片template的位置(模块匹配),找到时返回位置坐标(Point),找不到时返回null。

            +

            选项包括:

            +
              +
            • threshold <number> 图片相似度。取值范围为0~1的浮点数。默认值为0.9。
            • +
            • region <Array> 找图区域。参见findColor函数关于region的说明。
            • +
            • level <number> 一般而言不必修改此参数。不加此参数时该参数会根据图片大小自动调整。找图算法是采用图像金字塔进行的, level参数表示金字塔的层次, level越大可能带来越高的找图效率,但也可能造成找图失败(图片因过度缩小而无法分辨)或返回错误位置。因此,除非您清楚该参数的意义并需要进行性能调优,否则不需要用到该参数。

            该函数也可以作为全局函数使用。

            -

            images.findColorInRegion(img, color, x, y[, width, height, threads, algorithm, threshold])#

            -

            相当于

            -
            images.findColor(img, color, {
            -     region: [x, y, width, height],
            -     algorithm: algorithm,
            -     threshold: threshold,
            -     threads: threads
            +

            一个最简单的找图例子如下:

            +
            var img = images.read("/sdcard/大图.png");
            +var templ = images.read("/sdcard/小图.png");
            +var p = findImage(img, templ);
            +if(p){
            +    toast("找到啦:" + p);
            +}else{
            +    toast("没找到");
            +}
            +

            稍微复杂点的区域找图例子如下:

            +
            auto();
            +requestScreenCapture();
            +var wx = images.read("/sdcard/微信图标.png");
            +//返回桌面
            +home();
            +//截图并找图
            +var p = findImage(captureScreen(), wx, {
            +    region: [0, 50],
            +    threshold: 0.8
             });
            +if(p){
            +    toast("在桌面找到了微信图标啦: " + p);
            +}else{
            +    toast("在桌面没有找到微信图标");
            +}
            +

            images.findImageInRegion(img, template, x, y[, width, height, threshold])#

            +

            区域找图的简便方法。相当于:

            +
            images.findImage(img, template, {
            +    region: [x, y, width, height],
            +    threshold: threshold
            +})
             

            该函数也可以作为全局函数使用。

            -

            images.findColorEquals(img, color, x, y, width, height, threads)#

            -

            相当于

            -
            images.findColor(img, color, {
            -   region: [x, y, width, height],
            -   algorithm: "equal",
            -   threads: threads
            -});
            -

            该函数也可以作为全局函数使用。

            -

            images.detectsColor(image, color, x, y[, threshold = 16, algorithm = "rgb"])#

            -
              -
            • image <Image> 图片
            • -
            • color <number> | <string> 要检测的颜色
            • -
            • x <number> 要检测的位置横坐标
            • -
            • y <number> 要检测的位置纵坐标
            • -
            • threshold <number> 颜色相似度临界值,默认为16
            • -
            • algorithm <string> 颜色匹配算法,默认为rgb欧式距离
            • -
            -

            返回图片image在位置(x, y)处是否匹配到颜色color。有关threshold和algorithm的信息,参考findColor函数。

            colors#

            Stability: 2 - Stable

            colors是颜色处理的工具对象。包含一些常用方法,包括android.graphics.Color的所有方法以及toString方法。

            colors.toString(color)#

            返回颜色值的字符串,格式为 #AARRGGBB。

            colors.red(color)#

            返回颜色color的R通道的值,范围0~255.

            colors.green(color)#

            返回颜色color的G通道的值,范围0~255.

            colors.blue(color)#

            返回颜色color的B通道的值,范围0~255.

            colors.alpha(color)#

            返回颜色color的Alpha通道的值,范围0~255.

            colors.rgb(red, green, blue)#

            @@ -226,20 +364,33 @@

    返回这些颜色通道构成的整数颜色值。Alpha通道将是255(不透明)。

    colors.argb(alpha, red, green, blue)#

    返回这些颜色通道构成的整数颜色值。

    Image#

    -

    [captureScreen][] 返回的对象。

    +

    表示一张图片,可以是截图的图片,或者本地读取的图片,或者从网络获取的图片。

    Image.getWidth()#

    返回以像素为单位图片宽度。

    Image.getHeight()#

    返回以像素为单位的图片高度。

    +

    Image.saveTo(path)#

    +
    +

    把图片保存到路径path。(如果文件存在则覆盖)

    +

    Image.pixel(x, y)#

    +
    +

    返回图片image在点(x, y)处的像素的ARGB值。

    +

    该值的格式为0xAARRGGBB,是一个"32位整数"(虽然JavaScript中并不区分整数类型和其他数值类型)。

    +

    坐标系以图片左上角为原点。以图片左侧边为y轴,上侧边为x轴。

    Point#

    -

    findColor返回的对象。

    +

    findColor, findImage返回的对象。表示一个点(坐标)。

    Point.x#

    横坐标。

    Point.y#

    diff --git a/app/src/main/assets/docs/index.html b/app/src/main/assets/docs/index.html index 60ad5d3e..f86da047 100644 --- a/app/src/main/assets/docs/index.html +++ b/app/src/main/assets/docs/index.html @@ -1,8 +1,8 @@ - + - Index | Auto.js 2.0.16 文档 + Index | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@
  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | @@ -86,6 +88,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • diff --git a/app/src/main/assets/docs/keys.html b/app/src/main/assets/docs/keys.html index a2c1f64b..f78dddd6 100644 --- a/app/src/main/assets/docs/keys.html +++ b/app/src/main/assets/docs/keys.html @@ -2,7 +2,7 @@ - Keys | Auto.js 2.0.16 文档 + Keys | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@
  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/modules.html b/app/src/main/assets/docs/modules.html index 9fa037c3..41b0d2a0 100644 --- a/app/src/main/assets/docs/modules.html +++ b/app/src/main/assets/docs/modules.html @@ -2,7 +2,7 @@ - module (模块) | Auto.js 2.0.16 文档 + module (模块) | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/overview.html b/app/src/main/assets/docs/overview.html index 5769cb99..9555aebc 100644 --- a/app/src/main/assets/docs/overview.html +++ b/app/src/main/assets/docs/overview.html @@ -2,7 +2,7 @@ - Index | Auto.js 2.0.16 文档 + Index | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/qa.html b/app/src/main/assets/docs/qa.html index 96139d94..de92f4b1 100644 --- a/app/src/main/assets/docs/qa.html +++ b/app/src/main/assets/docs/qa.html @@ -2,7 +2,7 @@ - Index | Auto.js 2.0.16 文档 + Index | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/shell.html b/app/src/main/assets/docs/shell.html index 2b2269b6..0c6c4b95 100644 --- a/app/src/main/assets/docs/shell.html +++ b/app/src/main/assets/docs/shell.html @@ -2,7 +2,7 @@ - shell函数 | Auto.js 2.0.16 文档 + shell函数 | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/timers.html b/app/src/main/assets/docs/timers.html index a55d17f3..e706a598 100644 --- a/app/src/main/assets/docs/timers.html +++ b/app/src/main/assets/docs/timers.html @@ -2,7 +2,7 @@ - Timers | Auto.js 2.0.16 文档 + Timers | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/ui.html b/app/src/main/assets/docs/ui.html index d7f61fd2..89614620 100644 --- a/app/src/main/assets/docs/ui.html +++ b/app/src/main/assets/docs/ui.html @@ -2,7 +2,7 @@ - Index | Auto.js 2.0.16 文档 + Index | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/util.html b/app/src/main/assets/docs/util.html index 7860ca6b..0958af14 100644 --- a/app/src/main/assets/docs/util.html +++ b/app/src/main/assets/docs/util.html @@ -2,7 +2,7 @@ - Util | Auto.js 2.0.16 文档 + Util | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/widgets-based-automation.html b/app/src/main/assets/docs/widgets-based-automation.html index 3732d9c9..2a4cacc6 100644 --- a/app/src/main/assets/docs/widgets-based-automation.html +++ b/app/src/main/assets/docs/widgets-based-automation.html @@ -2,7 +2,7 @@ - SimpleActionAutomator | Auto.js 2.0.16 文档 + SimpleActionAutomator | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 | diff --git a/app/src/main/assets/docs/work-with-java.html b/app/src/main/assets/docs/work-with-java.html index 3e3d2480..e516c19d 100644 --- a/app/src/main/assets/docs/work-with-java.html +++ b/app/src/main/assets/docs/work-with-java.html @@ -2,7 +2,7 @@ - Index | Auto.js 2.0.16 文档 + Index | Auto.js 3.0.0 文档 @@ -35,6 +35,8 @@

  • Shell - Shell命令
  • UI - 用户界面
  • Files - 文件系统
  • +
  • Dialogs - 对话框
  • +
  • Http - HTTP
  • App - 应用
  • Engines - 脚本引擎
  • Modules - 模块
  • @@ -51,7 +53,7 @@
    -

    Auto.js 2.0.16 文档

    +

    Auto.js 3.0.0 文档

    索引 |