当前位置: 首页 > 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.zqtcl.cn/news/812006/

相关文章:

  • 保定建站公司模板wordpress 华为云
  • 好的网页设计网站推荐开发定制软件公司
  • 深圳做网站设计多媒体网站开发
  • 什么是网站组件高端网站设计高端网站制作
  • 网易网站建设深圳专业营销网站制作
  • 有口碑的佛山网站建设东莞网约车资格证官网登录入口
  • 网站建设合同 保密条款wordpress网站手机端
  • 汕头建站费用wordpress转cms
  • 全美网站开发PHP 网站开发 重点知识
  • 电商网站建设重要性一个公司可以做几个网站吗
  • 婚恋网站系统淘宝联盟推广做网站违法
  • 双鸭山网站建设公司百度电脑版官网下载
  • 网站开发项目名html欧美网站模板
  • 成都哪里有做网站的雪樱wordpress主题
  • 深圳建站模板公司微商管理系统
  • 贸易建设网站网页美工设计图片
  • 网站建设尺寸规范国外h5网站模板下载
  • 怎么区分网站的好坏软件定制化开发的知识产权归属
  • 网站建设客户需求分析调研表网站建设企业网站
  • 建设网站要注意什么问题临沂网站建设团队
  • 怎么做网站和注册域名互联网行业的工作岗位
  • 北京做网站优化多少钱网站反链和外链的区别
  • 厦门网站推广找谁wordpress的模板目录在哪里
  • 做网站的维护成本wordpress 密码更改
  • 企业网站建设流程概述长春网站推广排名
  • 网站导航设计牙科 网站建设方案
  • 手机微信网站开发教程企业网站的制作成本
  • 做电商网站的流程网站架构搭建
  • 可以下载新闻视频的网站重庆seo
  • 网站内容页设计网站建设实验分析