提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

openharmony在应用开发的时候,想要在上层控制UART,GPIO等驱动,需要在nativeC++侧,通过调用/dev/ttyS0或/sys/class/gpio/gpioX在控制串口和gpio,具体怎么控制可以参考linux中是怎么实现的,这篇文章主要讲解怎么在native中添加日志


一、native在OpenHarmony的使用?

这个网上有很多的文章,我这里就不重复赘述了。
我推荐大家可以去看离北况归老师的文章,通俗易懂,写的特别好。
https://ost.51cto.com/posts/17750
https://ost.51cto.com/posts/18336

二、添加日志

1.在源码里添加日志

https://laval.csdn.net/66b18c2313d7d52ab426ecf0.html  
参考这篇文章构建子系统、部件和模块,以这个例子为例怎么添加打印日志。

首先在build

首先在bundle.json5文件中在components里添加hilog部件
在这里插入图片描述
第二步在BUILD.gn文件中的外部依赖external_deps添加"hilog:libhilog"
在这里插入图片描述
最后在.cpp文件或者.c文件里添加#include"hdf_log.h"头文件就大功告成了。
打印的时候可以使用HDF_LOGI等接口打印,具体使用方法可以去看drivers\hdf_core\interfaces\inner_api\utils\hdf_log.h文件(如果有变量要打印记得要添加public,举例:%{public}d,或者执行hilog -p off命令)

温馨提示:验证本实验的时候可以用./build.sh --product-name rk3568 --ccache --build-target=mytest --target-cpu arm64命令去编译,速度会快很多,编译完直接去out/rk3568/sample/hello目录下把可执行文件mytest推到开发板上测试就行了
在这里插入图片描述
在这里插入图片描述

2.怎么在DevEco Studio里添加打印日志

在DevEco Studio里创建一个新的native C++工程,CMakeLists.txt里添加target_link_libraries(entry PUBLIC libhilog_ndk.z.so)
在这里插入图片描述
在cpp目录下创建一个common目录,继续创建log.h的头文件
在这里插入图片描述
最后在hello.cpp文件里就可以打印日志了,如下图所示
在这里插入图片描述


总结

在native C++里打印日志还是比较简单的,但是官方文档里估计介绍的不是很清楚,不太易于新手的学习,希望这篇文章能够帮助到大家。

注:因为本人的水平有限,有些地方可能讲解的不是很好,欢迎大家纠正。

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐