NDK 构建的鸿蒙应用可以通过以下步骤进行调试:
一、前期准备
手机开启开发者模式:
- 在设置中进入“关于手机/关于平板”,连续多次点击“版本号”直到提示“您正处于开发者模式”。
- 在设置中的“系统与更新”下找到“开发人员选项”,打开“USB调试”开关。
连接手机与PC:
- 使用USB将手机与PC端连接。
- 在手机中选择“传输文件”作为USB连接方式。
- 确认手机中弹出的“是否允许USB调试”的弹框,并点击确定。
DevEco Studio配置:
- 在DevEco Studio编译工具的右上角下拉框中确认已连接的手机设备。
- 配置签名信息:使用真机设备进行调试前需要对HAP进行签名。
- 设置调试代码类型:调试类型默认为Detect Automatically。
- 设置HAP安装方式:选择先卸载应用/服务后再重新安装或覆盖安装。
二、调试步骤
启动调试:
- 选择Debug调试或attach调试。
- 使用真机或模拟器调试时,修改后的代码需要经过较长时间的编译和安装过程,才能刷新至调试环境。
使用预览器调试(可选):
- 使用预览器可以快速修改代码和运行应用,在DevEco Studio中直接查看修改后的界面显示效果。
- 预览器调试支持基础Debug能力,包括断点、调试执行、变量查看等。
源码调试:
- 当本地编译设备so文件的源码路径和当前配置的C++源码路径不一致时,可以通过建立文件间映射关系进行调试。
- 在Step Into进入汇编代码后,选择本地对应C++源码进行关联。
- 在Run/Debug Configurations中选择模块,切换到Debugger页签,选择Native类型,在LLDB Startup Commands页签中新增命令建立映射关系。
C/C++反向调试:
- 反向调试是指在调试过程中可以回退到历史行和历史断点,查看历史调试信息,包括线程、堆栈和变量信息。
- 在File > Settings > Build, Execution, Deployment > Debugger > C++ Debugger设置界面,勾选Enable time travel debug开启C++反向调试开关。
JSVM调试(针对JS代码):
- 在应用工程配置文件module.json中配置网络权限。
- 调用OH_JSVM_OpenInspector在指定的主机和端口上激活inspector,创建socket。
- 调用OH_JSVM_WaitForDebugger等待建立socket连接。
- 转发端口并在chrome浏览器中输入对应地址,进入DevTools源码页进行调试。
三、调试注意事项
- 使用预览器进行调试时,不支持启动多个预览调试任务,不支持跨Ability调试、C++调试、极速预览和Hot Reload。
- 在进行attach调试时,需要保证本地工程引用HAR方式与被attach调试应用引用方式保持一致。
- 调试过程中可能需要根据实际情况调整配置和调试策略。
通过以上步骤,你可以对NDK构建的鸿蒙应用进行调试,确保应用的正确性和性能。
可以使用特定的调试工具,结合日志输出等方式进行调试。
参考资料:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides...。
本文参与了 【 HarmonyOS NEXT 技术问答冲榜,等你来战!】欢迎正在阅读的你也加入。