信息发布软件,b2b软件,广告发布软件

 找回密码
 立即注册
搜索
查看: 1|回复: 0
打印 上一主题 下一主题

[宣传软件网站动态] 安卓AIWROK获取包名所有方法汇总

[复制链接]

1948

主题

1958

帖子

1万

积分

积分
11414

资讯缩略图:

资讯发布日期:2026-07-30

资讯发布简介:安卓AIWROK获取包名所有方法汇总

资讯关键词:安卓AIWROK获取包名所有方法汇总

资讯所属分类:IT资讯 

联系:

① 本信息收集于网络,如有不对的地方欢迎联系我纠正!
② 本信息免费收录,不存在价格的问题!
③ 如果您的网站也想这样出现在这里,请您加好友情链接,我当天会审核通过!

④友情链接关键字:软件网站分类目录 网址:http://www.postbbs.com/

资讯详细描述
安卓AIWROK获取包名所有方法汇总
安卓AIWROK获取包名所有方法汇总 b2b软件

  1. /*
  2. * ============================================================
  3. *  安卓AIWROK 获取包名所有方法汇总
  4. *  整理日期: 2026-07-29
  5. *  涵盖: 代理模式 / 无碍模式 / HID模式 / 通用API / 原生Android API
  6. *  样式: 黑白极简 · 几何排版 · 层次分明
  7. * ============================================================ */


  8. // ========== 工具函数 ==========

  9. function 清理shell输出(raw) {
  10.     if (!raw) return "";
  11.     var str = "" + raw;
  12.     if (str.indexOf("successMsg:") === 0) {
  13.         str = str.substring("successMsg:".length);
  14.     }
  15.     var errIdx = str.lastIndexOf(",errorMsg:");
  16.     if (errIdx !== -1) {
  17.         str = str.substring(0, errIdx);
  18.     }
  19.     return str;
  20. }

  21. function 获取列表大小(list) {
  22.     if (!list) return 0;
  23.     try {
  24.         if (typeof list.size === "function") return list.size();
  25.         if (typeof list.length === "number") return list.length;
  26.         if (list.getClass && list.getClass().isArray()) {
  27.             return java.lang.reflect.Array.getLength(list);
  28.         }
  29.     } catch (e) {}
  30.     return 0;
  31. }

  32. function 获取列表元素(list, index) {
  33.     if (!list) return null;
  34.     try {
  35.         if (list.get) return list.get(index);
  36.         if (list[index] !== undefined) return list[index];
  37.     } catch (e) {}
  38.     return null;
  39. }

  40. function 安全截取(str, maxLen) {
  41.     if (!str) return "";
  42.     var s = "" + str;
  43.     if (isNaN(maxLen) || maxLen <= 0) return s;
  44.     if (s.length <= maxLen) return s;
  45.     return s.substring(0, maxLen) + "...";
  46. }

  47. // ========== 样式函数 ==========

  48. var W = 56; // 输出宽度

  49. function 顶部框(标题) {
  50.     var line = "";
  51.     for (var i = 0; i < W - 2; i++) line += "━";
  52.     printl("┏" + line + "┓");
  53.     var padding = Math.floor((W - 2 - 标题.length) / 2);
  54.     var p = "";
  55.     for (var i = 0; i < padding; i++) p += " ";
  56.     var rightPad = "";
  57.     var total = padding * 2 + 标题.length;
  58.     for (var i = 0; i < (W - 2 - total); i++) rightPad += " ";
  59.     printl("┃" + p + 标题 + rightPad + "┃");
  60.     var line2 = "";
  61.     for (var i = 0; i < W - 2; i++) line2 += "━";
  62.     printl("┗" + line2 + "┛");
  63. }

  64. function 分隔线() {
  65.     var line = "";
  66.     for (var i = 0; i < W - 2; i++) line += "─";
  67.     printl("├" + line + "┤");
  68. }

  69. function 细分隔() {
  70.     var line = "";
  71.     for (var i = 0; i < W; i++) line += "·";
  72.     printl(line);
  73. }

  74. function 底部框(标题) {
  75.     var line = "";
  76.     for (var i = 0; i < W - 2; i++) line += "━";
  77.     var padding = Math.floor((W - 2 - 标题.length) / 2);
  78.     var p = "";
  79.     for (var i = 0; i < padding; i++) p += " ";
  80.     var rightPad = "";
  81.     var total = padding * 2 + 标题.length;
  82.     for (var i = 0; i < (W - 2 - total); i++) rightPad += " ";
  83.     printl("┏" + line + "┓");
  84.     printl("┃" + p + 标题 + rightPad + "┃");
  85.     var line2 = "";
  86.     for (var i = 0; i < W - 2; i++) line2 += "━";
  87.     printl("┗" + line2 + "┛");
  88. }

  89. function 状态(文字) {
  90.     printl("  ┌─ " + 文字);
  91. }

  92. function 数据行(标签, 值) {
  93.     printl("  │  " + 标签 + "  " + 值);
  94. }

  95. function 结果行(标签, 值) {
  96.     printl("  ● " + 标签 + "  " + 值);
  97. }

  98. function 列表项(索引, 内容) {
  99.     var num = "" + 索引;
  100.     if (num.length < 2) num = " " + num;
  101.     printl("  ┊ " + num + "  " + 内容);
  102. }

  103. // ========== 核心: 可靠获取顶端包名 ==========
  104. function 可靠获取顶端包名() {
  105.     var 方法列表 = [
  106.         { 名称: "app.getTopPackName()", 执行: function() { return app.getTopPackName(); } },
  107.         { 名称: "app.getTopPackNameV2()", 执行: function() { return app.getTopPackNameV2(); } },
  108.         { 名称: "app.getCurrentActivity()", 执行: function() { var v = app.getCurrentActivity(); return v ? v.split("/")[0] : ""; } },
  109.         { 名称: "app.getAgentCurrenAcitvity()", 执行: function() { var v = app.getAgentCurrenAcitvity(); return v ? v.split("/")[0] : ""; } },
  110.         { 名称: "ActivityManager.getRunningTasks()[0]", 执行: function() {
  111.             try { importClass(android.app.ActivityManager); var am = context.getSystemService(context.ACTIVITY_SERVICE); var tasks = am.getRunningTasks(1); if (tasks && tasks.size() > 0) return tasks.get(0).topActivity.getPackageName(); } catch(e) {} return ""; } },
  112.         { 名称: "ActivityManager.getRunningAppProcesses()[0]", 执行: function() {
  113.             try { importClass(android.app.ActivityManager); var am = context.getSystemService(context.ACTIVITY_SERVICE); var procs = am.getRunningAppProcesses(); if (procs && procs.size() > 0) return procs.get(0).processName; } catch(e) {} return ""; } },
  114.         { 名称: "shell dumpsys window", 执行: function() {
  115.             try { var raw = agent.shell("dumpsys window | grep mCurrentFocus"); var out = 清理shell输出(raw); var m = out.match(/(\w+\.\w+[\w.]*)\//); if (m) return m[1]; } catch(e) {} return ""; } },
  116.         { 名称: "shell dumpsys activity", 执行: function() {
  117.             try { var raw = agent.shell("dumpsys activity activities | grep mResumedActivity"); var out = 清理shell输出(raw); var m = out.match(/(\w+\.\w+[\w.]*)\//); if (m) return m[1]; } catch(e) {} return ""; } }
  118.     ];
  119.     for (var i = 0; i < 方法列表.length; i++) {
  120.         var r = "";
  121.         try { r = 方法列表[i].执行(); } catch(e) { r = ""; }
  122.         if (r && r.trim() !== "") {
  123.             return { 包名: r.trim(), 方法: 方法列表[i].名称, 序号: i + 1, 总数: 方法列表.length };
  124.         }
  125.     }
  126.     return { 包名: "", 方法: "无", 序号: 0, 总数: 方法列表.length };
  127. }

  128. function 可靠获取运行中进程() {
  129.     try {
  130.         importClass(android.app.ActivityManager);
  131.         var am = context.getSystemService(context.ACTIVITY_SERVICE);
  132.         var procs = am.getRunningAppProcesses();
  133.         if (procs && procs.size() > 0) {
  134.             var list = [];
  135.             for (var i = 0; i < procs.size(); i++) {
  136.                 var p = procs.get(i);
  137.                 list.push({ 包名: p.processName, PID: p.pid, 重要性: p.importance });
  138.             }
  139.             return { 方法: "ActivityManager.getRunningAppProcesses()", 列表: list };
  140.         }
  141.     } catch(e) {}
  142.     try {
  143.         var raw = agent.shell("ps -A | grep u0_a | grep -v :");
  144.         var out = 清理shell输出(raw);
  145.         var ln = out.split("\n");
  146.         var list = [];
  147.         for (var i = 0; i < ln.length; i++) {
  148.             var m = ln[i].match(/\s(\w+\.\w+[\w.]*)$/);
  149.             if (m) list.push({ 包名: m[1], PID: "", 重要性: "" });
  150.         }
  151.         if (list.length > 0) return { 方法: "shell ps", 列表: list };
  152.     } catch(e) {}
  153.     return { 方法: "无", 列表: [] };
  154. }


  155. // ════════════════════════════════════════════════════════
  156. //  启动
  157. // ════════════════════════════════════════════════════════

  158. 顶部框("AIWROK  获取包名方法总汇");
  159. printl("  模式: 代理 / 无碍 / HID / 原生API / Shell");
  160. printl("  机制: 自动降级  框架空值时切换可靠方法");
  161. printl("");

  162. // ── 核心预演 ──
  163. 状态("核心预演: 自动降级链获取顶端包名");
  164. var pre = 可靠获取顶端包名();
  165. if (pre.包名) {
  166.     结果行("命中", pre.方法 + " (" + pre.序号 + "/" + pre.总数 + ")");
  167.     数据行("包名", pre.包名);
  168. } else {
  169.     结果行("全部8种方法均返回空", "");
  170. }
  171. printl("");
  172. 状态("5秒后开始逐方法演示...");
  173. sleep.second(5);


  174. // ════════════════════════════════════════════════════════
  175. //  第一部分: 通用 API
  176. // ════════════════════════════════════════════════════════

  177. 顶部框("第一部分  通用 app.* API");

  178. // 1.1
  179. 状态("1.1  app.getTopPackName()");
  180. var r1 = app.getTopPackName();
  181. if (r1 && r1.trim()) { 结果行("返回", r1); }
  182. else { 结果行("空值", "降级 -> " + 可靠获取顶端包名().方法); }
  183. sleep.second(3);

  184. // 1.2
  185. 状态("1.2  app.getTopPackNameV2()");
  186. var r2 = app.getTopPackNameV2();
  187. if (r2 && r2.trim()) { 结果行("返回", r2); }
  188. else { 结果行("空值", "降级 -> " + 可靠获取顶端包名().方法); }
  189. sleep.second(3);

  190. // 1.3
  191. 状态("1.3  app.getPackName()  [AIWORK自身]");
  192. var r3 = app.getPackName();
  193. if (r3 && r3.trim()) { 结果行("自身包名", r3); }
  194. else {
  195.     try { var s3 = context.getPackageName(); 结果行("context.getPackageName()", s3); }
  196.     catch(e) { 结果行("全部失败", e.message); }
  197. }
  198. sleep.second(3);

  199. // 1.4
  200. 状态("1.4  app.getAgentCurrenAcitvity()  [代理模式]");
  201. var r4 = app.getAgentCurrenAcitvity();
  202. if (r4 && r4.trim()) { 结果行("Activity", r4); 数据行("包名", r4.split("/")[0]); }
  203. else {
  204.     结果行("空值", "代理未连接 -> 尝试无碍模式");
  205.     try {
  206.         var r4b = app.getCurrentActivity();
  207.         if (r4b && r4b.trim()) { 结果行("无碍Activity", r4b); 数据行("包名", r4b.split("/")[0]); }
  208.         else { 结果行("无碍也空", "降级 -> " + 可靠获取顶端包名().包名); }
  209.     } catch(e) { 结果行("失败", e.message); }
  210. }
  211. sleep.second(3);

  212. // 1.5
  213. 状态("1.5  app.getCurrentActivity()  [无碍模式]");
  214. var r5 = app.getCurrentActivity();
  215. if (r5 && r5.trim()) { 结果行("Activity", r5); 数据行("包名", r5.split("/")[0]); }
  216. else { 结果行("空值", ""); }
  217. sleep.second(3);

  218. // 1.6
  219. 状态("1.6  app.getAllApp()  [所有已安装应用]");
  220. var r6 = app.getAllApp();
  221. var c6 = 获取列表大小(r6);
  222. 数据行("应用数", "" + c6);
  223. for (var i = 0; i < Math.min(c6, 8); i++) {
  224.     列表项(i, "" + 获取列表元素(r6, i));
  225. }
  226. if (c6 > 8) printl("  ┊  ... 共" + c6 + "个, 仅显示前8");
  227. sleep.second(3);

  228. // 1.7
  229. 状态("1.7  app.logRunningProcesses()  [运行中进程]");
  230. var r7 = app.logRunningProcesses();
  231. if (r7 && r7.trim()) {
  232.     try {
  233.         var obj = JSON.parse("" + r7);
  234.         if (obj.processes) {
  235.             数据行("进程数", "" + obj.processes.length);
  236.             for (var i = 0; i < Math.min(obj.processes.length, 5); i++) {
  237.                 列表项(i, obj.processes[i].processName + " (PID:" + obj.processes[i].pid + ")");
  238.             }
  239.         }
  240.     } catch(e) { 数据行("原始", 安全截取(r7, 200)); }
  241. } else {
  242.     var r7b = 可靠获取运行中进程();
  243.     结果行("空值", "降级 -> " + r7b.方法);
  244.     数据行("进程数", "" + r7b.列表.length);
  245.     for (var i = 0; i < Math.min(r7b.列表.length, 5); i++) {
  246.         列表项(i, r7b.列表[i].包名);
  247.     }
  248. }
  249. sleep.second(3);

  250. // 1.8
  251. 状态("1.8  app.getAppName(pkg)  [包名->应用名]");
  252. var r8 = app.getAppName("com.tencent.mm");
  253. if (r8 && r8.trim()) { 结果行("com.tencent.mm", r8); }
  254. else { 结果行("空值", "应用可能未安装"); }
  255. sleep.second(3);

  256. // 1.9
  257. 状态("1.9  HID模式  hid.getTopPackName() / hid.getCurrentActivity()");
  258. try {
  259.     var h1 = hid.getTopPackName();
  260.     数据行("hid.getTopPackName()", "" + (h1 || "(空)"));
  261.     var h2 = hid.getCurrentActivity();
  262.     数据行("hid.getCurrentActivity()", "" + (h2 || "(空)"));
  263. } catch(e) { 结果行("HID错误", e.message + " (未连接HID硬件)"); }
  264. sleep.second(3);

  265. 底部框("第一部分完成");
  266. sleep.second(3);


  267. // ════════════════════════════════════════════════════════
  268. //  第二部分: Shell 命令方法
  269. // ════════════════════════════════════════════════════════

  270. 顶部框("第二部分  代理模式 Shell 命令");

  271. // 2.1
  272. 状态("2.1  ps -A  [所有进程]");
  273. var s1 = 清理shell输出(agent.shell("ps -A"));
  274. var l1 = s1.split("\n");
  275. 数据行("总行数", "" + l1.length);
  276. for (var i = 0; i < Math.min(l1.length, 5); i++) printl("  │  " + l1[i]);
  277. sleep.second(3);

  278. // 2.2
  279. 状态("2.2  ps -A | grep u0_a  [第三方应用进程]");
  280. var s2 = 清理shell输出(agent.shell("ps -A | grep u0_a | grep -v :"));
  281. var l2 = s2.split("\n");
  282. var p2 = [];
  283. for (var i = 0; i < l2.length; i++) {
  284.     var m = l2[i].match(/\s(\w+\.\w+[\w.]*)$/);
  285.     if (m) p2.push(m[1]);
  286. }
  287. 数据行("进程数", "" + p2.length);
  288. for (var i = 0; i < Math.min(p2.length, 10); i++) 列表项(i, p2[i]);
  289. sleep.second(3);

  290. // 2.3
  291. 状态("2.3  pm list packages  [所有已安装包名]");
  292. var s3 = 清理shell输出(agent.shell("pm list packages"));
  293. var l3 = [];
  294. var seg = s3.split("package:");
  295. for (var i = 1; i < seg.length; i++) {
  296.     var pkg = seg[i].trim();
  297.     var nl = pkg.indexOf("\n");
  298.     if (nl !== -1) pkg = pkg.substring(0, nl).trim();
  299.     if (pkg) l3.push(pkg);
  300. }
  301. 数据行("包数", "" + l3.length);
  302. for (var i = 0; i < Math.min(l3.length, 10); i++) 列表项(i, l3[i]);
  303. if (l3.length > 10) printl("  ┊  ... 共" + l3.length + "个, 仅显示前10");
  304. sleep.second(3);

  305. // 2.4
  306. 状态("2.4  pm list packages -3  [仅第三方]");
  307. var s4 = 清理shell输出(agent.shell("pm list packages -3"));
  308. var l4 = [];
  309. var seg4 = s4.split("package:");
  310. for (var i = 1; i < seg4.length; i++) {
  311.     var pkg = seg4[i].trim();
  312.     var nl = pkg.indexOf("\n");
  313.     if (nl !== -1) pkg = pkg.substring(0, nl).trim();
  314.     if (pkg) l4.push(pkg);
  315. }
  316. 数据行("第三方数", "" + l4.length);
  317. for (var i = 0; i < Math.min(l4.length, 10); i++) 列表项(i, l4[i]);
  318. sleep.second(3);

  319. // 2.5
  320. 状态("2.5  dumpsys window | grep mCurrentFocus  [当前窗口]");
  321. try {
  322.     var s5 = 清理shell输出(agent.shell("dumpsys window | grep mCurrentFocus"));
  323.     数据行("原始", 安全截取(s5, 120));
  324.     var m5 = s5.match(/(\w+\.\w+[\w.]*)\//);
  325.     结果行("包名", m5 ? m5[1] : "(未识别)");
  326. } catch(e) { 结果行("失败", e.message); }
  327. sleep.second(3);

  328. // 2.6
  329. 状态("2.6  dumpsys activity activities | grep mResumedActivity");
  330. try {
  331.     var s6 = 清理shell输出(agent.shell("dumpsys activity activities | grep mResumedActivity"));
  332.     数据行("原始", 安全截取(s6, 120));
  333.     var m6 = s6.match(/(\w+\.\w+[\w.]*)\//);
  334.     结果行("包名", m6 ? m6[1] : "(未识别)");
  335. } catch(e) { 结果行("失败", e.message); }
  336. sleep.second(3);

  337. // 2.7
  338. 状态("2.7  pidof com.tencent.mm  [进程检测]");
  339. var s7 = 清理shell输出(agent.shell("pidof com.tencent.mm"));
  340. if (s7 && s7.trim()) { 结果行("运行中", "PID: " + s7.trim()); }
  341. else { 结果行("未运行", "com.tencent.mm"); }
  342. sleep.second(3);

  343. 底部框("第二部分完成");
  344. sleep.second(3);


  345. // ════════════════════════════════════════════════════════
  346. //  第三部分: Android 原生 API
  347. // ════════════════════════════════════════════════════════

  348. 顶部框("第三部分  Android 原生 API");

  349. importClass(android.app.ActivityManager);
  350. importClass(android.content.Context);
  351. importClass(android.content.pm.PackageManager);
  352. importClass(android.app.usage.UsageStatsManager);
  353. importClass(android.app.usage.UsageStats);

  354. var am = context.getSystemService(context.ACTIVITY_SERVICE);

  355. // 3.1
  356. 状态("3.1  ActivityManager.getRunningTasks()  [任务栈]");
  357. try {
  358.     var tasks = am.getRunningTasks(100);
  359.     var tc = 获取列表大小(tasks);
  360.     数据行("任务数", "" + tc);
  361.     for (var i = 0; i < Math.min(tc, 5); i++) {
  362.         var t = 获取列表元素(tasks, i);
  363.         if (t && t.topActivity) {
  364.             列表项(i, t.topActivity.getPackageName() + " / " + t.topActivity.getClassName());
  365.         }
  366.     }
  367.     if (tc > 0) 结果行("顶端包名", "" + 获取列表元素(tasks, 0).topActivity.getPackageName());
  368. } catch(e) { 结果行("失败", e.message); }
  369. sleep.second(3);

  370. // 3.2
  371. 状态("3.2  ActivityManager.getRunningAppProcesses()  [最可靠]");
  372. try {
  373.     var procs = am.getRunningAppProcesses();
  374.     var pc = 获取列表大小(procs);
  375.     数据行("进程数", "" + pc);
  376.     var pnames = [];
  377.     for (var i = 0; i < pc; i++) {
  378.         var p = 获取列表元素(procs, i);
  379.         if (p) {
  380.             pnames.push(p.processName);
  381.             if (i < 10) 列表项(i, p.processName + " (PID:" + p.pid + ", 重要性:" + p.importance + ")");
  382.         }
  383.     }
  384.     数据行("运行中包名", pnames.join(", "));
  385. } catch(e) { 结果行("失败", e.message); }
  386. sleep.second(3);

  387. // 3.3
  388. 状态("3.3  PackageManager.getInstalledPackages()  [所有应用]");
  389. try {
  390.     var pm = context.getPackageManager();
  391.     var pkgs = pm.getInstalledPackages(0);
  392.     var pk = 获取列表大小(pkgs);
  393.     数据行("已安装", "" + pk + " 个");
  394.     for (var i = 0; i < Math.min(pk, 5); i++) {
  395.         var info = 获取列表元素(pkgs, i);
  396.         if (info) {
  397.             var nm = pm.getApplicationLabel(info.applicationInfo).toString();
  398.             列表项(i, nm + " (" + info.packageName + ") v" + info.versionName);
  399.         }
  400.     }
  401. } catch(e) { 结果行("失败", e.message); }
  402. sleep.second(3);

  403. // 3.4
  404. 状态("3.4  应用名 -> 包名  [反查]");
  405. function 反查包名(应用名) {
  406.     try {
  407.         var pm2 = context.getPackageManager();
  408.         var list = pm2.getInstalledPackages(0);
  409.         var sz = 获取列表大小(list);
  410.         for (var i = 0; i < sz; i++) {
  411.             var info = 获取列表元素(list, i);
  412.             if (info) {
  413.                 var nm = pm2.getApplicationLabel(info.applicationInfo).toString();
  414.                 if (nm === 应用名) return info.packageName;
  415.             }
  416.         }
  417.     } catch(e) {}
  418.     return null;
  419. }
  420. var wb = 反查包名("微信");
  421. 结果行("微信", "" + (wb || "(未找到)"));
  422. var dy = 反查包名("抖音");
  423. 结果行("抖音", "" + (dy || "(未找到)"));
  424. sleep.second(3);

  425. // 3.5
  426. 状态("3.5  UsageStatsManager  [最近使用应用]");
  427. try {
  428.     var usm = context.getSystemService(context.USAGE_STATS_SERVICE);
  429.     var now = Packages.java.lang.System.currentTimeMillis();
  430.     var stats = usm.queryUsageStats(
  431.         Packages.android.app.usage.UsageStatsManager.INTERVAL_DAILY,
  432.         now - 1000 * 60 * 60 * 1,
  433.         now
  434.     );
  435.     if (stats && !stats.isEmpty()) {
  436.         var Collections = Packages.java.util.Collections;
  437.         var Comparator = Packages.java.util.Comparator;
  438.         Collections.sort(stats, new Comparator({
  439.             compare: function(a, b) {
  440.                 return java.lang.Long.compare(b.getLastTimeUsed(), a.getLastTimeUsed());
  441.             }
  442.         }));
  443.         var currentPkg = context.getPackageName();
  444.         var cnt = 0;
  445.         var sz = 获取列表大小(stats);
  446.         for (var i = 0; i < sz && cnt < 5; i++) {
  447.             var s = 获取列表元素(stats, i);
  448.             if (s && s.getPackageName() !== currentPkg) {
  449.                 列表项(cnt, s.getPackageName() + "  最后使用: " + new java.util.Date(s.getLastTimeUsed()));
  450.                 cnt++;
  451.             }
  452.         }
  453.     }
  454. } catch(e) { 结果行("失败", e.message + " (可能缺少权限)"); }
  455. sleep.second(3);

  456. // 3.6
  457. 状态("3.6  context.getPackageName()  [AIWORK自身]");
  458. try {
  459.     var self = context.getPackageName();
  460.     数据行("包名", self);
  461.     var pm3 = context.getPackageManager();
  462.     var info = pm3.getApplicationInfo(self, 0);
  463.     var selfName = pm3.getApplicationLabel(info).toString();
  464.     var ver = pm3.getPackageInfo(self, 0);
  465.     数据行("应用名", selfName);
  466.     数据行("版本", ver.versionName + " (code:" + ver.versionCode + ")");
  467. } catch(e) { 结果行("失败", e.message); }
  468. sleep.second(3);

  469. // 3.7
  470. 状态("3.7  应用运行检测  [双重验证]");
  471. function 检查是否运行(目标包名) {
  472.     try {
  473.         var am2 = context.getSystemService(context.ACTIVITY_SERVICE);
  474.         var pl = am2.getRunningAppProcesses();
  475.         var ps = 获取列表大小(pl);
  476.         for (var i = 0; i < ps; i++) {
  477.             var p = 获取列表元素(pl, i);
  478.             if (p && p.processName === 目标包名) return "运行中 (PID:" + p.pid + ")";
  479.         }
  480.         var ts = am2.getRunningTasks(50);
  481.         var tsz = 获取列表大小(ts);
  482.         for (var i = 0; i < tsz; i++) {
  483.             var t = 获取列表元素(ts, i);
  484.             if (t && t.topActivity && t.topActivity.getPackageName() === 目标包名) return "运行中(任务栈)";
  485.         }
  486.         return "未运行";
  487.     } catch(e) { return "检查失败: " + e.message; }
  488. }
  489. 结果行("com.tencent.mm", 检查是否运行("com.tencent.mm"));
  490. 结果行("com.ss.android.ugc.aweme", 检查是否运行("com.ss.android.ugc.aweme"));
  491. sleep.second(3);

  492. 底部框("第三部分完成");
  493. sleep.second(3);


  494. // ════════════════════════════════════════════════════════
  495. //  第四部分: 从 UI/XML 提取
  496. // ════════════════════════════════════════════════════════

  497. 顶部框("第四部分  从 UI / XML 提取包名");

  498. 状态("4.1  agent.getXml()  [XML解析]");
  499. try {
  500.     var xml = agent.getXml();
  501.     var xmlStr = "" + xml;
  502.     var re = /package="([^"]+)"/g;
  503.     var m;
  504.     var list = [];
  505.     while ((m = re.exec(xmlStr)) !== null) {
  506.         if (list.indexOf(m[1]) === -1) list.push(m[1]);
  507.     }
  508.     数据行("提取数", "" + list.length);
  509.     for (var i = 0; i < list.length; i++) 列表项(i, list[i]);
  510.     if (list.length === 0) 结果行("未提取到", "XML长度: " + xmlStr.length + " 字符");
  511. } catch(e) { 结果行("失败", e.message); }
  512. sleep.second(3);

  513. 底部框("第四部分完成");
  514. sleep.second(3);


  515. // ════════════════════════════════════════════════════════
  516. //  第五部分: 总结
  517. // ════════════════════════════════════════════════════════

  518. 顶部框("第五部分  总结与方法索引");

  519. 细分隔();
  520. 状态("可靠方法 (实测可工作)");
  521. 结果行(" 1", "ActivityManager.getRunningAppProcesses()");
  522. 结果行(" 2", "ActivityManager.getRunningTasks()");
  523. 结果行(" 3", "PackageManager.getInstalledPackages()");
  524. 结果行(" 4", "agent.shell('ps -A | grep u0_a')");
  525. 结果行(" 5", "agent.shell('pm list packages -3')");
  526. 结果行(" 6", "agent.shell('dumpsys window')");
  527. 结果行(" 7", "app.getCurrentActivity()  [无碍模式]");
  528. 结果行(" 8", "context.getPackageName()");
  529. 细分隔();
  530. 状态("不稳定方法 (框架封装, 可能返回空)");
  531. 结果行(" 1", "app.getTopPackName()");
  532. 结果行(" 2", "app.getTopPackNameV2()");
  533. 结果行(" 3", "app.getPackName()");
  534. 结果行(" 4", "app.getAgentCurrenAcitvity()");
  535. 结果行(" 5", "app.logRunningProcesses()");
  536. 结果行(" 6", "hid.getTopPackName()  [需HID硬件]");
  537. 细分隔();
  538. 状态("场景快速索引");
  539. 数据行("获取顶端包名", "可靠获取顶端包名()  [自动降级8种]");
  540. 数据行("获取全部应用", "agent.shell('pm list packages -3')");
  541. 数据行("获取运行中进程", "ActivityManager.getRunningAppProcesses()");
  542. 数据行("检查某App运行", "检查是否运行('com.xxx.xxx')");
  543. 数据行("应用名->包名", "反查包名('微信')");
  544. 数据行("AIWORK自身信息", "context.getPackageName() + PackageManager");
  545. 细分隔();

  546. 底部框("全部演示完成");
复制代码





untoAIWROK软件番茄小说自动阅读刷金币示例nextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读
群发软件安卓AIWROK获取包名所有方法汇总
安卓AIWROK获取包名所有方法汇总
群发软件AIWROK软件番茄小说自动阅读刷金币示例
AIWROK软件番茄小说自动阅读刷金币示例
信息发布软件AIWROK软件无碍模式一键删除所有APP版示例
AIWROK软件无碍模式一键删除所有APP版示例
信息发布软件AIWROK软件无碍模式auto模块抖音极速版滑动刷视频
AIWROK软件无碍模式auto模块抖音极速版滑动刷视频
信息发布软件快手极速版自动刷视频无障碍模式
快手极速版自动刷视频无障碍模式
信息发布软件AIWROK软件代理模式一键删除桌面所有APP版示例
AIWROK软件代理模式一键删除桌面所有APP版示例
信息发布软件AIWROK软件自动找图利用agent代理模式删除应用版示例
AIWROK软件自动找图利用agent代理模式删除应用版示例
信息发布软件解析Kimi返回的拖动距离示例
解析Kimi返回的拖动距离示例
信息发布软件自动截图并发送给DEEPSEEK识别示例过程
自动截图并发送给DEEPSEEK识别示例过程
信息发布软件AIWROK软件测试文心识别识别验证码示例
AIWROK软件测试文心识别识别验证码示例
信息发布软件元宝截图B站验证码示例测试
元宝截图B站验证码示例测试
信息发布软件示例千问自动采集文章保存记事本
示例千问自动采集文章保存记事本
信息发布软件豆包识别验证码加拖动验证码示例
豆包识别验证码加拖动验证码示例
信息发布软件豆包对话采集示例
豆包对话采集示例
信息发布软件启动自动百度贴吧发图片
启动自动百度贴吧发图片
信息发布软件自动百度贴吧示例
自动百度贴吧示例
信息发布软件代理模式简书自动流程
代理模式简书自动流程
信息发布软件启动极速版任务页看小说赚钱自动阅读
启动极速版任务页看小说赚钱自动阅读
信息发布软件agent代理模式功能小结
agent代理模式功能小结
信息发布软件完整苹果IOS小脚本文本输入与粘贴流程
完整苹果IOS小脚本文本输入与粘贴流程
信息发布软件AIWROK使用activity列表开关与进度条的协同交互
AIWROK使用activity列表开关与进度条的协同交互
群发软件苹果脚本找图后Detect对象各种方法演示
苹果脚本找图后Detect对象各种方法演示
群发软件苹果脚本网络API监控与数据管理工具
苹果脚本网络API监控与数据管理工具
群发软件IOS苹果脚本TXT文件读写H5日志打印完整示例
IOS苹果脚本TXT文件读写H5日志打印完整示例
群发软件AIWROK软件演示多线程创建暂停恢复
AIWROK软件演示多线程创建暂停恢复
群发软件AIWROK软件定时检查页面状态防止卡死技巧
AIWROK软件定时检查页面状态防止卡死技巧
群发软件安卓脚本runTime相关功能示例
安卓脚本runTime相关功能示例
群发软件floatUI实例秒显示秒关闭吐司功能
floatUI实例秒显示秒关闭吐司功能
群发软件苹果脚本HID多行实例粘帖板示例
苹果脚本HID多行实例粘帖板示例
群发软件安卓脚本HID节点查找完整方法示例
HID节点查找完整方法示例
群发软件AIWROK软件框架的抖音自动化营销系统
AIWROK软件框架的抖音自动化营销系统
群发软件赛博朋克任务控制中心H5示例
赛博朋克任务控制中心H5示例
群发软件苹果脚本现代深色UI设计风格
现代深色UI设计风格
群发软件AIWROK软件智能任务监控悬浮窗
AIWROK软件智能任务监控悬浮窗
群发软件AIWROK软件事件监听示例
AIWROK软件事件监听示例
群发软件QZ掘金原生UI界面
QZ掘金原生UI界面
群发软件安卓脚本auto方法完整示例
安卓脚本auto方法完整示例
群发软件安卓脚本暂停弹出确认对话框
安卓脚本暂停弹出确认对话框
群发软件苹果iOS脚本天气信息查询工具
苹果iOS脚本天气信息查询工具
群发软件安卓脚本简化版H5日志输出窗口
安卓脚本简化版H5日志输出窗口
群发软件安卓脚本简化版H5日志输出窗口
安卓脚本简化版H5日志输出窗口
群发软件安卓脚本应用重置、代理模式监控及补丁升级
安卓脚本应用重置、代理模式监控及补丁升级
群发软件安卓脚本里的打开关闭安装以及卡密授权信息
安卓脚本里的打开关闭安装以及卡密授权信息
群发软件AIWROK软件脚本GET下载文件并检测0KB工具
AIWROK软件脚本GET下载文件并检测0KB工具
群发软件安卓脚本HID按键方法完整示例
安卓脚本HID按键方法完整示例
群发软件AIWROK软件键鼠HID滑动所有方法功能演示
AIWROK软件键鼠HID滑动所有方法功能演示
群发软件苹果脚本里HID的5种滑动方法的使用
苹果脚本里HID的5种滑动方法的使用
群发软件苹果脚本示例7种不同的OCR识别和点击方法
苹果脚本示例7种不同的OCR识别和点击方法
群发软件AIWROK软件安卓脚本FTP上传下载例子
AIWROK软件安卓脚本FTP上传下载例子
群发软件AIWROK软件脚本JSON转换示例
AIWROK软件脚本JSON转换示例
群发软件AIWROK软件运算符高级应用实例
AIWROK软件运算符高级应用实例
群发软件JavaScript语法小示例
JavaScript语法小示例
群发软件展示JavaScript各种语句标识符的实际应用
展示JavaScript各种语句标识符的实际应用
群发软件AIWROK条件语句实用示例智能活动推荐系统
AIWROK条件语句实用示例智能活动推荐系统
群发软件AIWROK软件示例数组方法实战应用
AIWROK软件示例数组方法实战应用
群发软件示例JavaScript的 try-catch-finally-throw用法
示例JavaScript的 try-catch-finally-throw用法
群发软件JavaScript 高级错误处理实战示例
JavaScript 高级错误处理实战示例
群发软件安卓脚本AIWROK软件示例JS函数高级用法
安卓脚本AIWROK软件示例JS函数高级用法
群发软件AIWROK环境JavaScript编码规范完整示例
AIWROK环境JavaScript编码规范完整示例
群发软件安卓脚本示例实时截图判断页面变化
安卓脚本示例实时截图判断页面变化
群发软件苹果脚本7种不同的OCR识别
苹果脚本7种不同的OCR识别
群发软件安卓脚本多变的function用法
安卓脚本多变的function用法
群发软件苹果脚本示例Config配置H5集成
苹果脚本示例Config配置H5集成
群发软件安卓脚本类型判断与Boolean对象综合示例
安卓脚本类型判断与Boolean对象综合示例
群发软件线程全局变量H5可视化控制台
线程全局变量H5可视化控制台

QQ|( 京ICP备09078825号 )

本网站信息发布软件,是可以发布论坛,发送信息到各大博客,各大b2b软件自动发布,好不夸张的说:只要手工能发在电脑打开IE能发的网站,用这个宣传软件就可以仿制动作,进行推送发到您想发送的B2B网站或是信息发布平台上,不管是后台,还是前台,都可以进行最方便的广告发布,这个广告发布软件,可以按月购买,还可以试用软件,对网站的验证码也可以完全自动对信息发布,让客户自动找上门,使企业轻松实现b2b发布,这个信息发布软件,均是本站原创正版开发,拥有正版的血统,想要新功能,欢迎提意见给我,一好的分类信息群发软件在手,舍我其谁。QQ896757558

GMT+8, 2026-7-30 07:29 , Processed in 0.344938 second(s), 50 queries .

宣传软件--信息发布软件--b2b软件广告发布软件

快速回复 返回顶部 返回列表