鸿蒙5.0版开发:使用HiDebug获取调试信息(C/C++)

 往期鸿蒙全套实战文章必看:


使用HiDebug获取调试信息(C/C++)

HiDebug模块对外提供应用调试功能。

接口说明

接口名描述
OH_HiDebug_GetSystemCpuUsage获取系统的CPU资源占用情况百分比。
OH_HiDebug_GetAppCpuUsage获取进程的CPU使用率百分比。
OH_HiDebug_GetAppThreadCpuUsage获取应用所有线程CPU使用情况。
OH_HiDebug_FreeThreadCpuUsage释放线程数据结构。
OH_HiDebug_GetSystemMemInfo获取系统内存信息。
OH_HiDebug_GetAppNativeMemInfo获取应用程序进程的内存信息。
OH_HiDebug_GetAppMemoryLimit获取应用程序进程的内存限制。
OH_HiDebug_StartAppTraceCapture启动应用trace采集。
OH_HiDebug_StopAppTraceCapture停止应用trace采集。

开发步骤

下文将展示如何在应用内增加一个按钮,并单击该按钮以调用Hidebug Ndk接口。

  1. 新建Native C++工程,目录结构如下:

    entry:
      src:
        main:
          cpp:
            - types:
                libentry:
                  - index.d.ts
            - CMakeLists.txt
            - napi_init.cpp
          ets:
            - entryability:
                - EntryAbility.ts
            - pages:
                - Index.ets
  2. 编辑"CMakeLists.txt"文件,添加库依赖:

    # 新增动态库依赖libhiappevent_ndk.z.so和libhilog_ndk.z.so(日志输出)
    target_link_libraries(entry PUBLIC libace_napi.z.so libhilog_ndk.z.so libohhidebug.so)
  3. 编辑"napi_init.cpp"文件,导入依赖的文件,并定义LOG_TAG及测试方法:

    本示例中以OH_HiDebug_GetSystemCpuUsage接口为例,调用该接口并输出返回值

    #include "napi/native_api.h"
    #include "hilog/log.h"
    #include "hidebug/hidebug.h"
    
    #undef LOG_TAG
    #define LOG_TAG "testTag"
    
    static napi_value TestHidebugNdk(napi_env env, napi_callback_info info)
    {
        double cpuUsage = OH_HiDebug_GetSystemCpuUsage();
        OH_LOG_INFO(LogType::LOG_APP, "GetSystemCpuUsage: %{public}f", cpuUsage);
        return 0;
    }
  4. 将TestHidebugNdk注册为ArkTS接口:

    编辑"napi_init.cpp"文件,将TestHidebugNdk注册为ArkTS接口:

    static napi_value Init(napi_env env, napi_value exports)
    {
        napi_property_descriptor desc[] = {
            { "testHidebugNdk", nullptr, TestHidebugNdk, nullptr, nullptr, nullptr, napi_default, nullptr }
        };
        napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);
        return exports;
    }

    编辑"index.d.ts"文件,定义ArkTS接口:

    export const testHidebugNdk: () => void;
  5. 编辑"Index.ets"文件,给文本Text组件添加一个点击事件,示例代码如下:

    import testNapi from 'libentry.so'
    
    @Entry
    @Component
    struct Index {
      @State message: string = 'Hello World'
    
      build() {
        Row() {
          Column() {
            Text(this.message)
              .fontSize(50)
              .fontWeight(FontWeight.Bold)
              .onClick(testNapi.testHidebugNdk);//添加点击事件,触发testHidebugNdk方法。
          }
          .width('100%')
        }
        .height('100%')
      }
    }
  6. 点击IDE界面中的运行按钮,运行应用工程,点击"Hello world"文本。

  7. 在DevEco Studio的底部,切换到“Log”窗口,设置日志的过滤条件为“testTag”。

    此时窗口将显示通过OH_HiDebug_GetSystemCpuUsage()接口获取的CPU使用率的相关日志。

    09-10 09:40:26.755 17221-17221/com.example.myapplication I A00000/testTag: GetSystemCpuUsage: 0.083904

看完三件事❤️

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注作者,不定期分享原创知识。
  • 同时可以期待后续文章ing🚀。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值