NDK开发课程介绍

1、什么是NDK

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动态库。

2、NDK适用场景

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

  • 性能敏感的场景,如游戏、物理模拟等计算密集型场景。
  • 需要复用已有C或C++库的场景。
  • 需要针对CPU特性进行专项定制库的场景,如Neon加速。

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

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

为什么要学习NDK知识?

  1. 系统能力使用,不使用NDK完成不了功能
  2. 多线程

3、依赖基础知识

  • 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动态库。

4、课程内容介绍

  • 基础篇

    • C++基础语法
    • NAPI基础介绍
    • 构建工具CMake
  • 进阶篇

    • 开发工具介绍
    • NAPI进阶

      • 异步使用
      • 异步原理
    • NDK常用模块介绍
  • 高级篇

    • 借助工具定位问题
    • 编译三方C++库(跨平台)
  • 实战

    • 音视频
    • OpenGL