目录
调试流程
配置签名信息
调试设置
设置调试代码类型
设置HAP包安装方式
设置多HAP包安装
启动调试
断点管理
调试流程
DevEco Studio提供了丰富的OpenHarmony应用/服务调试能力,帮助开发者更方便、高效的调试应用/服务。
OpenHarmony应用/服务调试支持使用真机设备调试。使用真机设备进行调试前,需要对HAP进行签名后进行调试。详细的调试流程如下图所示:
配置签名信息
应用/服务在真机设备上运行,需要提前为应用/服务进行签名,DevEco Studio为开发者提供了自动化签名方案,可以一键完成应用/服务签名。请注意,自动化签名功能仅用于应用/服务调试阶段使用,不可用于发布上架应用市场。具体操作如下:
单击File > Project Structure > Project > Signing Configs界面勾选“Automatically generate signature”,等待自动签名完成即可,单击“OK”。如下图所示:
说明
如果您的应用/服务使用了“system_basic”和“system_core”权限,请参考修改应用权限等级
修改签名模板。您使用到的应用权限,可以在自动化签名完成后,单击Show Restricted Permissions进行查看。
调试设置
设置调试代码类型
OpenHarmony支持eTS、JS和C/C++代码调试,默认情况下调试器支持的调试类型为Js Only,支持调试eTS和JS代码。如果需要调试C/C++代码,请将调试器的调试类型选择Native Only。
修改调试类型的方法如下。
点击Run > Edit Configurations > Debugger,在OpenHarmony App中,选择相应模块,设置Debug type即可。
设置HAP包安装方式
在调试阶段,HAP包在设备上的安装方式有2种,可以根据实际需要进行设置。
- 安装方式一:先卸载应用/服务后,再重新安装,该方式会清除设备上的所有应用/服务缓存数据(默认安装方式)。
- 安装方式二:采用覆盖安装方式,不卸载应用/服务,该方式会保留应用/服务的缓存数据。
设置方法如下:
单击Run > Edit Configurations,设置指定模块的HAP包安装方式,勾选 Keep Application Data,则表示采用覆盖安装方式,保留应用/服务缓存数据。
设置多HAP包安装
如果工程中同时存在多个模块,且您的应用/服务存在跨模块间的调用时,在调试阶段需要同时安装多个模块的HAP包到设备中。此时,需要在任意模块的设置项中勾选Deploy Multi Hap Packages,启动调试时,DevEco Studio会将所有的模块都安装到设备上。
设置方法如下:
单击Run > Edit Configurations,在OpenHarmony App下,建议在entry模块下,勾选Deploy Multi Hap Packages。
在启动调试时,请选择勾选了Deploy Multi Hap Packages的模块(如上图中的entry),然后再启动调试。
启动调试
- 在工具栏中,选择调试的设备,并单击Debug
或Attach Debugger to Process
启动调试。
说明
Debug和Attach Debugger的区别在于,Attach Debugger to Process可以先运行应用/服务,然后再启动调试,或者直接启动设备上已安装的应用/服务进行调试;而Debug是直接运行应用/服务后立即启动调试。
- 如果需要设置断点调试,则需要选定要设置断点的有效代码行,在行号(比如:5行)的区域后,单击鼠标左键设置断点(如图示的红点)。
设置断点后,调试能够在正确的断点处中断,并高亮显示该行。
- 启动调试后,开发者可以通过调试器进行代码调试。调试器的功能说明如下表所示:
表1 调试器按钮
按钮
名称
快捷键
功能
Resume Program
F9(macOS为Option+Command+R)
当程序执行到断点时停止执行,单击此按钮程序继续执行。
Step Over
F8(macOS为F8)
在单步调试时,直接前进到下一行(如果在函数中存在子函数时,不会进入子函数内单步执行,而是将整个子函数当作一步执行)。
Step Into
F7(macOS为F7)
在单步调试时,遇到子函数后,进入子函数并继续单步执行。
Step Out
Shift+F8(macOS为Shift+F8)
在单步调试执行到子函数内时,单击Step Out会执行完子函数剩余部分,并跳出返回到上一层函数。
Stop
Ctrl+F2(macOS为Command+F2)
停止调试任务。
Run To Cursor
Alt+F9(macOS为Option+F9)
断点执行到鼠标停留处。
断点管理
在设置的程序断点红点处,单击鼠标右键,然后单击More或按快捷键Ctrl+Shift+F8(macOS为Shift+Command+F8),可以管理断点。
代码类型 |
断点管理 |
---|---|
JS(JavaScript)、eTS |
|
C/C++ |
|