wordpress 建站容易吗,wordpress显示代码框,免费模板下载网,昆明网站托管企业NDK适用场景
适合使用NDK的场景#xff1a;应用涉及如下场景时#xff0c;适合采用NDK开发 性能敏感的场景#xff0c;如游戏、物理模拟等计算密集型场景。 需要复用已有C或C库的场景。 需要针对CPU特性进行专项定制库的场景#xff0c;如Neon加速。
不建议使用NDK的场…NDK适用场景
适合使用NDK的场景应用涉及如下场景时适合采用NDK开发 性能敏感的场景如游戏、物理模拟等计算密集型场景。 需要复用已有C或C库的场景。 需要针对CPU特性进行专项定制库的场景如Neon加速。
不建议使用NDK的场景应用涉及如下场景时不建议采用NDK开发 纯C或C的应用。 希望在尽可能多的HarmonyOS设备上保持兼容的应用。
NDK必备
为顺利进行NDK开发开发者需要先掌握必要的基本概念及基础知识。
NDK基本 Node-APINode-APINode-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版本的向导界面、模板默认参数等会有所不同请根据实际工程需要创建工程或修改工程参数。 通过如下两种方式打开工程创建向导界面。 如果当前未打开任何工程可以在DevEco Studio的欢迎页选择Create Project开始创建一个新NDK工程。如果已经打开了工程可以在菜单栏选择File New Create Project来创建一个新NDK工程。 根据工程创建向导选择Native C工程模板然后单击Next。 在工程配置页面根据向导配置工程的基本信息后单击Finish。工具会自动生成示例代码和相关资源等待工程创建完成。 在工程entry/src/main目录下会包含cpp目录 毕昇编译器 毕昇编译器是基于LLVM开源软件开发的一款用于C/C等语言的native编译器能将C/C代码工程编译链接成可以在设备上运行的二进制。在无需改动用户代码的条件下相比业界主流的开源LLVM或GCC编译器毕昇编译器能提供更强大的优化能力使编译链接出来的二进制的运行时长更短、指令数更少帮助提升应用在设备上的运行流畅度。 能力范围 毕昇编译器提供将C/C代码工程编译链接成可以在设备上运行的二进制的基本能力主要包括以下三方面 编译能力将C/C源码文件编译成汇编文件汇编文件是指使用汇编语言编写的文件。汇编能力将汇编文件汇编成可重定向文件可重定向文件是ELF格式的二进制文件但不能直接放在设备上运行。链接能力将一个或多个可重定向文件一起链接成一个可执行的二进制文件。
亮点特征
毕昇编译器相对于LLVM/GCC编译器有以下特点。
循环优化增强
针对循环相关的编译优化毕昇编译器在场景识别、结构变换等方面做了改进和增强。例如在社区LLVM已有的Loop Distribution优化上毕昇编译器相比开源LLVM编译器能额外识别出循环内不同代码块间数据依赖关系、以及不同代码块运行的迭代次数差别从而能对更多的循环进行loop distribution优化。 Figure 1 毕昇编译器Loop Distribution优化增强示例
矢量化优化增强
毕昇编译器在矢量化优化方面相比开源LLVM编译器不仅能将更多的循环做矢量化转换还在矢量化指令选择上更高效。例如下面示例中开源LLVM编译器虽然做了矢量化但使用了5条矢量指令而毕昇编译器只需要使用2条矢量指令最终产生的二进制效率更优。 Figure 2 毕昇编译器矢量化优化增强示例
毕昇编译器使用指导
在DevEco Studio 中使用毕昇编译器
开发者可以获取DevEco Studio 5.0.3.402及以上的版本在HarmonyOS应用的工程级build-profile.json5中简单配置即可使用毕昇编译器在runtimeOS为HarmonyOS的时候设置nativeCompiler为BiSheng即可使用毕昇编译器构建HarmonyOS工程的C/C代码。 最后
小编在之前的鸿蒙系统扫盲中有很多朋友给我留言不同的角度的问了一些问题我明显感觉到一点那就是许多人参与鸿蒙开发但是又不知道从哪里下手因为资料太多太杂教授的人也多无从选择。有很多小伙伴不知道学习哪些鸿蒙开发技术不知道需要重点掌握哪些鸿蒙应用开发知识点而且学习时频繁踩坑最终浪费大量时间。所以有一份实用的鸿蒙HarmonyOS NEXT资料用来跟着学习是非常有必要的。
为了确保高效学习建议规划清晰的学习路线涵盖以下关键阶段 鸿蒙HarmonyOS NEXT最新学习路线
该路线图包含基础技能、就业必备技能、多媒体技术、六大电商APP、进阶高级技能、实战就业级设备开发不仅补充了华为官网未涉及的解决方案
路线图适合人群
IT开发人员想要拓展职业边界零基础小白鸿蒙爱好者希望从0到1学习增加一项技能。技术提升/进阶跳槽发展瓶颈期提升职场竞争力快速掌握鸿蒙技术
2.视频学习资料学习PDF文档
这份鸿蒙HarmonyOS NEXT资料包含了鸿蒙开发必掌握的核心知识要点内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、南向驱动、嵌入式等鸿蒙项目实战等等鸿蒙HarmonyOS NEXT技术知识点。
HarmonyOS Next 最新全套视频教程 纯血版鸿蒙全套学习资料面试、文档、全套视频等
总结
参与鸿蒙开发你要先认清适合你的方向如果是想从事鸿蒙应用开发方向的话可以参考本文的学习路径简单来说就是为了确保高效学习建议规划清晰的学习路线