我们通过概述,已经成功安装并且运行快应用,本文主要介绍通过
chrome devtools
进行远程调试方法
通过本节,你将学会:
开发调试需要更具打印日志定位问题,包括查询标签结构,样式 UI,network 等
打开工程根目录下的 src 文件夹的 manifest.json,找到 config 配置,将 logLevel 修改为最低级别 debug,即:允许所有级别的日志输出
修改后 <ProjectName>/src/manifest.json
中 config
配置代码如下:
{
"config": {
"logLevel": "debug"
}
}
当 js
代码未按需求正确运行,输出日志能帮助开发者快速定位问题;与传统前端开发一致,使用 console
对象输出日志,如下:
console.debug('debug')
console.log('log')
console.info('info')
console.warn('warn')
console.error('error')
开发者可以使用 Android Studio
的 Android Monitor
输出来查看日志,还有下文主要介绍的通过 chrome devtools 调试界面
调试手机 app 端的页面
远程调试指的是通过快应用调试器
、hap-toolkit
的远程调试命令 、chrome devtools 调试界面
,来调试手机 app 端的页面
远程调试依赖 chrome 浏览器
,浏览器 devtools
会与手机上调试工具建立 socket
连接,实时获取修改应用运行数据,进行调试
如果手机与 PC 在同一局域网,可以使用 WIFI 调试,步骤如下:
在项目根目录下执行如下命令,启动 HTTP 调试服务器( 注意:如果使用 IDE 调试,则不需要执行该命令,因为 IDE 已经自动开启调试服务):
npm run server
手机快应用调试器中关闭 开启USB调试
扫码安装
按钮,扫码安装待调试的 rpk
文件手机快应用调试器中点击 开始调试
按钮,开始调试
示例图:
USB 调试模式不需要手机与 PC 在同一局域网,需要在调试过程中手机通过 USB 连接 PC,步骤如下:
在项目根目录下执行如下命令,启动 HTTP
调试服务器( 注意:如果使用 IDE 调试,则不需要执行该命令,因为 IDE 已经自动开启调试服务):
npm run server
手机开启设置
--> 开发者选项
--> USB调试
USB调试
,手机 USB
连接到 PC在线更新
按钮,安装待调试的 rpk
文件手机快应用调试器中点击 开始调试
按钮,开始调试
示例图:
点击 开始调试
按钮,展现 chrome devtools
页面
注:需要首先安装 chrome 浏览器
示例图:
类似传统前端调试,在 element 面板
中可以通过 DOM 树的形式查看所有页面元素,同时也能对这些元素进行所见即所得的编辑。
Ctrl + Shift + C (windows)
或者 Cmd + Shift + C (Mac)
,然后去页面上选择 DOMElement
面板上,用鼠标手动选择某个 DOM 节点Element
面板最下方为面包屑路径,当前选中节点以蓝色高亮表示Add attribute
或者 Edit attribute
添加或编辑属性Edit as HTML
可编辑 DOM 及属性当选中一个 DOM 元素,Styles
窗口显示所有这个元素上的样式,优先级从高到低
element.style
,显示直接写在标签内的行内样式当代码运行时发生异常,界面会弹出一个对话框,点击查看错误, 可以显示出错误发生的堆栈,供开发者分析
按照 简要介绍 中日志输出准备,开发者可以在工程项目中利用 console
的输出函数打印的调试信息,以及属于 native
模块打印的信息,都可以通过 devtools
调试界面的 console
面板进行查看
需要先安装 adb 工具,可以参考官方网站说明进行安装,可将目录加到系统 PATH 中,方便后续使用
adb logcat -s LOGCAT_CONSOLE
注意:
在快应用 1030
及以前版本,请运行
adb logcat -s JsConsole
同传统 H5 页面开发一样,Network
面板会展示 Devtools
记录的所有网络请求
1060+
点击调试器右上角的菜单按钮进入设置页面,勾选开启 Web 组件调试开关
手机开启开发者选项中的 USB 调试并连接手机 USB, 然后进入需要调试的页面
在 chrome 浏览器地址栏中输入: chrome://inspect/#devices
, 打开 DevTools 调试面板
点击 inspect 即可进入调试页面
1060+
在进行自动化测试时,需要知道原生 Android 的 View ID, 可通过组件的 getViewId 方法获取原生 Android 对应的 View ID
this.$element('element_id').getViewId()