论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
鸿蒙
›
鸿蒙HarmonyOS应用开发之NDK开发导读
鸿蒙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提供的编译工具
# 键入下一行命令查看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音频加速的接口库。
为了能让各人更好的学习鸿蒙(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 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
瑞星
金牌会员
这个人很懒什么都没写!
楼主热帖
复习一下Linux常用命令,孰能生巧~ ...
OpenSSL RSA相关基本接口和编程示例 ...
Oracle实现金额小写转大写函数 ...
适用于顺序磁盘访问的1分钟法则 ...
内网安全-横向移动(1)
Blazor概述和路由
终于有人把不同标签的加工内容与落库讲 ...
《Redis设计与实现》
使用 Power Shell 修改 Hyper-V 虚拟机 ...
执行计划缓存,Prepared Statement性能 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表