µÚÒ»¸öÀý×Ó:¿ªÆô´úÀíģʽÅжÏ
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)

// ³¢ÊÔµã»÷ÆÁÄ»ÉϵÄij¸öλÖÃ
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()

// °´ÏÂÉ豸µÄ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; // Home ¼ü
const KEYCODE_BACK = 4; // Back ¼ü
const KEYCODE_MENU = 82; // Menu ¼ü
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¡¯)

// Ö´ÐÐShellÃüÁͨ¹ý×ø±êÄ£Äâµã»÷ÆÁÄ»
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 º¯Êý´ÓÆðµã»¬¶¯µ½Öյ㡣ÒÔÏÂÊDzÎÊýµÄÏêϸ˵Ã÷£º
int x1, y1: ÆðµãµÄºá×ø±êºÍ×Ý×ø±ê¡£
int x2, y2: ÖÕµãµÄºá×ø±êºÍ×Ý×ø±ê¡£
int steps: ´ÓÆðµãµ½Öյ㣬»¬¶¯ËùÐèµÄ²½Êý¡£
int downTime: °´ÏÂÑÓ³Ùʱ¼ä£¨ºÁÃ룩¡£
int upTime: ̧ÆðÑÓ³Ùʱ¼ä£¨ºÁÃ룩¡£

µÚʮһ¸öÀý×Ó£¬´úÀíģʽAIÄ£ÄâÊÖ¹¤»¬¶¯¹¦ÄÜ
agent.swipAI(0,0,0,0)

// ʹÓÃAIËã·¨½øÐ묶¯£¬´ÓÆðµã(0,0)µ½ÖÕµã(500,500)
let startX = 0; // Æðµãºá×ø±ê
let startY = 0; // Æðµã×Ý×ø±ê
let endX = 500; // ÖÕµãºá×ø±ê
let endY = 500; // ÖÕµã×Ý×ø±ê
// µ÷ÓÃAI»¬¶¯º¯Êý
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)



// Ä£ÄâÒ»¸öÔÚÆÁÄ»Éϵã»÷²¢Í϶¯µÄ¶¯×÷
// ÔÚλÖà (100, 100) ´¥ÃþÆÁÄ»
agent.touchDown(0, 100, 100);
// ½«´¥ÃþÒÆ¶¯µ½Î»Öà (200, 200)
agent.touchMove(0, 200, 200);
// ËÉ¿ª´¥Ãþ
agent.touchUp(0);
ºÎʹÓà touchDown¡¢touchMove ºÍ touchUp ·½·¨×éºÏÀ´Ä£ÄâÒ»¸ö´ÓÆÁÄ»ÉϵÄÒ»¸öµãÒÆ¶¯µ½ÁíÒ»¸öµãµÄÍ϶¯Ð§¹û¡£
ËùÓдúÂë½øÐÐ×éºÏ£º
// ¿ªÆô´úÀíģʽ
agent.start();
console.log("´úÀíģʽÒÑ¿ªÆô");
// Ö´ÐÐShellÃüÁî
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("»¬¶¯²Ù×÷Íê³É");
// AIÄ£ÄâÊÖ¹¤»¬¶¯
agent.swipAI(0, 0, 500, 500);
console.log("AI»¬¶¯²Ù×÷Íê³É");
// Ä£Äâ´¥Ãþ
agent.touchDown(0, 100, 100);
agent.touchMove(0, 200, 200);
agent.touchUp(0);
console.log("´¥Ãþ²Ù×÷Íê³É");