
HarmonyOS跨平台开发需要具备哪些经验?
HarmonyOS的跨平台开发需要具备哪些经验?在HarmonyOS社区核心讲师夏曹俊看来,主要包括:HarmonyOS NEXT原生开发中Native API分析;跨平台库如何与ArkTS交互;跨平台的库移植到HarmonyOS NEXT中的案例。
在51CTO特别策划推出的“HarmonyOS创新探索与应用实践 · 开发者系列沙龙”活动中,他针对以上问题进行了详细介绍。
HarmonyOS NEXT原生NDK开发需要的知识有哪些?Node-API;Linux C编程知识 基于POSIX等标准扩展;CMake使用知识;Clang/LLVM 毕N编译器编译器使用知识。
v准C库:以musl为基础提供的标准C库接口。
标准C++库:C++运行时库libc++_shared。
日志:打印日志到系统的HiLog接口。
Node-API:当需要实现ArkTS/JS和C/C++之间的交互时,可以使用Node-API。
libuv:三方异步IO库。
zlib:zlib库,提供基本的数据压缩、解压接口。
Rawfile:应用资源访问接口,可以读取应用中打包的各种资源。
XComponent:ArkUI XComponent组件提供surface与触屏事件等接口,方便开发者开发高性能图形应用。
Drawing:系统提供的2D图形库,可以在surface进行绘制。
OpenGL:系统提供的OpenGL 3D图形接口。
OpenSL ES:用于2D、3D音频加速的接口库。
HarmonyOS工具链的基础配置文件是ohos.toolchain.cmake。默认值,如编译器架构、C++库链接方式等,通过CMAKE_TOOLCHAIN_FILE指定。
build-tools文件夹:放置NDK提供的编译工具;llvm文件夹:放置NDK提供的编译器。
ArkTS/JS侧:实现C++方法的调用。代码比较简单,import一个对应的so库后,即可调用C++方法。
Native侧:.cpp文件,实现模块的注册。需要提供注册lib库的名称,并在注册回调方法中定义接口的映射关系,即Native方法及对应的JS/ArkTS接口名称等。
Node-API接口只能在JS线程使用。Native接口入参数env与特定JS线程绑定只能在创建时的线程使用。
