µÚÒ»¸öÀý×Ó:¿ªÆô´úÀíģʽÅÐ¶Ï 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 º¯Êý´ÓÆðµã»¬¶¯µ½Öյ㡣ÒÔÏÂÊDzÎÊýµÄÏêϸ˵Ã÷£º 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("´¥Ãþ²Ù×÷Íê³É");
|