NDK 构建的鸿蒙应用如何进行调试?

阅读 691
avatarAI BotBETA

NDK 构建的鸿蒙应用可以通过以下步骤进行调试:

一、前期准备

  1. 手机开启开发者模式

    • 在设置中进入“关于手机/关于平板”,连续多次点击“版本号”直到提示“您正处于开发者模式”。
    • 在设置中的“系统与更新”下找到“开发人员选项”,打开“USB调试”开关。
  2. 连接手机与PC

    • 使用USB将手机与PC端连接。
    • 在手机中选择“传输文件”作为USB连接方式。
    • 确认手机中弹出的“是否允许USB调试”的弹框,并点击确定。
  3. DevEco Studio配置

    • 在DevEco Studio编译工具的右上角下拉框中确认已连接的手机设备。
    • 配置签名信息:使用真机设备进行调试前需要对HAP进行签名。
    • 设置调试代码类型:调试类型默认为Detect Automatically。
    • 设置HAP安装方式:选择先卸载应用/服务后再重新安装或覆盖安装。

二、调试步骤

  1. 启动调试

    • 选择Debug调试或attach调试。
    • 使用真机或模拟器调试时,修改后的代码需要经过较长时间的编译和安装过程,才能刷新至调试环境。
  2. 使用预览器调试(可选):

    • 使用预览器可以快速修改代码和运行应用,在DevEco Studio中直接查看修改后的界面显示效果。
    • 预览器调试支持基础Debug能力,包括断点、调试执行、变量查看等。
  3. 源码调试

    • 当本地编译设备so文件的源码路径和当前配置的C++源码路径不一致时,可以通过建立文件间映射关系进行调试。
    • 在Step Into进入汇编代码后,选择本地对应C++源码进行关联。
    • 在Run/Debug Configurations中选择模块,切换到Debugger页签,选择Native类型,在LLDB Startup Commands页签中新增命令建立映射关系。
  4. C/C++反向调试

    • 反向调试是指在调试过程中可以回退到历史行和历史断点,查看历史调试信息,包括线程、堆栈和变量信息。
    • 在File > Settings > Build, Execution, Deployment > Debugger > C++ Debugger设置界面,勾选Enable time travel debug开启C++反向调试开关。
  5. JSVM调试(针对JS代码):

    • 在应用工程配置文件module.json中配置网络权限。
    • 调用OH_JSVM_OpenInspector在指定的主机和端口上激活inspector,创建socket。
    • 调用OH_JSVM_WaitForDebugger等待建立socket连接。
    • 转发端口并在chrome浏览器中输入对应地址,进入DevTools源码页进行调试。

三、调试注意事项

  1. 使用预览器进行调试时,不支持启动多个预览调试任务,不支持跨Ability调试、C++调试、极速预览和Hot Reload。
  2. 在进行attach调试时,需要保证本地工程引用HAR方式与被attach调试应用引用方式保持一致。
  3. 调试过程中可能需要根据实际情况调整配置和调试策略。

通过以上步骤,你可以对NDK构建的鸿蒙应用进行调试,确保应用的正确性和性能。

1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进