【带你轻松学】ArkUI实战开发-初识 NAPI

往期知识点整理

在移动应用开发中需要使用 C/C++ 实现的场景有很多,比如音视频处理,图像处理等较高性能要求的场景。OpenHarmony 提供了 NAPI 框架用于实现 JS 和 C/C++ 互相调用的能力,DevEco Studio 默认支持创建 NAPI 应用,本节笔者简单介绍一下创建的默认 NAPI 工程的相关知识。

NAPI工程创建

DevEco Studio 默认支持创建 NAPI 工程,在 DevEco Studio 的菜单栏里依次点击 File -> New -> Create Project,如下图所示:

在弹出选择工程模版对话框里,选择 OpenHarmony 标签下的 Navite C++ 模板,然后点击 Next 按钮,如下图所示:

点击 Next 按钮后,在工程配置页面填写工程名字,Project type 填写 ApplicationCompile SDK 选择 9Mode 选择 Stage,其它按照默认选择即可,截图如下所示:

填写完成后,点击 Finish,一个 NAPI 工程已经创建完毕,NAPI 工程结构如下图所示:

NAPI工程简介

NAPI 工程创建完后,在 entry 目录下多了一个 cpp 目录,该目录用来存放 cpp 的源码及相关配置文件,各文件说明如下:

  • hello.cppindex.d.ts 文件中声明的方法的 C++ 实现源码。
  • CMakeLists.txt:是cmake用来生成Makefile文件需要的一个描述编译链接的脚本文件。
  • index.d.ts:对 ts 提供的方法声明。
  • package.json:打包的配置文件。

另外 CMakeLists.txt 文件还会在 build-profile.json5 里做配置,代码如下所示:

{
  "apiType": 'stageMode',
  "buildOption": {
    "externalNativeOptions": {                 // CPP相关配置
      "path": "./src/main/cpp/CMakeLists.txt", // CMake 文件的路径
      "arguments": "",                         // 传递给 CMake 的可选参数
      "cppFlags": "",                          // 传递给 C++编译器的可选参数
    }
  }
}

externalNativeOptions 是对 CPP 的相关配置,path 表示 CMake 文件的配置路径,arguments 表示传递给 CMake 的可选编译参数,cppFlags 表示传递给 C++ 编译器的可选参数。

NAPI工程签名

NAPI 项目目前只能在真机上验证,在真机上运行前需要添加签名,否则无法安装运行,依次点击DevEco Studio 的 File -> Project Structure,如下图所示:

在打开的 Project Structure 面板中,选择 Signing Configs 标签,在该标签下选中 Automatically generate signature 复选框,如下所示:

点击 OK 按钮,则会自动添加签名配置,此时可以链接设备运行项目了。

NAPI工程运行

更改默认生成的 Index.ets ,代码如下所示:

import testNapi from 'libentry.so'

@Entry @Component struct ArkUIClubNAPITest {

  @State message: string = 'Hello,OpenHarmony'

  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(25)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
            var result = testNapi.add(2, 3);
            this.message = "OpenHarmony, value: " + result;
            console.log(this.message);
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

点击 Text,调用 testNapi 的 add() 方法并把结果 赋值给 message,此时 message 的值经过 add() 方法计算后为:OpenHarmony, value: 5,在设置上运行该项目

小结

本节简单介绍了 DevEco Stuido 创建的默认 NAPI 工程,读者有个大致印象即可,后续笔者将继续介绍NAPI 的相关内容,敬请期待。

Qt是一款广泛应用于跨平台开发的图形用户界面(GUI)框架,而"C"是指其基于C++语言的特性。Qt提供了许多控件用于构建各种类型的应用程序,其中包括了截图控件。 截图控件是指在Qt应用程序中用于截取当前屏幕或指定区域的图像的一种控件。它可以帮助用户快速捕捉屏幕上的内容,并进行保存、编辑或分享。截图控件通常具有以下几个主要功能: 1. 屏幕截取:截图控件可以提供屏幕截取功能,允许用户选择某个窗口、整个屏幕或指定区域进行截图。用户可以通过鼠标拖拽或键盘操作来选择截取区域。 2. 图像编辑:截取的图像可以进行基本的编辑,例如绘制线条、箭头、文字等。这让用户可以添加标记、注释或其他图形元素来强调或说明截图中的某些内容。 3. 图像保存和分享:截图控件可以提供图像保存和分享的功能。用户可以选择将截图保存为本地文件,并可以选择保存的格式(如PNG、JPEG等)。此外,截图控件还可以提供分享功能,允许用户通过邮件、社交媒体或其他渠道分享截图。 在Qt中,实现截图控件可以使用Qt的图形类库和事件驱动机制来实现。可以通过监听鼠标事件来获取用户选择的截取区域,然后通过Qt提供的图形绘制功能绘制所选择区域的图像。最后,可以使用Qt提供的图像保存功能将截图保存到本地文件或进行分享。 总之,Qt的截图控件为用户提供了方便快捷的截屏和编辑功能,能够显著提升用户在应用程序中处理图像的效率和便利性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值