告别手动点按!用Auto.js的Shell命令5分钟搞定微信/QQ自动化跳转(附am/pm命令详解)

张开发
2026/4/20 2:23:32 15 分钟阅读

分享文章

告别手动点按!用Auto.js的Shell命令5分钟搞定微信/QQ自动化跳转(附am/pm命令详解)
深度解锁Auto.js Shell命令微信/QQ自动化跳转与系统级管控实战每次手动点击微信小程序或切换QQ群聊时你是否想过——这些重复操作能否交给脚本自动完成当常规的startActivity遇到非标准Intent束手无策时Shell命令的am/pm组合能突破限制。本文将带你直击三个核心场景非标准页面跳转、应用冻结与唤醒、自动化流程编排用真实案例演示如何用Shell命令构建企业级自动化方案。1. 破解非标准IntentShell命令的降维打击1.1 为什么startActivity会失效在微信小程序跳转或QQ特定聊天窗口打开时常规的startActivity常因Intent格式校验失败。例如某电商App的物流页面使用自定义actDELIVERY此时系统会错误补全为android.intent.action.DELIVERY导致崩溃。Shell命令的am start则能原样传递参数// 错误示例自动补全action前缀导致失败 app.startActivity({ action: DELIVERY, packageName: com.netease.buff, className: com.netease.buff.entry.SplashActivity }); // 正确方案Shell命令直达目标 shell(am start -a DELIVERY -n com.netease.buff/.entry.SplashActivity);1.2 参数获取四步法通过逆向工程获取有效参数布局分析用Auto.js的控件检查获取当前Activity名称Intent拦截使用[ActivityLauncher]等工具捕获跳转参数ADB监控adb shell logcat | grep Intent实时抓取系统广播反编译对APK使用JADX查找AndroidManifest.xml中的exported activity提示涉及非公开Activity时需root权限商业项目建议使用公开接口1.3 微信/QQ实战参数表场景关键参数Shell命令模板微信小程序-n com.tencent.mm/.plugin.appbrand.ui.AppBrandUIam start -n com.tencent.mm/.plugin.appbrand.ui.AppBrandUI --es extra_key extra_valueQQ群文件-a android.intent.action.VIEW -d file:///sdcard/1.txtam start -a VIEW -d file:///sdcard/1.txt -p com.tencent.mobileqq微信支付完成页-f 0x14000040 -n com.tencent.mm/.plugin.wallet_payu.pay.ui.WalletPayUProxyUIam start -n com.tencent.mm/.plugin.wallet_payu.pay.ui.WalletPayUProxyUI -f 0x140000402. 应用级管控pm命令的七十二变2.1 冻结与唤醒的自动化管理夜间自动冻结社交应用既省电又防打扰pm disable和pm enable的组合可实现此需求// 22:00自动冻结微信 if (new Date().getHours() 22) { shell(pm disable com.tencent.mm, true); toast(微信已冻结); } // 次日8点解冻 if (new Date().getHours() 8) { shell(pm enable com.tencent.mm, true); }2.2 权限管理的原子操作批量处理权限无需进入系统设置一条命令搞定# 一次性授予QQ所有存储权限 pm grant com.tencent.mobileqq android.permission.READ_EXTERNAL_STORAGE pm grant com.tencent.mobileqq android.permission.WRITE_EXTERNAL_STORAGE2.3 应用状态监控方案通过pm list packages与dumpsys的组合实现深度监控function checkAppStatus(pkg) { let shell new Shell(true); let result shell.exec(pm list packages | grep ${pkg}).result; if (!result) return 未安装; let disabled shell.exec(pm list packages -d | grep ${pkg}).result; return disabled ? 已冻结 : 运行中; }3. 工业级自动化流水线设计3.1 电商订单处理机器人结合OCR识别与Shell命令实现全自动操作// 步骤1跳转到订单页 shell(am start -n com.taobao.taobao/com.taobao.order.OrderDetailActivity); // 步骤2截图识别物流单号 shell(screencap /sdcard/order.png); let trackingNum ocr.recognize(/sdcard/order.png); // 步骤3跳转物流查询 shell(am start -a android.intent.action.VIEW -d http://m.kuaidi100.com/?no${trackingNum});3.2 跨应用数据通道通过临时文件实现应用间数据传递// 从QQ导出接收的文件路径 let filePath /sdcard/QQfile/订单表.xlsx; // 用WPS打开并添加批注 shell(am start -a android.intent.action.EDIT -t application/vnd.ms-excel -d file://${filePath} -p cn.wps.moffice_eng);4. 防检测与性能优化秘籍4.1 随机化操作轨迹通过注入随机延迟和模拟人类操作模式function humanClick(x, y) { // 生成贝塞尔曲线路径 let path generateBezierPath([x, y]); path.forEach(point { press(point[0], point[1], 1); sleep(Math.random() * 100 50); }); }4.2 Shell命令执行优化对比三种执行方式的性能差异方式平均耗时(ms)内存占用(MB)适用场景shell()单次调用1201.2简单命令Shell对象连续执行45/command2.8批量操作Root权限预制脚本515高频触发任务// 高效批量执行示例 let sh new Shell(true); sh.exec(pm disable com.tencent.mm); sh.exec(pm disable com.tencent.mobileqq); sh.exit(); // 必须显式关闭在最近为某跨境电商设计的自动化方案中通过组合am start -W等待Activity启动完成和input keyevent模拟按键将订单处理效率提升6倍。关键发现是连续执行10条以上Shell命令时使用Shell对象比单独调用shell()函数快3倍但要注意及时调用exit()释放资源。

更多文章