OpenHarmony开源社区
直播中

张勇

7年用户 1479经验值
私信 关注
[经验]

HarmonyOS应用/服务调试支持使用模拟器设备调试

DevEco Studio提供了丰富的HarmonyOS应用/服务调试能力,使用远程模拟器支持Java、JS、eTS单语言调试和JS+Java跨语言调试能力,同时还支持分布式应用/服务的跨设备调试,帮助开发者更方便、高效的调试应用/服务。

HarmonyOS应用/服务调试支持使用模拟器设备调试,可以支持运行已签名或未签名的应用/服务。使用模拟器调试应用/服务的流程如下图所示。

调试前的设置

设置调试代码类型

调试类型默认情况下为Detect Automatically,支持Java、JS、JS+Java工程的调试。只有在JS+Java混合工程中,如果需要单独调试Java代码,这种情况下需要手动修改Debug Type为“Java”。

关于各调试类型的说明如下表所示。

修改调试类型的方法如下。

点击Run > Edit Configurations > Debugger,在HarmonyOS App中,选择相应模块, 可以进行Java/JS调试配置。

设置HAP包安装方式

在调试阶段,HAP包在设备上的安装方式有2种,可以根据实际需要进行设置

安装方式一:先卸载应用/服务后,再重新安装,该方式会清除设备上的所有应用/服务缓存数据(默认安装方式)。

安装方式二:采用覆盖安装方式,不卸载应用/服务,该方式会保留应用/服务的缓存数据。

设置方法如下:

点击Run > Edit Configurations,设置指定模块的HAP包安装方式,勾选“Replace existing application”,则表示采用覆盖安装方式,保留应用/服务缓存数据。

如果一个工程中同一个设备存在多个模块(如Phone设备,存在entry和feature模块),且存在模块间的调用时,在调试阶段需要同时安装多个模块的hap包到设备中。此时,需要在待调试模块的设置项中勾选“Deploy Multi Hap Packages”。例如entry模块调用feature模块,在调试entry模块时,需要同时安装feature模块,应该在entry模块的调试设置项中勾选“Deploy Multi Hap Packages”后再启动调试。

启动调试

在工具栏中,选择调试的设备,并点击Debug 或Attach Debugger to Process启动调试。

如果需要设置断点调试,则需要选定要设置断点的有效代码行,在行号(比如:24行)的区域后,单击鼠标左键设置断点(如图示的红点)。

设置断点后,调试能够在正确的断点处中断,并高亮显示该行。

启动调试后,开发者可以通过调试器进行代码调试。调试器的功能说明如下表所示。

对于原子化服务,由于原子化服务在设备中没有桌面图标,可以通过如下方式在设备中运行/调试原子化服务。

在服务中心露出的原子化服务:

通过DevEco Studio的运行/调试按钮,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务;同时在服务中心的最近使用中可以看到该原子化服务的卡片。

通过hdc命令行工具,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务;同时在服务中心的最近使用中可以看到该原子化服务的卡片。

在服务中心不露出的原子化服务:

通过DevEco Studio的运行/调试按钮,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务。

通过hdc命令行工具,将原子化服务推送到真机设备上安装,安装完成后便可以启动原子化服务。

设备控制类的原子化服务,可通过碰一碰、扫一扫等方式运行。

原作者:HarmonyOS Developer

更多回帖

发帖
×
20
完善资料,
赚取积分