当前位置: 首页 > news >正文

广饶网站定制免费网站建设推销

广饶网站定制,免费网站建设推销,无水印效果图网站,动漫设计师发展前景在三方库移植之NAPI开发[1]—Hello OpenHarmony NAPI一文中#xff0c;笔者开发的是一个rom包的napi工程。该工程需要编译烧录固件#xff0c;C 的动态库会集成到开发板的ROM中。在本篇文章中#xff0c;笔者使用三方库移植之NAPI开发[1]—Hello OpenHarmony NAPI中一样的he…在三方库移植之NAPI开发[1]—Hello OpenHarmony NAPI一文中笔者开发的是一个rom包的napi工程。该工程需要编译烧录固件C 的动态库会集成到开发板的ROM中。在本篇文章中笔者使用三方库移植之NAPI开发[1]—Hello OpenHarmony NAPI中一样的hellonapi.cpp和index.ets源码通过IDE开发一个RAM包的NAPI工程集成C 的动态库到开发板的RAM中直接编译安装hap包到开发板即可。两个开发方式的hap包运行效果一致。 开发环境 IDE:​​DevEco Studio 3.0 Release​​开发板润和DAYU200开发板 创建工程 打开IDE创建一个Native C工程。 SDK选择API9model选择Stage。 源码实现 新建的Native C工程有一个默认的hello world教程接下来需要编辑的文件如下 C方法实现 将默认的hello.cpp文件重命名为hellonapi.cpp选中右键选中重构重命名。 hellonapi.cpp内容如下 #include napi/native_api.h #include string//接口业务实现C/C代码 //std::string 需要引入string头文件#include string static napi_value getHelloString(napi_env env, napi_callback_info info) {napi_value result;std::string words Hello OpenHarmony NAPI;//NAPI_CALL(env, napi_create_string_utf8(env, words.c_str(), words.length(), result));napi_create_string_utf8(env, words.c_str(), words.length(), result);return result; }// napi_addon_register_func //2.指定模块注册对外接口的处理函数具体扩展的接口在该函数中声明static napi_value registerFunc(napi_env env, napi_value exports) {static napi_property_descriptor desc[] {// 声明该napi_module对外具体的提供的API{ getHelloString, nullptr, getHelloString, nullptr, nullptr, nullptr, napi_default, nullptr }};//NAPI_CALL(env, napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc));napi_define_properties(env, exports, sizeof(desc) / sizeof(desc[0]), desc);return exports; }// 1.先定义napi_module指定当前NAPI模块对应的模块名 //以及模块注册对外接口的处理函数具体扩展的接口在该函数中声明 // nm_modname: 模块名称对应eTS代码为import nm_modname from ohos.ohos_shared_library_name //示例对应eTS代码为import hellonapi from ohos.hellonapi static napi_module hellonapiModule {.nm_version 1,.nm_flags 0,.nm_filename nullptr,.nm_register_func registerFunc, // 模块对外接口注册函数.nm_modname hellonapi, // 自定义模块名.nm_priv ((void*)0),.reserved { 0 }, };//3.模块定义好后调用NAPI提供的模块注册函数napi_module_register(napi_module* mod)函数注册到系统中。 // register module设备启动时自动调用此constructor函数把模块定义的模块注册到系统中 extern C __attribute__((constructor)) void hellonapiModuleRegister() {napi_module_register(hellonapiModule); }此时的native_api.h文件是在sdk\native\3.2.7.5\sysroot\usr\include\napi目录下。 CMakeLists.txt编译配置文件编写 和开发rom包的NAPI工程需要在BUILD.gn文件中指定编译so库需要的头文件和源文件、动态库名称、依赖的库一样通过IDE开发ROM包时也需要在CMakeLists.txt中指定编译so库需要的头文件和源文件、动态库名称、依赖的库内容如下 cmake_minimum_required(VERSION 3.4.1) project(MyApplication3) set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR}) include_directories(${NATIVERENDER_ROOT_PATH}${NATIVERENDER_ROOT_PATH}/include)add_library(hellonapi SHARED hellonapi.cpp) target_link_libraries(hellonapi PUBLIC libace_napi.z.so)NATIVERENDER_ROOT_PATH路径指的是sdk\native\3.2.7.5\sysroot\usradd_library(hellonapi SHARED hellonapi.cpp)表示编译libhellonapi.so需要的是hellonapi.cpptarget_link_libraries(hellonapi PUBLIC libace_napi.z.so)表示编译编译libhellonapi.so依赖libace_napi.z.so开发ROM包的NAPI工程时libhellonapi.z.so也依赖libace_napi.z.so以下为开发ROM包的NAPI工程时BUILD.gn文件 libhellonapi.so依赖的libace_napi.z.so在sdk\native\3.2.7.5\sysroot\usr\lib\aarch64-linux-ohos目录下。 sdk\native\3.2.7.5\sysroot\usr\lib\arm-linux-ohos目录下也有开发ROM包的NAPI时候可能依赖的动态库。 index.d.ts声明文件编写 index.d.ts内容如下 export const getHelloString: () string;界面设计 index.ets和​ 三方库移植之NAPI开发 1 一文中一致。 import prompt from system.prompt import hellonapi from libhellonapi.soEntry Component export struct HelloNAPI {build() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {Button(NAPI: hellonapi.getHelloString()).margin(10).fontSize(24).onClick(() {// 调用getHelloString接口let strFromNAPI hellonapi.getHelloString()prompt.showToast({ message: strFromNAPI })})}.width(100%).height(100%)} }json配置文件编写 package.json内容如下 {name: libhellonapi.so,types: ./index.d.ts }entry/package-lock.json内容如下 types/libhellonapi.so:file:./src/main/cpp/types/libhellonapi有报错就删除原有的libentry.so符号链接。 entry/package.json内容如下 types/libhellonapi.so: {version: file:src/main/cpp/types/libhellonapi,修改原有的libentry为libhellonapi 设置hap为自动签名 hap包运行效果 和三方库移植之NAPI开发[1]—Hello OpenHarmony NAPI一文效果一致。 总结RAM包的NAPI工程和ROM包的NAPI工程的异同 以下为个人总结希望各位老师和同学批评指正 动态库的命名方式的不同RAM包的NAPI工程通过IDE开发NAPI工程使用的动态库libhellonapi.so而ROM包的NAPI工程编译出来使用的动态库是libhellonapi.z.so。 libhellonapi.so位于hap包源码路径如下 entry\build\default\intermediates\libs\default\arm64-v8a entry\build\default\intermediates\cmake\default\obj\arm64-v8a entry\build\default\intermediates\libs\default\armeabi-v7a entry\build\default\intermediates\cmake\default\obj\armeabi-v7a开发ROM包的NAPI工程需要加入OHOS编译体系编写BULID.gn、ohos.build等,开发过程较为繁琐。而RAM包的NAPI工程不需要加入OHOS编译体系编写CMakeLists.txt配置编译需要的源文件、头文件、依赖的库等。因此开发RAM包的NAPI工程相对简洁。.d.ts声明文件的编写不同开发ROM包的NAPI工程时笔者编写的ohos.hellonapi.d.ts内容为 开发RAM包的NAPI工程时笔者编写的ohos.hellonapi.d.ts内容为 编写.d.ts声明文件时RAM包开发的NAPI工程定义功能方法getHelloString: () string比ROM包多了符号。 为了能让大家更好的学习鸿蒙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.鸿蒙南向开发方向
http://www.pierceye.com/news/147749/

相关文章:

  • 内部优惠券网站怎么做大连网站制作建设
  • 经营虚拟网站策划书福建设备公司网站
  • 网站建设费用明细报价wordpress暗箱
  • 南宁网站建公司电话福州建站服务
  • 有没有什么推荐的网站用 php网站建设打出一首古诗
  • 品牌网站建设浩森宇特wordpress 首页 缩略图
  • 一个主机可以做几个网站域名织梦cms网站更新
  • 知名网站有哪些网站开发是什么环境
  • 哪些网站是用wordpress开发一款视频app多少钱
  • 济南网站定制制作建设项目 环评申报网站
  • 无锡响应式网站设计wordpress站群管理系统
  • 主题网站策划设计书网络营销是什么的一项活动
  • python+网站开发实例教程免费做视频网站
  • 免费建站自己的网址美化网站公司
  • 做购物网站哪个cms好用网络规划与设计就业前景
  • wordpress仿站工具网站建设jw100
  • 网站推广过程叙述关键词歌词
  • vip影视网站如何做appwordpress centos查看目录
  • 网站怎么套模板山西seo博客
  • 好看的手机网站推荐新建的网站 找不到
  • 网站站内搜索怎么做seo搜索优化
  • 建设部网站 测绘规章pc网站手机网站
  • 建网站如何赚钱vs哪个版本做网站好
  • 新衡阳网站游戏软件开发公司简介
  • 湖南基础建设投资集团网站做体育最好的网站
  • 上海php网站开发公司wordpress 邮件认证
  • 教做香肠的网站张家港专业网站建设
  • 园林建设网站营销型网站的建站步骤是什么意思
  • 招聘求职网站html模板正规的创业商机网
  • 预付网站建设费会计处理哪里建网站好