HarmonyOS Next开发学习手册——NDK开发(一)

871 篇文章 13 订阅
504 篇文章 1 订阅

NDK(Native Development Kit)是HarmonyOS SDK提供的Native API、相应编译脚本和编译工具链的集合,方便开发者使用C或C++语言实现应用的关键功能。NDK只覆盖了HarmonyOS一些基础的底层能力,如C运行时基础库libc、图形库、窗口系统、多媒体、压缩库、面向ArkTS/JS与C跨语言的Node-API等,并没有提供ArkTS/JS API的完整能力。

运行态,开发者可以使用NDK中的Node-API接口,访问、创建、操作JS对象;也允许JS对象使用Native动态库。

NDK适用场景

适合使用NDK的场景:应用涉及如下场景时,适合采用NDK开发

  • 性能敏感的场景,如游戏、物理模拟等计算密集型场景。

  • 需要复用已有C或C++库的场景。

  • 需要针对CPU特性进行专项定制库的场景,如Neon加速。

不建议使用NDK的场景:应用涉及如下场景时,不建议采用NDK开发

  • 纯C或C++的应用。

  • 希望在尽可能多的HarmonyOS设备上保持兼容的应用。

NDK必备基础知识

为顺利进行NDK开发,开发者需要先掌握必要的基本概念及基础知识。

NDK基本概念

  • Node-API

曾用名NAPI,是HarmonyOS中提供ArkTS/JS与C/C++跨语言调用的接口,是NDK接口中的一部分。该接口是在Node.js提供的Node-API基础上扩展而来,但与Node.js中的Node-API不完全兼容。

  • C API

HarmonyOS NDK的曾用名,不再使用。

前置知识

  • Linux C语言编程知识

内核、libc基础库基于POSIX等标准扩展而来,掌握基本的Linux C编程知识能够更好的帮助理解HarmonyOS NDK开发。

  • CMake使用知识

CMake是HarmonyOS默认支持的构建系统。请先通过CMake官方文档了解基础用法。

  • Node Addons开发知识

ArkTS采用Node-API作为跨语言调用接口,熟悉基本的Node Addons开发模式,可以更好理解NDK中Node-API的使用。

  • Clang/LLVM编译器使用知识

具备一定的Clang/LLVM编译器基础知识,能够帮助开发者编译出更优的Native动态库。

NDK目录简介

  • build目录:放置预定义的toolchain脚本文件ohos.toolchain.cmake

CMake编译时需要读取该文件中的默认值,比如编译器架构、C++库链接方式等,因此在编译时会通过CMAKE_TOOLCHAIN_FILE指出该文件的路径,便于CMake在编译时定位到该文件。

  • build-tools文件夹:放置NDK提供的编译工具
# 键入下一行命令查看CMake的版本
cmake -version
# 结果
cmake version 3.16.5
CMake suite maintained and supported by Kitware (kitware.com/cmake).
  • llvm文件夹:放置NDK提供的编译器

NDK常用模块

下表介绍了NDK的常用模块。

模块模块简介
标准C库以musl为基础提供的标准C库接口。
标准C++库C++运行时库libc++_shared。
日志打印日志到系统的HiLog接口。
Node-API当需要实现ArkTS/JS和C/C++之间的交互时,可以使用Node-API。
libuv三方异步IO库。
zlibzlib库,提供基本的数据压缩、解压接口。
Rawfile应用资源访问接口,可以读取应用中打包的各种资源。
XComponentArkUI XComponent组件提供surface与触屏事件等接口,方便开发者开发高性能图形应用。
Drawing系统提供的2D图形库,可以在surface进行绘制。
OpenGL系统提供的OpenGL 3D图形接口。
OpenSL ES用于2D、3D音频加速的接口库。

创建NDK工程

下面通过DevEco Studio的NDK工程模板,来演示如何创建一个NDK工程。

说明

不同DevEco Studio版本的向导界面、模板默认参数等会有所不同,请根据实际工程需要,创建工程或修改工程参数。

  1. 通过如下两种方式,打开工程创建向导界面。
    • 如果当前未打开任何工程,可以在DevEco Studio的欢迎页,选择Create Project开始创建一个新NDK工程。
    • 如果已经打开了工程,可以在菜单栏选择File > New > Create Project来创建一个新NDK工程。
  2. 根据工程创建向导,选择Native C++工程模板,然后单击Next

  1. 在工程配置页面,根据向导配置工程的基本信息后,单击**Finish。**工具会自动生成示例代码和相关资源,等待工程创建完成。

在工程entry/src/main目录下会包含cpp目录,该目录文件的详细介绍请参见C++工程目录结构。

鸿蒙全栈开发全新学习指南

之前总有很多小伙伴向我反馈说,不知道学习哪些鸿蒙开发技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?而且学习时频繁踩坑,最终浪费大量时间。所以这里为大家准备了一份实用的鸿蒙(HarmonyOS NEXT)学习路线与学习文档用来跟着学习是非常有必要的。

针对一些列因素,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植等等)鸿蒙(HarmonyOS NEXT)技术知识点。

本路线共分为四个阶段

第一阶段:鸿蒙初中级开发必备技能

在这里插入图片描述

第二阶段:鸿蒙南北双向高工技能基础:gitee.com/MNxiaona/733GH

第三阶段:应用开发中高级就业技术

第四阶段:全网首发-工业级南向设备开发就业技术:gitee.com/MNxiaona/733GH

《鸿蒙 (Harmony OS)开发学习手册》(共计892页)

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

开发基础知识:gitee.com/MNxiaona/733GH

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

基于ArkTS 开发

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

鸿蒙开发面试真题(含参考答案):gitee.com/MNxiaona/733GH

鸿蒙入门教学视频:

美团APP实战开发教学:gitee.com/MNxiaona/733GH

写在最后

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注小编,同时可以期待后续文章ing🚀,不定期分享原创知识。
  • 想要获取更多完整鸿蒙最新学习资源,请移步前往小编:gitee.com/MNxiaona/733GH

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值