安卓自动化脚本开发JavaScript

安卓脚本开发教程:从零到上线的完整流程

安卓脚本开发全流程指南,从选择工具、安装环境、连接设备,到编写第一个脚本并部署到生产。使用 JavaScript 实现免 ROOT 安卓自动化。

约 6 分钟

第一次写安卓脚本,卡人的往往不是代码。设备连不上、apk 没装上、USB 调试没开,随便哪一环都能让脚本跑不起来。

动手之前准备什么

安卓自动化脚本开发写的是一个 js 文件。文件通过 ADB 传到手机上跑,或者靠无障碍服务直接点屏幕。这里没有 APK 要打包,没有商店要上架,也没有用户要对接。改一行就能看效果,同一份脚本可以丢给任意一台安卓手机。会变量、循环、if else,就可以开始写。

硬件就三样:一台安卓真机、一根 USB 线、一台电脑。只管一台手机,一套就够。要批量管,尽量用同型号,兼容性省事。

软件可以直接用 EasyClick。IDE 基于 IntelliJ IDEA,Windows、Mac、Linux 都能装。里面有现成示例工程,改改参数就能跑。手机端装一个轻量 APK,不用 ROOT。按键精灵门槛更低,功能也少一些。Auto.js 适合愿意自己折腾的人。UiAutomator2 更偏测试,配置步骤多。大多数人用 EasyClick 少配环境。

十分钟跑通第一个脚本,和几个别踩的坑

先跑通再谈技巧。下载安装 EasyClick IDE,打开后创建一个新项目,平台选安卓。打开手机设置 → 关于手机 → 版本号那里连点七次 → 返回上级进入开发者选项 → 打开 USB 调试。然后插入数据线,IDE 里点连接,手机上弹出的授权提示确认一下就好。IDE 自带了一个「自动点击签到」的示例,通常在「示例工程 → 安卓」目录下,打开之后你会看到 main.js,这就是你的第一个脚本。长这样:

var appPackageName = "com.example.app"; // 改成你要操作的 App 包名

app.launch(appPackageName);
sleep(3000);

if (clickByText("签到")) {
    toast("签到成功!");
} else {
    toast("没找到签到按钮");
}

sleep(2000);
if (clickByText("确定") || clickByText("关闭")) {
    // 关掉弹窗
}

toast("搞定");

三步:打开 App,找「签到」两个字,点它。IDE 里点运行,脚本就到手机上执行。手机会自己打开 App、进签到页、点完按钮。

坐标是新手最容易写死的地方。按钮不会永远停在 (500, 800),App 一改版就全乱。按文字或图片找:

// 推荐写法
clickByText("继续");           // 找"继续"这俩字在哪然后点
clickByDesc("下一步按钮");      // 按 accessibility description 找

// 不推荐写法
click(500, 800);               // App 一改布局就瞎了

固定 sleep 也别当默认写法。傻等五秒,快的时候浪费,慢的时候不够:

// 反例:傻等五秒,快的时候浪费慢的时候不够
sleep(5000);

// 最多等十秒,找到了就不等了
waitForElementByText("确认", 10000);

有些界面读不到控件文本,就截一张图让 OCR 认:

var pos = findImage("confirm-button.png");
if (pos) {
    click(pos.x, pos.y);
}

脚本中途断了,没有日志就不知道停在哪。套一层 try-catch:

try {
    launchApp("com.example.app");
    sleep(3000);
    tapTarget();
} catch(e) {
    print("出错了: " + e.message);
    showToast("任务失败,请检查网络");
}

出问题怎么排查,跑通后怎么长期用

常见故障就那么几类。连不上手机,先看 adb devices 有没有识别到你的设备、驱动装了吗、USB 调试开了吗;找不到元素,一般是 App 改版了,换个策略比如图片匹配或者 OCR;脚本中途停了,大概率被省电策略杀了后台,去电池设置里把你的 App 设为无限制;点击没反应,多半是前面有弹窗挡住了,加一段弹窗处理的逻辑;卡顿明显,把 sleep 的时间缩短一点,或者用异步非阻塞的方式。

刚开始手动点运行就行,后面按场景加调度。定时任务用系统 cron 或者 Windows 计划任务,每天早上八点触发脚本。十几台以上适合云控:一个云端面板统一管理、一键下发、实时看每台手机的状态。云控从 3.11.0 起,配套 EC 客户端 9.4.0 及以上。演示环境在 http://ecloud.devicefarm.cn/ ,账号和密码都是 test123,这个账号不能增删改。也可以用 webhook 做事件触发,收到通知再跑,比如发货前巡检库存。百台以上用 iEasyClick 的云控和可视化运维面板来管。

延伸阅读

EasyClick 官方文档,API 参考手册 第一个工程入门教程,从零创建项目 无障碍服务原理详解,了解一下底层是怎么工作的

============================

iEasyClick 官网 ieasyclick.net · 专注于安卓/苹果/鸿蒙全平台手机自动化

============================

想要真实跑起来?

本文介绍的方案均可基于 EasyClick 能力在 iEasyClick 落地。官网提供完整文档、开发工具与自动化产品,免费体验。

访问 iEasyClick 官网 →