加载中......
输入验证码,即可复制
微信扫码下载好向圈APP, 登陆后即可进入消息页面查看验证码
只需要3秒时间
使用场景



有些功能需要在打包后的app中调试, 比如高德地图, 需要在AndroidManifest.xml的application标签中配置Key


效果展示




autojs之打包后的app调试-1.jpg



autojs版本




autojs之打包后的app调试-2.jpg



需求分析




  • 如果要随时修改代码, 需要一个输入框, 适合简短的代码测试
  • 执行一个脚本文件. 需要一个输入框, 填写脚本文件路径
  • 执行一个项目, 需要一个输入框, 填写入口文件路径


布局



ui.layout(  <vertical>    <text gravity="center" textStyle="bold" textSize="30sp">      牙叔出品    </text>    <input id="代码内容" w="*"></input>    <button id="执行代码">执行代码</button>    <input id="脚本文件路径" w="*"></input>    <button id="执行脚本文件">执行脚本文件</button>    <input id="项目入口文件路径" w="*"></input>    <button id="执行项目">执行项目</button>    <button id="日志">日志</button>    <button id="停止脚本" text="停止脚本"></button>  </vertical>);

输入框默认值



ui.代码内容.setText('toastLog("hello");');ui.脚本文件路径.setText("/sdcard/脚本/main.js");ui.项目入口文件路径.setText("/sdcard/脚本/测试/main.js");

按钮点击事件



ui.执行代码.click(function () {  eval(ui.代码内容.text());});ui.执行脚本文件.click(function () {  engines.execScriptFile(ui.脚本文件路径.text().trim());});ui.执行项目.click(function () {  let entryFilePath = ui.项目入口文件路径.text().trim();  engines.execScriptFile(entryFilePath, { path: entryFilePath.replace(/\/[\w.]+?$/, "") });});ui.日志.click(function () {  app.startActivity("console");});ui.停止脚本.click(function () {  engines.all().map((ScriptEngine) => {    if (engines.myEngine().toString() !== ScriptEngine.toString()) {      ScriptEngine.forceStop();    }  });});

总结



以上代码组合使用, 我们就可以调试任意脚本了, 配合mt管理器基本可以解决所有调试问题


完整源码


https://gitee.com/yashujs/autojs-debug



autojs之打包后的app调试-3.jpg
程序员圈
3595 查看 0 0 反对

说说我的看法高级模式

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

还没人评论此主题哦