鸿蒙(API 12 Beta2版)【创建NDK工程】

创建NDK工程

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

说明

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

  1. 通过如下两种方式,打开工程创建向导界面。

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

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

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

工程目录结构

ArkTS工程目录结构(Stage模型)

ArkTS Stage模型支持API Version 10及以上版本,其工程目录结构如下图所示:

  • AppScope > app.json5:应用的全局配置信息。

  • entry: 应用/服务模块,编译构建生成一个HAP。

    • src > main > ets:用于存放ArkTS源码。

    • src > main > ets > entryability:应用/服务的入口。

    • src > main > ets > pages:应用/服务包含的页面。

    • src > main > resources: 用于存放应用/服务模块所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件的详细说明请参考[资源分类与访问]。

      资源目录 资源文件说明
      base>element 包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:- boolean.json:布尔型
      • color.json:颜色
      • float.json:浮点型
      • intarray.json:整型数组
      • integer.json:整型
      • pattern.json:样式
      • plural.json:复数形式
      • strarray.json:字符串数组
      • string.json:字符串值 |
        | base>media | 多媒体文件,如图形、视频、音频等文件,支持的文件格式包括: .png.gif.mp3.mp4 等。 |
        | rawfile | 用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
    • src > main > module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。具体请参考[module.json5配置文件]。

    • build-profile.json5: 当前的模块信息、编译信息配置项,包括buildOption、targets配置等。

    • hvigorfile.ts:模块级编译构建任务脚本。

    • oh-package.json5:描述三方包的包名、版本、入口文件(类型声明文件)和依赖项等信息。

  • oh_modules:用于存放三方库依赖信息,包含应用/服务所依赖的第三方库文件。

  • build-profile.json5: 应用级配置信息,包括签名、产品配置等。

  • hvigorfile.ts: 应用级编译构建任务脚本。

  • oh-package.json5: 描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。

C++工程目录结构(Stage模型)

C++ Stage模型支持API Version 10以上版本,支持使用ArkTS+C++进行开发,其工程目录结构如下图所示。

  • entry:应用模块,编译构建生成一个HAP。

    • src > main > cpp > types:用于存放C++的API接口描述文件

    • src > main > cpp > types > libentry > index.d.ts:描述C++ API接口行为,如接口名、入参、返回参数等。

    • src > main > cpp > types > libentry> oh-package.json5:配置.so三方包声明文件的入口及包名。

    • src > main > cpp > CMakeLists.txt:CMake配置文件,提供CMake构建脚本。

    • src > main > cpp > napi_init.cpp: 定义C++ API接口的文件

    • src > main > ets: 用于存放ArkTS源码。

    • src > main > resources: 用于存放应用所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件的详细说明请参考[资源分类与访问]。

      资源目录 资源文件说明
      base>element 包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:- boolean.json:布尔型
      • color.json:颜色
      • float.json:浮点型
      • intarray.json:整型数组
      • integer.json:整型
      • pattern.json:样式
      • plural.json:复数形式
      • strarray.json:字符串数组
      • string.json:字符串值。 |
        | base>media | 多媒体文件,如图形、视频、音频等文件,支持的文件格式包括: .png.gif.mp3.mp4 等。 |
        | rawfile | 用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
    • src > main > module.json5: Stage模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。具体请参考[module.json5配置文件]。

    • build-profile.json5: 当前的模块信息、编译信息配置项,包括buildOption、targets配置等。

    • hvigorfile.ts: 模块级编译构建任务脚本。

  • build-profile.json5: 应用级配置信息,包括签名、产品配置等。

  • hvigorfile.ts:应用级编译构建任务脚本。

JS工程目录结构(FA模型)

JS工程只支持FA模型,其工程目录结构如下图所示:

  • entry: 应用/服务模块,编译构建生成一个HAP。

    • src > main > js:用于存放js源码。

    • src > main > js > MainAbility:应用/服务的入口。

    • src > main > js > MainAbility > i18n:用于配置不同语言场景资源内容,比如应用文本词条、图片路径等资源。

    • src > main > js > MainAbility > pages:MainAbility包含的页面。

    • src > main > js > MainAbility > app.js:承载Ability生命周期。

    • src > main > resources: 用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件的详细说明请参考[资源分类与访问]。

      资源目录 资源文件说明
      base>element 包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:- boolean.json:布尔型
      • color.json:颜色
      • float.json:浮点型
      • intarray.json:整型数组
      • integer.json:整型
      • pattern.json:样式
      • plural.json:复数形式
      • strarray.json:字符串数组
      • string.json:字符串值 |
        | base>media | 多媒体文件,如图形、视频、音频等文件,支持的文件格式包括: .png.gif.mp3.mp4 等。 |
        | rawfile | 用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
    • src > main > config.json:模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。

    • build-profile.json5: 当前的模块信息、编译信息配置项,包括buildOption、targets配置等。

    • hvigorfile.ts:模块级编译构建任务脚本。

    • oh-package.json5:配置三方包声明文件的入口及包名。

  • build-profile.json5: 应用级配置信息,包括签名、产品配置等。

  • hvigorfile.ts: 应用级编译构建任务脚本。

最后呢

很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。

而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档 》里面内容包含了(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等)鸿蒙(Harmony NEXT)技术知识点

如果你是一名Android、Java、前端等等开发人员,想要转入鸿蒙方向发展。可以直接领取这份资料辅助你的学习。下面是鸿蒙开发的学习路线图。

针对鸿蒙成长路线打造的鸿蒙学习文档。话不多说,我们直接看详细鸿蒙(OpenHarmony )手册(共计1236页)与鸿蒙(OpenHarmony )开发入门视频,帮助大家在技术的道路上更进一步。

  • 《鸿蒙 (OpenHarmony)开发学习视频》
  • 《鸿蒙生态应用开发V2.0白皮书》
  • 《鸿蒙 (OpenHarmony)开发基础到实战手册》
  • OpenHarmony北向、南向开发环境搭建
  • 《鸿蒙开发基础》
  • 《鸿蒙开发进阶》
  • 《鸿蒙开发实战》

总结

鸿蒙---作为国家主力推送的国产操作系统。部分的高校已经取消了安卓课程,从而开设鸿蒙课程;企业纷纷跟进启动了鸿蒙研发。

并且鸿蒙是完全具备无与伦比的机遇和潜力的;预计到年底将有 5,000 款的应用完成原生鸿蒙开发,未来将会支持 50 万款的应用。那么这么多的应用需要开发,也就意味着需要有更多的鸿蒙人才。鸿蒙开发工程师也将会迎来爆发式的增长,学习鸿蒙势在必行! 自↓↓↓拿

相关推荐
likuolei3 分钟前
XQuery 完整语法速查表(2025 最新版,XQuery 3.1)
xml·java·数据库
汉堡黄16 分钟前
鸿蒙开发:案例集合Tabs:tabs竖向粘性
harmonyos
b***462421 分钟前
从 SQL 语句到数据库操作
数据库·sql·oracle
Q***f63524 分钟前
后端数据库性能优化的8个工具推荐
数据库·性能优化
威哥爱编程40 分钟前
【鸿蒙开发实战篇】如何基于一多能力实现响应式布局
harmonyos·arkts·arkui
一水鉴天1 小时前
整体设计 定稿 之1 devOps 中台的 结论性表述(豆包助手)
服务器·数据库·人工智能
威哥爱编程1 小时前
【鸿蒙开发实战篇】如何实现高级图片滤镜
harmonyos·arkts·arkui
威哥爱编程1 小时前
【鸿蒙开发实战篇】强大的跨应用数据分享与应用内文件共享
harmonyos·arkts·arkui
威哥爱编程1 小时前
【鸿蒙开发实战篇】如何利用 3D渲染引擎实现高性能动态滤镜特效
harmonyos·arkts·arkui
威哥爱编程1 小时前
【鸿蒙开发实战篇】滤镜效果图高效分享
harmonyos·arkts·arkui