鸿蒙HarmonyOS应用开发之NDK开发导读

瑞星  金牌会员 | 2024-6-11 19:24:43 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 803|帖子 803|积分 2409

NDK(Native Development Kit)是OpenHarmony SDK提供的Native API、相应编译脚本和编译工具链的集合,方便开发者利用C或C++语言实现应用的关键功能。NDK只覆盖了OpenHarmony一些基础的底层能力,如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++的应用。
  • 希望在尽大概多的OpenHarmony设备上保持兼容的应用。
NDK必备基础知识

为顺遂举行NDK开发,开发者需要先掌握须要的基本概念及基础知识。
NDK基本概念



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


  • C API
OpenHarmony NDK的曾用名,不再利用。
前置知识



  • Linux C语言编程知识 内核、libc基础库基于POSIX等标准扩展而来,掌握基本的Linux C编程知识能够更好的帮助理解OpenHarmony NDK开发。
  • CMake利用知识 CMake是OpenHarmony默认支持的构建系统。请先通过[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提供的编译工具
  1. # 键入下一行命令查看CMake的版本
  2. cmake -version
  3. # 结果
  4. cmake version 3.16.5
  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音频加速的接口库。 为了能让各人更好的学习鸿蒙(HarmonyOS NEXT)开发技能,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对各人有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05


  • 基本概念
  • 构建第一个ArkTS应用
  • ……

开发基础知识:https://qr21.cn/FV7h05


  • 应用基础知识
  • 设置文件
  • 应用数据管理
  • 应用安全管理
  • 应用隐私保护
  • 三方应用调用管控机制
  • 资源分类与访问
  • 学习ArkTS语言
  • ……

基于ArkTS 开发:https://qr21.cn/FV7h05


  • Ability开发
  • UI开发
  • 公共事件与通知
  • 窗口管理
  • 媒体
  • 安全
  • 网络与链接
  • 电话服务
  • 数据管理
  • 背景任务(Background Task)管理
  • 设备管理
  • 设备利用信息统计
  • DFX
  • 国际化开发
  • 折叠屏系列
  • ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH


鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

瑞星

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表