0
点赞
收藏
分享

微信扫一扫

OpenHarmony工程在HarmonyOS真机运行探索

今天在群里看到一个问题,OpenHarmony工程能在HarmonyOS真机上运行吗?

说实话,我还真没试过,但是我们也应该做一个尝试不是。

前提条件

有一台鸿蒙手机,HarmonyOS3,创建的是API8及以下的应用。

我们创建的是API8的应用。

我们都知道HarmonyOS应用/服务调试支持使用真机设备调试。使用真机设备进行调试前,需要对HAP进行签名。而OpenHarmony则只需自动签名就好了。详细的调试流程如下图所示:

OpenHarmony工程在HarmonyOS真机运行探索_re模块

了解了真机设备的调试流程之后,我们就开始今天的验证。

配置签名信息

针对原子化服务和应用的签名,DevEco Studio为开发者提供了自动化签名方案,帮助开发者高效进行调试。也可选择手动方式对应用/服务进行签名。

  1. 连接真机设备,确保DevEco Studio与真机设备已连接,真机连接成功后如下图所示:
  2. 进入File > Project Structure > Project > Signing Configs界面,勾选“Automatically generate signature”(如果是API8工程,需同时勾选“SupportHarmonyOS”),即可完成签名。如果未登录,请先单击Sign In进行登录,然后自动完成签名。

OpenHarmony工程在HarmonyOS真机运行探索_re模块_02

签名完成后,如下图所示:

OpenHarmony工程在HarmonyOS真机运行探索_调试器_03

设置调试代码类型

API Version 8的工程调试类型默认为Js Only,支持调试eTS和JS代码。如果需要调试C/C++代码,请将调试器的调试类型选择Native Only。大家可以根据下表来判断。

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

调试类型

调试代码

JavaOnly

仅调试Java代码

JsOnly

仅调试JavaScript代码

NativeOnly

仅调试C/C++代码

Dual(Js + Java)

调试JS FA调用Java PA场景的JS和Java代码

Dual(Java + Native)

调试C/C++工程的Java和C/C++代码

Detect Automatically

新建工程默认调试器选项,根据调试的工程类型,自动启动对应的调试器。说明JS+Java混合工程中,如果需要单独调试Java代码,需要手动修改Debug Type为“Java”。

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

OpenHarmony工程在HarmonyOS真机运行探索_前端_04

设置HAP包安装方式

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

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

设置方法如下:

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

OpenHarmony工程在HarmonyOS真机运行探索_re模块_05

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

OpenHarmony工程在HarmonyOS真机运行探索_前端_06

启动调试

  1. 在工具栏中,选择调试的设备,并单击DebugAttach Debugger to Process启动调试。

OpenHarmony工程在HarmonyOS真机运行探索_java_07

接下来就可以调试 了。完美。

举报

相关推荐

0 条评论