使用场景
有些功能需要在打包后的app中调试, 比如高德地图, 需要在AndroidManifest.xml的application标签中配置Key
效果展示

autojs版本

需求分析
- 如果要随时修改代码, 需要一个输入框, 适合简短的代码测试
- 执行一个脚本文件. 需要一个输入框, 填写脚本文件路径
- 执行一个项目, 需要一个输入框, 填写入口文件路径
布局
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管理器基本可以解决所有调试问题
微信公众号 AutoJsPro教程

QQ群
747748653

3628

被折叠的 条评论
为什么被折叠?



