提交 273d886e 编写于 作者: Z zengyawen

update docs

Signed-off-by: Nzengyawen <zengyawen1@huawei.com>
上级 ff5b676d
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
- [如何编译full-SDK](full-sdk-compile-guide.md) - [如何编译full-SDK](full-sdk-compile-guide.md)
- [如何替换full-SDK](full-sdk-switch-guide.md) - [如何替换full-SDK](full-sdk-switch-guide.md)
- [如何在CMake工程中使用OpenHarmony SDK的Native API(NDK)](howto-migrate-cmake-with-ohosndk.md)
- [应用模型常见问题](faqs-ability.md) - [应用模型常见问题](faqs-ability.md)
- ArkUI框架开发常见问题(ArkTS) - ArkUI框架开发常见问题(ArkTS)
- [ArkTS语法使用常见问题](faqs-arkui-arkts.md) - [ArkTS语法使用常见问题](faqs-arkui-arkts.md)
......
# 如何在CMake工程中使用OpenHarmony SDK的Native API(NDK) # 如何在CMake工程中使用OpenHarmony SDK的Native API(NDK)
## 1. 什么是Native API ## 什么是Native API
请参看《[Native API](https://gitee.com/openharmony/docs/blob/a1ef2da9276755c98883bd318f55fd0a3a614680/zh-cn/application-dev/napi/Readme-CN.md)
## 2. 如何下载Native API开发包(NDK) 请参看[Native API](../reference/native-api-intro.md)
1)推荐OpenHarmony正式发布的SDK包 ,下载链接可以从OpenHarmony正式发布版本的[release-notes](https://gitee.com/openharmony/docs/tree/master/zh-cn/release-notes#/openharmony/docs/blob/master/zh-cn/release-notes/OpenHarmony-v3.2-release.md)中获取,点击release notes中【从站点镜像获取】章节下载。 ## 如何下载Native API开发包(NDK)
1. 推荐OpenHarmony正式发布的SDK包 ,下载链接可以从OpenHarmony正式发布版本的[release-notes](../../release-notes/OpenHarmony-v3.2-release.md)中获取,点击release notes中【从站点镜像获取】章节下载。
2IDE OpenHarmony SDK Manager中下载 2. IDE OpenHarmony SDK Manager中下载
3)从每日构建中下载,下载地址 http://ci.openharmony.cn/dailys/dailybuilds ,形态组件选择ohos-sdk 3. 从每日构建中下载,下载地址 http://ci.openharmony.cn/dailys/dailybuilds ,形态组件选择ohos-sdk
![输入图片说明](figures/ci_download.png)
## 3 解压Native API开发包 ![](figures/ci_download.png)
## 解压Native API开发包
下载完成之后,将压缩包放入自己创建好的文件夹下解压,解压完成效果如下图所示: 下载完成之后,将压缩包放入自己创建好的文件夹下解压,解压完成效果如下图所示:
![输入图片说明](figures/sdk-structure.png) ![](figures/sdk-structure.png)
配置Linux下的环境,如果只是在IDE中使用,跳过下面几步: 配置Linux下的环境,如果只是在IDE中使用,跳过下面几步:
...@@ -40,17 +41,18 @@ ...@@ -40,17 +41,18 @@
~/ohos-sdk/ohos-sdk/linux/native/build-tools/cmake/bin/cmake ~/ohos-sdk/ohos-sdk/linux/native/build-tools/cmake/bin/cmake
``` ```
## 如何使用Native API开发包编译一个native程序
## 3. 如何使用Native API开发包编译一个native程序
应用开发者可以通过Native API开发包快速的开发出native动态库,静态库与可执行文件,ArkUI应用程序框架可以通过NAPI框架调用到native的动态库中。开发包提供CMake作为官方的编译构建工具。下面通过自己编写一个C/C++ demo工程来演示如何使用Native API开发包来编译C/C++动态库。 应用开发者可以通过Native API开发包快速的开发出native动态库,静态库与可执行文件,ArkUI应用程序框架可以通过NAPI框架调用到native的动态库中。开发包提供CMake作为官方的编译构建工具。下面通过自己编写一个C/C++ demo工程来演示如何使用Native API开发包来编译C/C++动态库。
### 3.1、NDK中的几个文件夹简介 ### NDK中的文件夹简介
#### 3.1.1、build目录中工具链文件ohos.toolchain.cmake
cmake编译时需要读取该文件中的默认值,比如编译器架构、C++库链接方式等,这个需要在编译时通过CMAKE_TOOLCHAIN_FILE指出该文件的路径,便于cmake在编译时定位到该文件。在编译的时候需要为cmake指定参数来控制编译目标的属性,具体要指定的参数在下面的[命令行构建](#3.4、命令行构建)会具体介绍。 #### build目录中工具链文件ohos.toolchain.cmake
cmake编译时需要读取该文件中的默认值,比如编译器架构、C++库链接方式等,这个需要在编译时通过CMAKE_TOOLCHAIN_FILE指出该文件的路径,便于cmake在编译时定位到该文件。在编译的时候需要为cmake指定参数来控制编译目标的属性,具体要指定的参数在下面的[命令行构建](#命令行构建)会具体介绍。
#### build-tools文件夹放的是NDK提供的编译工具
#### 3.1.2、build-tools文件夹放的是NDK提供的编译工具
``` ```
#键入下一行命令查看cmake的版本 #键入下一行命令查看cmake的版本
cmake -version cmake -version
...@@ -59,11 +61,16 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++ ...@@ -59,11 +61,16 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++
CMake suite maintained and supported by Kitware (kitware.com/cmake). CMake suite maintained and supported by Kitware (kitware.com/cmake).
``` ```
#### 3.1.3、llvm文件夹放的是NDK提供的编译器
![输入图片说明](https://images.gitee.com/uploads/images/2022/0304/164051_0968e346_10124238.png "无标题3.png")
### 3.2、NDK使用的简单demo #### llvm文件夹放的是NDK提供的编译器
#### 3.2.1、demo目录图
![](figures/images.png)
### NDK使用的简单demo
#### demo目录图
```
demo demo
├── CMakeLists.txt ├── CMakeLists.txt
├── include ├── include
...@@ -72,8 +79,10 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++ ...@@ -72,8 +79,10 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++
├── CMakeLists.txt ├── CMakeLists.txt
├── sum.cpp ├── sum.cpp
└── hello.cpp └── hello.cpp
```
#### CMakeLists.txt内容
#### 3.2.2、CMakeLists.txt内容
``` ```
# 指定cmake的最小版本 # 指定cmake的最小版本
CMAKE_MINIMUM_REQUIRED(VERSION 3.16) CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
...@@ -85,7 +94,8 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++ ...@@ -85,7 +94,8 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++
ADD_SUBDIRECTORY(src bin) ADD_SUBDIRECTORY(src bin)
``` ```
#### 3.2.3、内部CMakeLists.txt内容 #### 内部CMakeLists.txt内容
``` ```
SET(LIBHELLO_SRC hello.cpp) SET(LIBHELLO_SRC hello.cpp)
...@@ -110,8 +120,10 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++ ...@@ -110,8 +120,10 @@ cmake编译时需要读取该文件中的默认值,比如编译器架构、C++
详细CMake手册参考 https://cmake.org/cmake/help/v3.16/guide/tutorial/ 详细CMake手册参考 https://cmake.org/cmake/help/v3.16/guide/tutorial/
#### 3.2.4、源码内容 #### 源码内容
hello.cpp 源码 hello.cpp 源码
``` ```
#include <iostream> #include <iostream>
#include "sum.h" #include "sum.h"
...@@ -124,12 +136,16 @@ hello.cpp 源码 ...@@ -124,12 +136,16 @@ hello.cpp 源码
return 0; return 0;
} }
``` ```
sum.h源码 sum.h源码
``` ```
int sum(int a, int b); int sum(int a, int b);
``` ```
sum.cpp源码 sum.cpp源码
``` ```
#include <iostream> #include <iostream>
...@@ -139,8 +155,8 @@ sum.cpp源码 ...@@ -139,8 +155,8 @@ sum.cpp源码
} }
``` ```
### ohos.toolchain.cmake中关键变量
### 3.3、ohos.toolchain.cmake中关键变量,如下:
| 参数 | 类型 |备注| | 参数 | 类型 |备注|
|--------|------|------| |--------|------|------|
|OHOS_STL|c++_shared/c++_static|默认是c++_shared,用来控制是动态链接libc++_shared.so还是静态链接libc++_static.a,对于同一个应用中的全部native库需要采用同一种链接方式,这个是由c++运行时中一些全局状态导致的| |OHOS_STL|c++_shared/c++_static|默认是c++_shared,用来控制是动态链接libc++_shared.so还是静态链接libc++_static.a,对于同一个应用中的全部native库需要采用同一种链接方式,这个是由c++运行时中一些全局状态导致的|
...@@ -148,18 +164,22 @@ sum.cpp源码 ...@@ -148,18 +164,22 @@ sum.cpp源码
|OHOS_PLATFORM|OHOS|平台选择,当前只支持OpenHarmony平台| |OHOS_PLATFORM|OHOS|平台选择,当前只支持OpenHarmony平台|
|CMAKE_TOOLCHAIN_FILE|工具链文件|就是ohos.toolchain.cmake文件,里面根据上面参数指定了对应平台的交叉编译参数| |CMAKE_TOOLCHAIN_FILE|工具链文件|就是ohos.toolchain.cmake文件,里面根据上面参数指定了对应平台的交叉编译参数|
### 3.4、命令行构建 ### 命令行构建
在工程目录下,创建build目录,用来放置cmake构建时产生的中间文件。注意: ohos-sdk是下载下来的SDK的根目录,开发者需要自行替换成实际的下载目录。 在工程目录下,创建build目录,用来放置cmake构建时产生的中间文件。注意: ohos-sdk是下载下来的SDK的根目录,开发者需要自行替换成实际的下载目录。
1)采用OHOS_STL=c++_shared动态编译
``` 1. 采用OHOS_STL=c++_shared动态编译
```
>mkdir build && cd build >mkdir build && cd build
>cmake -DOHOS_STL=c++_shared -DOHOS_ARCH=armeabi-v7a -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE={ohos-sdk}/linux/native/build/cmake/ohos.toolchain.cmake .. >cmake -DOHOS_STL=c++_shared -DOHOS_ARCH=armeabi-v7a -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE={ohos-sdk}/linux/native/build/cmake/ohos.toolchain.cmake ..
>cmake --build . >cmake --build .
``` ```
2)采用OHOS_STL=c++_static静态编译 2. 采用OHOS_STL=c++_static静态编译
```
```
>mkdir build && cd build >mkdir build && cd build
>cmake -DOHOS_STL=c++_static -DOHOS_ARCH=armeabi-v7a -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE={ohos-sdk}/linux/native/build/cmake/ohos.toolchain.cmake .. >cmake -DOHOS_STL=c++_static -DOHOS_ARCH=armeabi-v7a -DOHOS_PLATFORM=OHOS -DCMAKE_TOOLCHAIN_FILE={ohos-sdk}/linux/native/build/cmake/ohos.toolchain.cmake ..
>cmake --build . >cmake --build .
``` ```
...@@ -29,6 +29,14 @@ ...@@ -29,6 +29,14 @@
- [开发音频通话功能](audio-call-development.md) - [开发音频通话功能](audio-call-development.md)
- [视频播放](video-playback.md) - [视频播放](video-playback.md)
- [视频录制](video-recording.md) - [视频录制](video-recording.md)
- 音视频编解码
- [获取支持的编解码能力](obtain-supported-codecs.md)
- [音频编码](audio-encoding.md)
- [音频解码](audio-decoding.md)
- [视频编码](video-encoding.md)
- [视频解码](video-decoding.md)
- [音视频封装](audio-video-encapsulation.md)
- [音视频解封装](audio-video-decapsulation.md)
- 媒体会话 - 媒体会话
- [媒体会话概述](avsession-overview.md) - [媒体会话概述](avsession-overview.md)
- 本地媒体会话 - 本地媒体会话
......
...@@ -86,8 +86,10 @@ ...@@ -86,8 +86,10 @@
- [AppStateData](js-apis-inner-application-appStateData.md) - [AppStateData](js-apis-inner-application-appStateData.md)
- [BaseContext](js-apis-inner-application-baseContext.md) - [BaseContext](js-apis-inner-application-baseContext.md)
- [Context](js-apis-inner-application-context.md) - [Context](js-apis-inner-application-context.md)
- [ContinuableInfo](js-apis-inner-application-continuableInfo.md)
- [ContinueCallback](js-apis-inner-application-continueCallback.md) - [ContinueCallback](js-apis-inner-application-continueCallback.md)
- [ContinueDeviceInfo](js-apis-inner-application-continueDeviceInfo.md) - [ContinueDeviceInfo](js-apis-inner-application-continueDeviceInfo.md)
- [ContinueMissionInfo](js-apis-inner-application-continueMissionInfo.md)
- [ErrorObserver](js-apis-inner-application-errorObserver.md) - [ErrorObserver](js-apis-inner-application-errorObserver.md)
- [ExtensionContext](js-apis-inner-application-extensionContext.md) - [ExtensionContext](js-apis-inner-application-extensionContext.md)
- [ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo.md) - [ExtensionRunningInfo](js-apis-inner-application-extensionRunningInfo.md)
...@@ -113,8 +115,6 @@ ...@@ -113,8 +115,6 @@
- continuation - continuation
- [continuationExtraParams](js-apis-continuation-continuationExtraParams.md) - [continuationExtraParams](js-apis-continuation-continuationExtraParams.md)
- [continuationResult](js-apis-continuation-continuationResult.md) - [continuationResult](js-apis-continuation-continuationResult.md)
- AI
- [@ohos.ai.mindSporeLite (推理能力)](js-apis-mindSporeLite.md)
- 公共事件与通知 - 公共事件与通知
- [系统公共事件定义](commonEventManager-definitions.md) - [系统公共事件定义](commonEventManager-definitions.md)
...@@ -151,8 +151,19 @@ ...@@ -151,8 +151,19 @@
- [包管理子系统公共事件定义](common_event/commonEvent-bundleManager.md) - [包管理子系统公共事件定义](common_event/commonEvent-bundleManager.md)
- [通知服务公共事件定义](common_event/commonEvent-ans.md) - [通知服务公共事件定义](common_event/commonEvent-ans.md)
- [资源调度子系统公共事件定义](common_event/commonEvent-resourceschedule.md) - [资源调度子系统公共事件定义](common_event/commonEvent-resourceschedule.md)
- [窗口管理子系统公共事件定义](common_event/commonEvent-window.md)
- [网络管理子系统公共事件定义](common_event/commonEvent-netmanager.md)
- [短信应用公共事件定义](common_event/commonEvent-mms.md)
- [电话服务子系统公共事件定义](common_event/commonEvent-telephony.md) - [电话服务子系统公共事件定义](common_event/commonEvent-telephony.md)
- [电源管理子系统公共事件定义](common_event/commonEvent-powermgr.md)
- [NFC子系统公共事件定义](common_event/commonEvent-nfc.md)
- [Wifi子系统公共事件定义](common_event/commonEvent-wifi.md)
- [USB子系统公共事件定义](common_event/commonEvent-usb.md) - [USB子系统公共事件定义](common_event/commonEvent-usb.md)
- [文件管理子系统公共事件定义](common_event/commonEvent-filemanagement.md)
- [主题框架子系统-锁屏管理公共事件定义](common_event/commonEvent-screenlock.md)
- [时间时区子系统公共事件定义](common_event/commonEvent-time.md)
- [帐号子系统公共事件定义](common_event/commonEvent-account.md)
- 包管理 - 包管理
- [@ohos.bundle.appControl (appControl模块)](js-apis-appControl.md) - [@ohos.bundle.appControl (appControl模块)](js-apis-appControl.md)
- [@ohos.bundle.bundleManager (bundleManager模块)](js-apis-bundleManager.md) - [@ohos.bundle.bundleManager (bundleManager模块)](js-apis-bundleManager.md)
...@@ -278,6 +289,9 @@ ...@@ -278,6 +289,9 @@
- [@ohos.filemanagement.userFileManager (用户数据管理)](js-apis-userFileManager.md) - [@ohos.filemanagement.userFileManager (用户数据管理)](js-apis-userFileManager.md)
- [@ohos.fileshare (文件分享)](js-apis-fileShare.md) - [@ohos.fileshare (文件分享)](js-apis-fileShare.md)
- AI
- [@ohos.ai.mindSporeLite (推理能力)](js-apis-mindSporeLite.md)
- 电话服务 - 电话服务
- [@ohos.contact (联系人)](js-apis-contact.md) - [@ohos.contact (联系人)](js-apis-contact.md)
- [@ohos.telephony.call (拨打电话)](js-apis-call.md) - [@ohos.telephony.call (拨打电话)](js-apis-call.md)
...@@ -305,6 +319,7 @@ ...@@ -305,6 +319,7 @@
- [@ohos.nfc.controller (标准NFC)](js-apis-nfcController.md) - [@ohos.nfc.controller (标准NFC)](js-apis-nfcController.md)
- [@ohos.nfc.tag (标准NFC-Tag)](js-apis-nfcTag.md) - [@ohos.nfc.tag (标准NFC-Tag)](js-apis-nfcTag.md)
- [@ohos.rpc (RPC通信)](js-apis-rpc.md) - [@ohos.rpc (RPC通信)](js-apis-rpc.md)
- [@ohos.secureElement (安全单元的通道管理)](js-apis-secureElement.md)
- [@ohos.wifiManager (WLAN)(推荐)](js-apis-wifiManager.md) - [@ohos.wifiManager (WLAN)(推荐)](js-apis-wifiManager.md)
- [@ohos.wifiManagerExt (WLAN扩展接口)(推荐)](js-apis-wifiManagerExt.md) - [@ohos.wifiManagerExt (WLAN扩展接口)(推荐)](js-apis-wifiManagerExt.md)
- [@ohos.wifi (WLAN)(待停用)](js-apis-wifi.md) - [@ohos.wifi (WLAN)(待停用)](js-apis-wifi.md)
...@@ -360,6 +375,7 @@ ...@@ -360,6 +375,7 @@
- [@ohos.multimodalInput.inputEvent (输入事件)](js-apis-inputevent.md) - [@ohos.multimodalInput.inputEvent (输入事件)](js-apis-inputevent.md)
- [@ohos.multimodalInput.inputEventClient (按键注入)](js-apis-inputeventclient.md) - [@ohos.multimodalInput.inputEventClient (按键注入)](js-apis-inputeventclient.md)
- [@ohos.multimodalInput.inputMonitor (输入监听)](js-apis-inputmonitor.md) - [@ohos.multimodalInput.inputMonitor (输入监听)](js-apis-inputmonitor.md)
- [@ohos.multimodalInput.intentionCode (意图事件)](js-apis-intentioncode.md)
- [@ohos.multimodalInput.keyCode (键值)](js-apis-keycode.md) - [@ohos.multimodalInput.keyCode (键值)](js-apis-keycode.md)
- [@ohos.multimodalInput.keyEvent (按键输入事件)](js-apis-keyevent.md) - [@ohos.multimodalInput.keyEvent (按键输入事件)](js-apis-keyevent.md)
- [@ohos.multimodalInput.mouseEvent (鼠标输入事件)](js-apis-mouseevent.md) - [@ohos.multimodalInput.mouseEvent (鼠标输入事件)](js-apis-mouseevent.md)
...@@ -381,9 +397,10 @@ ...@@ -381,9 +397,10 @@
- 帐号管理 - 帐号管理
- [@ohos.account.appAccount (应用帐号管理)](js-apis-appAccount.md) - [@ohos.account.appAccount (应用帐号管理)](js-apis-appAccount.md)
- [@ohos.account.appAccount.AuthorizationExtensionAbility (应用帐号授权扩展能力)](js-apis-appAccount-authorizationExtensionAbility.md)
- [@ohos.account.distributedAccount (分布式帐号管理)](js-apis-distributed-account.md) - [@ohos.account.distributedAccount (分布式帐号管理)](js-apis-distributed-account.md)
- [@ohos.account.osAccount (系统帐号管理)](js-apis-osAccount.md) - [@ohos.account.osAccount (系统帐号管理)](js-apis-osAccount.md)
- 定制管理 - 定制管理
- [@ohos.configPolicy (配置策略)](js-apis-configPolicy.md) - [@ohos.configPolicy (配置策略)](js-apis-configPolicy.md)
...@@ -396,6 +413,7 @@ ...@@ -396,6 +413,7 @@
- [@ohos.enterprise.dateTimeManager (系统时间管理)](js-apis-enterprise-dateTimeManager.md) - [@ohos.enterprise.dateTimeManager (系统时间管理)](js-apis-enterprise-dateTimeManager.md)
- [@ohos.enterprise.deviceControl (设备控制管理)](js-apis-enterprise-deviceControl.md) - [@ohos.enterprise.deviceControl (设备控制管理)](js-apis-enterprise-deviceControl.md)
- [@ohos.enterprise.deviceInfo (设备信息管理)](js-apis-enterprise-deviceInfo.md) - [@ohos.enterprise.deviceInfo (设备信息管理)](js-apis-enterprise-deviceInfo.md)
- [@ohos.enterprise.deviceSettings(设备设置管理)](js-apis-enterprise-deviceSetings.md)
- [@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)](js-apis-EnterpriseAdminExtensionAbility.md) - [@ohos.enterprise.EnterpriseAdminExtensionAbility (企业设备管理扩展能力)](js-apis-EnterpriseAdminExtensionAbility.md)
- [@ohos.enterprise.networkManager (网络管理)](js-apis-enterprise-networkManager.md) - [@ohos.enterprise.networkManager (网络管理)](js-apis-enterprise-networkManager.md)
- [@ohos.enterprise.wifiManager (WiFi管理)](js-apis-enterprise-wifiManager.md) - [@ohos.enterprise.wifiManager (WiFi管理)](js-apis-enterprise-wifiManager.md)
...@@ -427,6 +445,7 @@ ...@@ -427,6 +445,7 @@
- 测试 - 测试
- [@ohos.application.testRunner (TestRunner)](js-apis-application-testRunner.md) - [@ohos.application.testRunner (TestRunner)](js-apis-application-testRunner.md)
- [@ohos.deviceAttest (设备证明)](js-apis-deviceAttest.md)
- [@ohos.uitest (UiTest)](js-apis-uitest.md) - [@ohos.uitest (UiTest)](js-apis-uitest.md)
- 已停止维护的接口 - 已停止维护的接口
......
...@@ -4,14 +4,15 @@ ...@@ -4,14 +4,15 @@
- [包管理子系统公共事件定义](commonEvent-bundleManager.md) - [包管理子系统公共事件定义](commonEvent-bundleManager.md)
- [通知服务公共事件定义](commonEvent-ans.md) - [通知服务公共事件定义](commonEvent-ans.md)
- [资源调度子系统公共事件定义](commonEvent-resourceschedule.md) - [资源调度子系统公共事件定义](commonEvent-resourceschedule.md)
- [窗口管理子系统公共事件定义](commonEvent-window.md)
- [网络管理子系统公共事件定义](commonEvent-netmanager.md)
- [短信应用公共事件定义](commonEvent-mms.md)
- [电话服务子系统公共事件定义](commonEvent-telephony.md) - [电话服务子系统公共事件定义](commonEvent-telephony.md)
- [电源管理子系统公共事件定义](commonEvent-powermgr.md) - [电源管理子系统公共事件定义](commonEvent-powermgr.md)
- [NFC子系统公共事件定义](commonEvent-nfc.md) - [NFC子系统公共事件定义](commonEvent-nfc.md)
- [USB子系统公共事件定义](commonEvent-usb.md)
- [Wifi子系统公共事件定义](commonEvent-wifi.md) - [Wifi子系统公共事件定义](commonEvent-wifi.md)
- [USB子系统公共事件定义](commonEvent-usb.md)
- [文件管理子系统公共事件定义](commonEvent-filemanagement.md) - [文件管理子系统公共事件定义](commonEvent-filemanagement.md)
- [主题框架子系统-锁屏管理公共事件定义](commonEvent-screenlock.md) - [主题框架子系统-锁屏管理公共事件定义](commonEvent-screenlock.md)
- [时间时区子系统公共事件定义](commonEvent-time.md) - [时间时区子系统公共事件定义](commonEvent-time.md)
- [网络管理子系统公共事件定义](commonEvent-netmanager.md) - [帐号子系统公共事件定义](commonEvent-account.md)
- [短信应用公共事件定义](commonEvent-mms.md)
- [窗口管理子系统公共事件定义](commonEvent-window.md)
# @ohos.secureElement( 安全单元的通道管理) # @ohos.secureElement (安全单元的通道管理)
本模块主要用于操作及管理安全单元(SecureElement,简称SE)。文档中出现的SE服务为SEService实例,参见[newSEService](#secureelementnewseservice) 本模块主要用于操作及管理安全单元(SecureElement,简称SE)。文档中出现的SE服务为SEService实例,参见[newSEService](#secureelementnewseservice)
......
...@@ -60,6 +60,7 @@ ...@@ -60,6 +60,7 @@
- [Bluetooth错误码](errorcode-bluetoothManager.md) - [Bluetooth错误码](errorcode-bluetoothManager.md)
- [WIFI错误码](errorcode-wifi.md) - [WIFI错误码](errorcode-wifi.md)
- [NFC错误码](errorcode-nfc.md) - [NFC错误码](errorcode-nfc.md)
- [SE(secureElement)错误码](errorcode-se.md)
- [RPC错误码](errorcode-rpc.md) - [RPC错误码](errorcode-rpc.md)
- 系统基础能力 - 系统基础能力
- [无障碍子系统错误码](errorcode-accessibility.md) - [无障碍子系统错误码](errorcode-accessibility.md)
......
# SE错误码 # SE(secureElement)错误码
> **说明:** > **说明:**
> >
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
Native API是OpenHarmony SDK上提供的一组native开发接口与工具集合(也称为NDK),方便开发者使用C或者C++语言实现应用的关键功能。Native API只覆盖了OHOS基础的一些底层能力,如libc,图形库,窗口系统,多媒体,压缩库等,并没有完全提供类似于JS API上的完整的OHOS 平台能力。在应用中使用Native API会编译成动态库打包到应用中。 Native API是OpenHarmony SDK上提供的一组native开发接口与工具集合(也称为NDK),方便开发者使用C或者C++语言实现应用的关键功能。Native API只覆盖了OHOS基础的一些底层能力,如libc,图形库,窗口系统,多媒体,压缩库等,并没有完全提供类似于JS API上的完整的OHOS 平台能力。在应用中使用Native API会编译成动态库打包到应用中。
## 名词概念 ## 名词概念
|名词|名词解释| |名词|名词解释|
|--|--| |--|--|
|Native API|OHOS SDK里面native包提供的,面向三方应用开发的Native 接口以及相应编译脚本,编译工具链。包括C运行时基础库libc,3D图形库opengl,面向JS与C跨语言的接口Node-API等,具体内容详见下表。| |Native API|OHOS SDK里面native包提供的,面向三方应用开发的Native 接口以及相应编译脚本,编译工具链。包括C运行时基础库libc,3D图形库opengl,面向JS与C跨语言的接口Node-API等,具体内容详见下表。|
...@@ -10,6 +11,7 @@ Native API是OpenHarmony SDK上提供的一组native开发接口与工具集合 ...@@ -10,6 +11,7 @@ Native API是OpenHarmony SDK上提供的一组native开发接口与工具集合
|SDK CAPI|OHOS Native API中的C语言接口,以及工具链部分,当前OHOS的Native API里面只包含C语言接口,因此Native API与CAPI意思一样,建议交流的时候使用CAPI,防止Native API与napi缩写混用。| |SDK CAPI|OHOS Native API中的C语言接口,以及工具链部分,当前OHOS的Native API里面只包含C语言接口,因此Native API与CAPI意思一样,建议交流的时候使用CAPI,防止Native API与napi缩写混用。|
|Node-API|曾用名napi,是OHOS中提供JS与C跨语言调用的接口,是Native API接口中的一部分. 该接口在Node.js提供的Node-API基础上扩展而来,但不完全与Node.js中的Node-API完全兼容。 | |Node-API|曾用名napi,是OHOS中提供JS与C跨语言调用的接口,是Native API接口中的一部分. 该接口在Node.js提供的Node-API基础上扩展而来,但不完全与Node.js中的Node-API完全兼容。 |
|napi|Node-API的曾用名,当前Node-API头文件中的接口仍然以napi_开头,不建议使用。| |napi|Node-API的曾用名,当前Node-API头文件中的接口仍然以napi_开头,不建议使用。|
## Native API构成介绍 ## Native API构成介绍
### Native API目录结构 ### Native API目录结构
...@@ -42,14 +44,13 @@ Native API在SDK包的位置为$(SDK_ROOT)/native目录,主要有以下几个 ...@@ -42,14 +44,13 @@ Native API在SDK包的位置为$(SDK_ROOT)/native目录,主要有以下几个
|Mindspore|AI模型接口库|9| |Mindspore|AI模型接口库|9|
|包管理|包服务接口,方便查询应用包信息|8| |包管理|包服务接口,方便查询应用包信息|8|
### Native API相关资料 ### Native API相关资料
*[Native API参考手册](./native-apis/Readme-CN.md)》,介绍各个API参考手册
*[Native API中支持的标准库](../reference/native-lib/Readme-CN.md)》,介绍Native API支持的开源标准库
*[Native API开发指南](../napi/Readme-CN.md)》,结合具体的例子,场景介绍各类接口的使用
*[使用NDK编译一个Cmake C/C++工程文档](../quick-start/howto-migrate-cmake-with-ohosndk.md)》,介绍如何使用使用Native API开发一个Cmake工程
*[Node-API在应用工程中的使用指导](../napi/napi-guidelines.md)》, 如何使用Node-API接口
* [Native API参考手册](native-apis/Readme-CN.md),介绍各个API参考手册
* [Native API中支持的标准库](../reference/native-lib/Readme-CN.md),介绍Native API支持的开源标准库
* [Native API开发指南](../napi/Readme-CN.md),结合具体的例子,场景介绍各类接口的使用
* [使用NDK编译一个Cmake C/C++工程文档](../faqs/howto-migrate-cmake-with-ohosndk.md),介绍如何使用使用Native API开发一个Cmake工程
* [Node-API在应用工程中的使用指导](../napi/napi-guidelines.md), 如何使用Node-API接口
## 使用建议 ## 使用建议
...@@ -68,5 +69,5 @@ Native API在SDK包的位置为$(SDK_ROOT)/native目录,主要有以下几个 ...@@ -68,5 +69,5 @@ Native API在SDK包的位置为$(SDK_ROOT)/native目录,主要有以下几个
## 维测能力 ## 维测能力
1. OHOS官方提供lldb remote方式代码调试,详细参看[lldb参考手册](https://gitee.com/openharmony/third_party_llvm-project/blob/master/lldb/README_zh.md) 1. OHOS官方提供lldb remote方式代码调试,详细参看[lldb参考手册](https://gitee.com/openharmony/third_party_llvm-project/blob/master/lldb/README_zh.md)
2. musl库的log维测能力,请参看[libc库](./native-lib/third_party_libc/musl.md)维测章节 2. musl库的log维测能力,请参看[libc库](./native-lib/third_party_libc/musl.md)维测章节
# Native API标准库 # Native API标准库
- [libc标准库](third_party_libc/musl.md) - [libc标准库](third_party_libc/musl.md)
- [c++标准库](third_party_libc/cpp.md) - [c++标准库](third_party_libc/cpp.md)
- [Node-API](third_party_napi/napi.md) - [Node-API](third_party_napi/napi.md)
...@@ -12,4 +13,4 @@ ...@@ -12,4 +13,4 @@
- [libc中由于权限管控可能调用失败的符号列表](third_party_libc/musl-permission-control-symbol.md) - [libc中由于权限管控可能调用失败的符号列表](third_party_libc/musl-permission-control-symbol.md)
- [Native api中导出的EGL符号列表](third_party_opengl/egl-symbol.md) - [Native api中导出的EGL符号列表](third_party_opengl/egl-symbol.md)
- [Native api中导出的OpenGL ES 3.0符号列表](third_party_opengl/openglesv3-symbol.md) - [Native api中导出的OpenGL ES 3.0符号列表](third_party_opengl/openglesv3-symbol.md)
- [Native api中支持的OpenSL ES接口列表](third_party_opensles/opensles.md) - [Native api中支持的OpenSL ES接口列表](third_party_opensles/opensles.md)
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册