第一个例子:开启代理模式判断
agent.start()

agent.start()
函数用于开启代理模式,需 root 权限,无需参数。此函数执行后会返回一个布尔值:如果成功返回 true
,否则返回 false
。下面是一个可能的使用例子:
let result =agent.start();
printl(result);
if (result) {
console.log("代理启动成功!");
} else {
console.log("代理启动失败,请检查是否具有root权限。");
}
此代码尝试启动代理模式,并根据返回值判断启动是否成功。如果成功,会输出“代理启动成功!”,否则输出“代理启动失败,请检查是否具有root权限。”
第二例个例子:代理模式命令执行打开
adb.exec(‘ls’,false)

function executeShellCommand(command, isRoot) {
try {
let result = adb.exec(command, isRoot);
let output = JSON.parse(result);
if (output.errorMsg) {
console.error("命令执行出错:", output.errorMsg);
} else {
console.log("命令执行成功, 输出结果:");
console.log(output.success.replace(/\\n/g, '\n'));
}
} catch (error) {
console.error("执行期间发生异常:", error);
}
}
executeShellCommand('ls', false);
函数 executeShellCommand
参数
command
: 要执行的 shell 命令。isRoot
: 布尔值,表示是否以 root 权限执行命令。
步骤
执行命令:
- 使用
adb.exec(command, isRoot)
来执行命令,并获取返回结果。 - 返回结果被假设为 JSON 格式的字符串。
解析结果:
- 使用
JSON.parse(result)
将结果字符串解析为对象 output
。
检查错误信息:
- 如果
output.errorMsg
存在,表示执行过程中出现错误,输出错误信息。 - 如果没有错误信息,表示命令执行成功,并输出执行结果。
异常处理:
- 用
try-catch
块捕获执行过程中可能发生的异常,并输出异常信息。
示例调用
executeShellCommand('ls', false);
: 调用该函数,执行 ls
命令,并不使用 root 权限。
该代码的目的是在 JavaScript 环境中通过 ADB 调用安卓设备的 shell 命令,并处理输出结果。
第三个例子,代理模式返回值,
agent.back()

function goBack() {
agent.back();
console.log("返回键已按下");
}
goBack();
第四个例子,代理模式真实座标点击
agent.click(100,100)

let xCoordinate = 100;
let yCoordinate = 100;
let result = agent.click(xCoordinate, yCoordinate);
if (result) {
console.log("点击成功!");
} else {
console.log("点击失败,请检查坐标是否正确。");
}
goBack函数:
定义了一个函数goBack,用于按下返回键。
在函数内部调用agent.back(),执行返回操作。
agent.back():
这是一个没有参数也没有返回值的函数。
作用是模拟按下设备上的返回键。
定义坐标:
xCoordinate = 100
:横向坐标设置为100。yCoordinate = 100
:纵向坐标设置为100。
调用点击函数:
agent.click(xCoordinate, yCoordinate)
:尝试点击指定的坐标。
检查结果并输出:
- 如果
result
为true
,说明点击成功,输出”点击成功!”。 - 如果
result
为false
,说明点击失败,输出”点击失败,请检查坐标是否正确。”。
第五个例子,代理模式点击屏幕百分比座标
agent.click(0.5,0.5)

let horizontalPercent = 0.144;
let verticalPercent = 0.3292;
agent.clickPercent(horizontalPercent, verticalPercent);
console.log("已在屏幕中心点击。");
这段代码实现了在屏幕中心的点击操作。具体步骤如下:
定义点击位置的百分比坐标:
horizontalPercent
和verticalPercent
分别定义了横坐标和纵坐标的百分比值。0.5
表示水平方向和垂直方向的50%位置,也就是屏幕的中心。
调用点击函数:
agent.clickPercent(horizontalPercent, verticalPercent);
这行代码使用百分比坐标在屏幕上执行点击操作。
输出结果:
console.log("已在屏幕中心点击。");
输出一条信息表示点击已在屏幕中心完成。
这个函数通常在自动化测试或脚本中使用,用于模拟用户点击动作。
第六个例子,
agent.home()

agent.home();
console.log("已经返回到主屏幕。");
解释:
agent.home():调用该方法来模拟按下设备的HOME键,使设备返回到主屏幕。
console.log(“已经返回到主屏幕。”):输出一条信息到控制台,表示操作已完成。
第七个例子,ADB代理模式输入一个字符串
agent.input(‘123456’)

let inputString = '123456';
agent.input(inputString);
console.log("已输入字符串:", inputString);
使用agent.input函数来模拟输入数字字符。该函数只支持英文字符和数字字符,不支持中文字符。
第八个例子,ADB代理模式常用按键事件码
agent.keyPress(3)

const KEYCODE_HOME = 3;
const KEYCODE_BACK = 4;
const KEYCODE_MENU = 82;
const KEYCODE_VOLUME_UP = 24;
const KEYCODE_VOLUME_DOWN = 25;
const KEYCODE_POWER = 26;
function simulateKeyPress(keyCode) {
let result = agent.keyPress(keyCode);
if (result) {
console.log("按键事件成功:", keyCode);
} else {
console.log("按键事件失败:", keyCode);
}
}
simulateKeyPress(KEYCODE_HOME);
simulateKeyPress(KEYCODE_BACK);
simulateKeyPress(KEYCODE_MENU);
simulateKeyPress(KEYCODE_VOLUME_UP);
simulateKeyPress(KEYCODE_VOLUME_DOWN);
simulateKeyPress(KEYCODE_POWER);
这段代码定义了一些常用的按键事件码,并通过 simulateKeyPress
函数来模拟按键事件。以下是代码的详细说明:
定义按键事件码:
KEYCODE_HOME
、KEYCODE_BACK
、KEYCODE_MENU
、KEYCODE_VOLUME_UP
、KEYCODE_VOLUME_DOWN
和 KEYCODE_POWER
是对应不同按键的事件码,分别用于模拟按手机上不同的按钮。
simulateKeyPress
函数:
- 接收一个
keyCode
参数,表示要模拟的按键。 - 使用
agent.keyPress(keyCode)
方法模拟按键事件。 - 根据
result
的值来判断按键事件是否成功,并输出相应的日志信息。
调用按键事件:
- 使用
simulateKeyPress
函数依次模拟 HOME、BACK、MENU、音量增大、音量减小以及电源按键的事件。
通过这个代码,可以轻松地在程序中模拟各种常用按键的按下操作。
第九个例子,ADB截取代理模式的屏幕截图
agent.screenShot(374,666,100)

let width = 374.0;
let height = 666.0;
let quality = 100;
let img = agent.screenShot(width, height, quality);
printl(img);
变量定义:
width: 设置截图的宽度为374像素。
height: 设置截图的高度为666像素。
quality: 设置截图质量为100。
截屏操作:
使用 agent.screenShot(width, height, quality) 方法截取屏幕截图,并将返回的图像对象存储在 img 变量中。
结果检查:
通过判断 img 是否为真值来检查截屏是否成功。
第十个例子,执行Shell命令,通过坐标模拟点击屏幕
agent.shell(‘input tap 455 974’)

let command = 'input tap 455 974';
let result = agent.shell(command);
if (result) {
console.log("Shell命令执行成功:", result);
} else {
console.log("Shell命令执行失败");
}
变量 command:存储要执行的Shell命令,这里是模拟点击屏幕指定位置 (455, 974)。
agent.shell(command):发送命令给设备进行执行。
“tap” 是一个用于模拟触摸屏幕的命令。执行这个命令会在指定的坐标位置模拟一次点击动作。
第十一个例子,代理模式滑动功能
agent.swip(50,100,500,100,10,0,0)

let startX = 50;
let startY = 100;
let endX = 500;
let endY = 100;
let steps = 10;
let downTime = 0;
let upTime = 0;
agent.swip(startX, startY, endX, endY, steps, downTime, upTime);
printl("滑动操作已完成");
演示了如何使用 swip 函数从起点滑动到终点。以下是参数的详细说明:
int x1, y1: 起点的横坐标和纵坐标。
int x2, y2: 终点的横坐标和纵坐标。
int steps: 从起点到终点,滑动所需的步数。
int downTime: 按下延迟时间(毫秒)。
int upTime: 抬起延迟时间(毫秒)。

第十一个例子,代理模式AI模拟手工滑动功能
agent.swipAI(0,0,0,0)

let startX = 0;
let startY = 0;
let endX = 500;
let endY = 500;
agent.swipAI(startX, startY, endX, endY);
console.log("AI滑动操作完成.");
说明
arg0: int startX — 滑动开始的横坐标。
arg1: int startY — 滑动开始的纵坐标。
arg2: int endX — 滑动结束的横坐标。
arg3: int endY — 滑动结束的纵坐标。
这个函数模仿人手势的滑动,适用于需要模拟真实触屏滑动的场景。
第十二个例子,代理模式按下,移动,抬起
agent.touchDown(0,0,0)
agent.touchMove(0,0,0)
agent.touchUp(0)



agent.touchDown(0, 100, 100);
agent.touchMove(0, 200, 200);
agent.touchUp(0);
何使用 touchDown、touchMove 和 touchUp 方法组合来模拟一个从屏幕上的一个点移动到另一个点的拖动效果。
所有代码进行组合:
agent.start();
console.log("代理模式已开启");
agent.shell('input tap 455 974');
console.log("执行Shell命令完成");
let img = agent.screenShot(374, 666, 100);
console.log("截图操作完成");
const KEYCODE_HOME = 3;
agent.keyPress(KEYCODE_HOME);
console.log("模拟按键完成");
agent.click(100, 100);
console.log("屏幕点击完成");
agent.swip(50, 100, 500, 200, 10, 0, 0);
console.log("滑动操作完成");
agent.swipAI(0, 0, 500, 500);
console.log("AI滑动操作完成");
agent.touchDown(0, 100, 100);
agent.touchMove(0, 200, 200);
agent.touchUp(0);
console.log("触摸操作完成");