B2BÍøÂçÈí¼þ

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á ÉóºËÍøÕ¾ºÅ:QQ:896757558
ËÑË÷
²é¿´: 7|»Ø¸´: 0
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

AIWROKÈí¼þ×Ô¶¯ÕÒͼÀûÓÃagent´úÀíģʽɾ³ýÓ¦ÓðæÊ¾Àý

[¸´ÖÆÁ´½Ó]

1138

Ö÷Ìâ

1143

Ìû×Ó

7829

»ý·Ö

abc

Rank: 9Rank: 9Rank: 9

»ý·Ö
7829
Ìø×ªµ½Ö¸¶¨Â¥²ã
Â¥Ö÷

AIWROKÈí¼þ×Ô¶¯ÕÒͼÀûÓÃagent´úÀíģʽɾ³ýÓ¦ÓðæÊ¾Àý
AIWROKÈí¼þ×Ô¶¯ÕÒͼÀûÓÃagent´úÀíģʽɾ³ýÓ¦ÓðæÊ¾Àý B2BÍøÂçÈí¼þ

  1. //// AIWROKÈí¼þ×Ô¶¯ÕÒͼÀûÓÃagent´úÀíģʽɾ³ýÓ¦ÓðæÊ¾Àý
  2. // ʹÓÃͼɫ¹¦ÄÜʵÏÖ×ÀÃæÓ¦ÓÃɾ³ýÁ÷³Ì

  3. // ========== ÅäÖÃÇø£¨ÐÞ¸ÄÕâÀï¼´¿ÉÊÊÅ䲻ͬ³¡¾°£©==========
  4. var CV_FILE_APP_1 = 'ͼɫ1.cv';
  5. var CV_FILE_APP_2 = 'ͼɫ2.cv';
  6. var CV_FILE_TRASH = 'À¬»øÏä.cv';

  7. print.log("===== agent ´úÀí API ɾ³ýÓ¦ÓðæÊ¾Àý =====");

  8. print.log("📌 ÅäÖÃÐÅÏ¢£ºÓ¦ÓÃ1CV=" + CV_FILE_APP_1 + "£¬Ó¦ÓÃ2CV=" + CV_FILE_APP_2 + "£¬À¬»øÏäCV=" + CV_FILE_TRASH);
  9. print.log("📌 ÖØÒªÌáʾ£ºÇëÈ·±£ÊÖ»úÆÁÄ»µ±Ç°ÏÔʾ×ÀÃæ£¡");

  10. var ÆÁÄ»¿í = screen.getScreenWidth();
  11. var ÆÁÄ»¸ß = screen.getScreenHeight();
  12. print.log("µ±Ç°ÆÁÄ»£º" + ÆÁÄ»¿í + " x " + ÆÁÄ»¸ß);

  13. // ========== ºËÐÄÕÒͼº¯Êý ==========
  14. function µ÷ÓÃÕÒͼ(cvÎļþÃû) {
  15.     var detects = null;
  16.     try {
  17.         detects = opencv.findImagesEx(cvÎļþÃû);
  18.         if (detects != null) {
  19.             var len = 0;
  20.             try { len = detects.length; } catch (e) { len = 0; }
  21.             if (len > 0) {
  22.                 print.log("✓ ʹÓà '" + cvÎļþÃû + "' ¸ñʽµ÷Óóɹ¦");
  23.                 return detects;
  24.             }
  25.         }
  26.     } catch (e) {
  27.         print.log("⚠ '" + cvÎļþÃû + "' ¸ñʽµ÷ÓÃÒì³££º" + e.message);
  28.     }
  29.     var ´¿Êý×ÖID = cvÎļþÃû.replace(/[^0-9]/g, "");
  30.     if (´¿Êý×ÖID !== "" && ´¿Êý×ÖID !== cvÎļþÃû) {
  31.         try {
  32.             detects = opencv.findImagesEx(´¿Êý×ÖID);
  33.             if (detects != null) {
  34.                 var len2 = 0;
  35.                 try { len2 = detects.length; } catch (e) { len2 = 0; }
  36.                 if (len2 > 0) {
  37.                     print.log("✓ ʹÓô¿Êý×ÖID '" + ´¿Êý×ÖID + "' ¸ñʽµ÷Óóɹ¦");
  38.                     return detects;
  39.                 }
  40.             }
  41.         } catch (e) {
  42.             print.log("⚠ ´¿Êý×ÖID '" + ´¿Êý×ÖID + "' ¸ñʽµ÷ÓÃÒì³££º" + e.message);
  43.         }
  44.     }
  45.     return null;
  46. }

  47. function ÕÒͼ»ñÈ¡×ø±ê(cvÎļþÃû) {
  48.     var detects = µ÷ÓÃÕÒͼ(cvÎļþÃû);
  49.     if (detects == null) return null;
  50.     var ³¤¶È = 0;
  51.     try {
  52.         ³¤¶È = detects.length;
  53.     } catch (e) {
  54.         ³¤¶È = 0;
  55.     }
  56.     if (³¤¶È === 0) return null;
  57.     var dStr = "";
  58.     try {
  59.         dStr = "" + detects[0];
  60.     } catch (e) {
  61.         return null;
  62.     }
  63.     if (dStr === "null" || dStr === "" || dStr === "undefined") return null;
  64.     var m = dStr.match(/¾ØÐÎÇøÓò:([\d.]+),\s*([\d.]+),\s*([\d.]+),\s*([\d.]+)/);
  65.     if (m) {
  66.         var left = parseFloat(m[1]);
  67.         var top = parseFloat(m[2]);
  68.         var right = parseFloat(m[3]);
  69.         var bottom = parseFloat(m[4]);
  70.         return {
  71.             left: left,
  72.             top: top,
  73.             right: right,
  74.             bottom: bottom,
  75.             centerX: (left + right) / 2,
  76.             centerY: (top + bottom) / 2,
  77.             width: right - left,
  78.             height: bottom - top
  79.         };
  80.     }
  81.     return null;
  82. }

  83. function ÕÒͼµã»÷(cvÎļþÃû, ÃèÊö) {
  84.     var ×ø±ê = ÕÒͼ»ñÈ¡×ø±ê(cvÎļþÃû);
  85.     if (!×ø±ê) {
  86.         print.log("✗ δÕÒµ½¡¾" + ÃèÊö + "¡¿µÄͼɫƥÅä");
  87.         return false;
  88.     }
  89.     agent.clickPercent(×ø±ê.centerX, ×ø±ê.centerY);
  90.     print.log("✓ Òѵã»÷¡¾" + ÃèÊö + "¡¿£¨Í¼É«Æ¥Å䣩£¬°Ù·Ö±È×ø±ê(" + ×ø±ê.centerX.toFixed(4) + "," + ×ø±ê.centerY.toFixed(4) + ")");
  91.     return true;
  92. }

  93. function µÈ´ýÕÒͼ³É¹¦(cvÎļþÃû, ÃèÊö, ³¬Ê±Ãë) {
  94.     var ¿ªÊ¼Ê±¼ä = Date.now();
  95.     var ³¬Ê±ºÁÃë = ³¬Ê±Ãë * 1000;

  96.     while (Date.now() - ¿ªÊ¼Ê±¼ä < ³¬Ê±ºÁÃë) {
  97.         var ×ø±ê = ÕÒͼ»ñÈ¡×ø±ê(cvÎļþÃû);
  98.         if (×ø±ê) {
  99.             var Òѵȴý = Math.floor((Date.now() - ¿ªÊ¼Ê±¼ä) / 1000);
  100.             print.log("✓ ÔÚ " + Òѵȴý + " ÃëºóÕÒµ½¡¾" + ÃèÊö + "¡¿");
  101.             return ×ø±ê;
  102.         }
  103.         sleep.second(Ãë = 1);
  104.     }
  105.     print.log("✗ µÈ´ý " + ³¬Ê±Ãë + " ÃëºóδÕÒµ½¡¾" + ÃèÊö + "¡¿");
  106.     return null;
  107. }

  108. // ========== »ñÈ¡UIÔ´Â뺯Êý ==========
  109. function »ñÈ¡UI() {
  110.     var ÁÙʱÎļþ = "/sdcard/ui_dump.xml";
  111.     agent.shell("uiautomator dump --compressed " + ÁÙʱÎļþ + " 2>/dev/null");
  112.     var ½á¹û = agent.shell("cat " + ÁÙʱÎļþ);
  113.    
  114.     if (!½á¹û) return "";
  115.    
  116.     var ½á¹û×Ö·û´® = "";
  117.     if (typeof ½á¹û === "string") {
  118.         ½á¹û×Ö·û´® = ½á¹û;
  119.     } else if (½á¹û.toString) {
  120.         ½á¹û×Ö·û´® = ½á¹û.toString();
  121.     } else {
  122.         ½á¹û×Ö·û´® = "" + ½á¹û;
  123.     }
  124.    
  125.     var startIdx = -1;
  126.     if (typeof ½á¹û×Ö·û´®.indexOf === "function") {
  127.         startIdx = ½á¹û×Ö·û´®.indexOf("successMsg:");
  128.     }
  129.    
  130.     var content = "";
  131.     if (startIdx !== -1) {
  132.         var afterSuccess = ½á¹û×Ö·û´®.substring(startIdx + 11);
  133.         var errorIdx = afterSuccess.indexOf(",errorMsg:");
  134.         if (errorIdx !== -1) {
  135.             content = afterSuccess.substring(0, errorIdx);
  136.             var endMarker = content.indexOf("UI hierchary dumped to:");
  137.             if (endMarker !== -1) {
  138.                 content = content.substring(0, endMarker);
  139.             }
  140.         } else {
  141.             content = afterSuccess;
  142.         }
  143.         content = content.trim();
  144.     } else {
  145.         content = ½á¹û×Ö·û´®;
  146.     }
  147.    
  148.     return "" + content;
  149. }

  150. // ========== ɾ³ýÓ¦Óú¯Êý£¨Ê¹ÓÃtouchDown/touchMove/touchUpÕýÈ·Ó÷¨£©==========
  151. function ɾ³ýÓ¦ÓÃ(appCvFile, trashCvFile, appName) {
  152.     print.log("\n--- ¿ªÊ¼É¾³ý¡¾" + appName + "¡¿---");
  153.    
  154.     var app×ø±ê = ÕÒͼ»ñÈ¡×ø±ê(appCvFile);
  155.     if (!app×ø±ê) {
  156.         print.log("✗ δÕÒµ½¡¾" + appName + "¡¿Í¼±ê");
  157.         return false;
  158.     }
  159.     print.log("✓ ÕÒµ½¡¾" + appName + "¡¿Í¼±ê£¬ÖÐÐÄ×ø±ê(" + app×ø±ê.centerX.toFixed(4) + ", " + app×ø±ê.centerY.toFixed(4) + ")");
  160.    
  161.     var appX = Math.floor(app×ø±ê.centerX * ÆÁÄ»¿í);
  162.     var appY = Math.floor(app×ø±ê.centerY * ÆÁÄ»¸ß);
  163.    
  164.     var trashX = Math.floor(ÆÁÄ»¿í * 0.15);
  165.     var trashY = 60;
  166.     print.log("&#128204; ʹÓÃÀ¬»øÍ°ÖÐÐĵã×ø±ê£º(" + trashX + ", " + trashY + ")");
  167.    
  168.     var ´¥Ãþid = 0;
  169.    
  170.     print.log("&#128260; touchDown(" + ´¥Ãþid + ", " + appX + ", " + appY + ")");
  171.     agent.touchDown(´¥Ãþid, appX, appY);
  172.    
  173.     print.log("&#128260; ³¤°´3Ãë´¥·¢±à¼­Ä£Ê½...");
  174.     for (var i = 0; i < 30; i++) {
  175.         agent.touchMove(´¥Ãþid, appX, appY);
  176.         sleep.millisecond(ºÁÃë = 100);
  177.     }
  178.    
  179.     print.log("&#128260; Ö±½ÓÍ϶¯µ½¶¥²¿Ð¶Ôذ´Å¥...");
  180.     var stepX = (trashX - appX) / 30;
  181.     var stepY = (trashY - appY) / 30;
  182.     for (var i = 1; i <= 30; i++) {
  183.         var currX = Math.floor(appX + stepX * i);
  184.         var currY = Math.floor(appY + stepY * i);
  185.         agent.touchMove(´¥Ãþid, currX, currY);
  186.         sleep.millisecond(ºÁÃë = 50);
  187.     }
  188.    
  189.     print.log("&#128260; ÔÚÐ¶ÔØÇøÓòÍ£Áô2ÃëµÈ´ý±äºì...");
  190.     for (var i = 0; i < 20; i++) {
  191.         agent.touchMove(´¥Ãþid, trashX, trashY);
  192.         sleep.millisecond(ºÁÃë = 100);
  193.     }
  194.    
  195.     print.log("&#128260; touchUp(" + ´¥Ãþid + ")");
  196.     agent.touchUp(´¥Ãþid);
  197.    
  198.     sleep.second(Ãë = 3);
  199.    
  200.     print.log("✓ ¡¾" + appName + "¡¿É¾³ý²Ù×÷Íê³É");
  201.     return true;
  202. }

  203. // ========== »ñÈ¡×ÀÃæÓÎÏ·°üÃû ==========
  204. print.log("\n--- ²½Öè1£º»ñÈ¡×ÀÃæUIÔ´Âë ---");
  205. var xml = »ñÈ¡UI();
  206. print.log("✓ »ñÈ¡UIÔ´Âë³É¹¦£¬³¤¶È£º" + xml.length);

  207. print.log("\n--- ²½Öè2£ºÌáÈ¡×ÀÃæÓ¦ÓðüÃû ---");
  208. var packageRegex = /package="([^"]+)"/g;
  209. var packages = [];
  210. var match;
  211. while ((match = packageRegex.exec(xml)) !== null) {
  212.     var pkg = match[1];
  213.     if (pkg.indexOf("launcher") === -1 && pkg.indexOf("system") === -1 && packages.indexOf(pkg) === -1) {
  214.         packages.push(pkg);
  215.     }
  216. }

  217. print.log("&#128241; ×ÀÃæÓ¦ÓðüÃûÁÐ±í£º");
  218. for (var i = 0; i < packages.length; i++) {
  219.     print.log("  " + (i + 1) + ". " + packages[i]);
  220. }

  221. // ========== ɾ³ýµÚÒ»¸öÓ¦Óã¨Í¼É«1.cv£©==========
  222. print.log("\n--- ²½Öè3£ºÉ¾³ýÓ¦ÓÃ1£¨" + CV_FILE_APP_1 + "£©---");

  223. print.log("\n&#128204; ×Ó²½Öè3.1£º´ò¿ªÓ¦ÓÃ1");
  224. if (ÕÒͼµã»÷(CV_FILE_APP_1, "Ó¦ÓÃ1ͼ±ê")) {
  225.     sleep.second(Ãë = 3);
  226.     print.log("✓ Ó¦ÓÃ1ÒÑ´ò¿ª");
  227.    
  228.     print.log("\n&#128204; ×Ó²½Öè3.2£º·µ»Ø×ÀÃæ");
  229.     agent.home();
  230.     sleep.second(Ãë = 2);
  231.     print.log("✓ ÒÑ·µ»Ø×ÀÃæ");
  232. } else {
  233.     print.log("⚠ Ó¦ÓÃ1δÕÒµ½£¬Ìø¹ý´ò¿ª²½Öè");
  234. }

  235. print.log("\n&#128204; ×Ó²½Öè3.3£º³¤°´Ó¦ÓÃ1ͼ±êÍϵ½À¬»øÏä");
  236. ɾ³ýÓ¦ÓÃ(CV_FILE_APP_1, CV_FILE_TRASH, "Ó¦ÓÃ1");

  237. sleep.second(Ãë = 3);

  238. // ========== ɾ³ýµÚ¶þ¸öÓ¦Óã¨Í¼É«2.cv£©==========
  239. print.log("\n--- ²½Öè4£ºÉ¾³ýÓ¦ÓÃ2£¨" + CV_FILE_APP_2 + "£©---");

  240. print.log("\n&#128204; ×Ó²½Öè4.1£º´ò¿ªÓ¦ÓÃ2");
  241. if (ÕÒͼµã»÷(CV_FILE_APP_2, "Ó¦ÓÃ2ͼ±ê")) {
  242.     sleep.second(Ãë = 3);
  243.     print.log("✓ Ó¦ÓÃ2ÒÑ´ò¿ª");
  244.    
  245.     print.log("\n&#128204; ×Ó²½Öè4.2£º¹Ø±ÕÓ¦ÓÃ2²¢·µ»Ø×ÀÃæ");
  246.     agent.home();
  247.     sleep.second(Ãë = 2);
  248.     print.log("✓ ÒÑ·µ»Ø×ÀÃæ");
  249. } else {
  250.     print.log("⚠ Ó¦ÓÃ2δÕÒµ½£¬Ìø¹ý´ò¿ª²½Öè");
  251. }

  252. print.log("\n&#128204; ×Ó²½Öè4.3£º³¤°´Ó¦ÓÃ2ͼ±êÍϵ½À¬»øÏä");
  253. ɾ³ýÓ¦ÓÃ(CV_FILE_APP_2, CV_FILE_TRASH, "Ó¦ÓÃ2");

  254. sleep.second(Ãë = 3);

  255. // ========== Ñé֤ɾ³ý½á¹û ==========
  256. print.log("\n--- ²½Öè5£ºÑé֤ɾ³ý½á¹û ---");

  257. var app1´æÔÚ = false;
  258. var app2´æÔÚ = false;

  259. try {
  260.     app1´æÔÚ = µ÷ÓÃÕÒͼ(CV_FILE_APP_1) != null;
  261. } catch (e) {}

  262. try {
  263.     app2´æÔÚ = µ÷ÓÃÕÒͼ(CV_FILE_APP_2) != null;
  264. } catch (e) {}

  265. print.log("&#128269; ÑéÖ¤½á¹û£º");
  266. print.log("  Ó¦ÓÃ1£¨" + CV_FILE_APP_1 + "£©£º" + (app1´æÔÚ ? "✗ ÈÔ´æÔÚ" : "✓ ÒÑɾ³ý"));
  267. print.log("  Ó¦ÓÃ2£¨" + CV_FILE_APP_2 + "£©£º" + (app2´æÔÚ ? "✗ ÈÔ´æÔÚ" : "✓ ÒÑɾ³ý"));

  268. print.log("\n===== ɾ³ýÓ¦ÓÃʾÀý½áÊø =====");
¸´ÖÆ´úÂë


»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

¹Ø±Õ

QQ|»ÓªÏúÈí¼þ×ÛºÏÌÖÂÛ|»ÓªÏúÈí¼þÓÐÎʱشð|»ÓªÏúÈí¼þ½Ì³Ì×¨Çø|»ÓªÏúÈí¼þPOST½Å±¾·ÖÏí|»ÓªÏúÈí¼þÆÕͨ½Å±¾·ÖÏí|»ÓªÏúÈí¼þÈí¼þ×ÊѶ|»ÓªÏúÈí¼þ¾«Æ·Èí¼þ|»ÓªÏúÈí¼þ¸üй«¸æ|ÓªÏúÈí¼þ|B2BÈí¼þ|B2BÍøÂçÈí¼þ ( ¾©ICP±¸09078825ºÅ )±¾ÍøÕ¾¿ª·¢µÄÓªÏúÈí¼þÊÇÒ»¿îеÄÍøÂçÓªÏúÈí¼þ£¬Õâ¿îÓªÏú¿ÉÒÔÈ¥ÍøÕ¾Èí¼þ£¬²©¿ÍÈí¼þ£¬B2BÈí¼þ£¬·ÖÀàÐÅÏ¢Íø·¢Ìù£¬¿ÉÒÔÇÀɳ·¢£¬¿ÉÒÔµ½°Ù¶ÈÎÄ¿âÉÏ´«WORDÎĵµ£¬¿ÉÒÔµ½Ò»Ð©ÊÇÏà²áÍøÕ¾×Ô¶¯ÉÏ´«Í¼Æ¬£¬Õâ¸ö×Ô¶¯·¢ÌûÈí¼þ×Ô´øÔÆÖ©Ö룬¼Ó¿ìÊÕ¼£¬ÓÐ6ÖÖ¶Ô½Ó´òÂë½Ó¿Ú£¬·½±ã£¬Ð§Âʸߣ¬Ëٶȿ죬¶øÇÒ¶ÔÍ϶¯µÄÑéÖ¤ÂëÈ«ÍøµÚÒ»¼Ò¶À¼ÒÖ§³Ö£¬È«²¿Ô­´´¼¼Êõ£¬¶À¼ÒÑз¢£¬Õý°æÔ­´´´ø°æÈ¨Èí¼þ¡£Ñ¡ÔñÍòÄÜÓªÏúÈí¼þ£¬¾ÍÑ¡ÔñÁËÒ»ÖÖ׬ǮµÄЧÂÊ£¬´ÓûÓб»³¬Ô½¹ý£¬Ò»Ö±ÔÚŬÁ¦Ñз¢Ð¼¼Êõ¡£·Å·ÉÃÎÏ룬½â·ÅË«ÊÖ£¬À´µã´´Ò⣬³É¾ÍÄãµÄÃÎÏ룬¾ÍÔÚÍòÄÜÓªÏúÈí¼þ¿ªÊ¼

map2

GMT+8, 2026-7-22 22:56 , Processed in 0.118160 second(s), 37 queries .

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí