Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
490ef683
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
490ef683
编写于
6月 08, 2023
作者:
O
openharmony_ci
提交者:
Gitee
6月 08, 2023
浏览文件
操作
浏览文件
下载
差异文件
!19346 【master】Rawfile资料优化
Merge pull request !19346 from fyz1019/master
上级
78d0fea1
638e5389
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
118 addition
and
118 deletion
+118
-118
zh-cn/application-dev/napi/figures/rawfile1.png
zh-cn/application-dev/napi/figures/rawfile1.png
+0
-0
zh-cn/application-dev/napi/rawfile-guidelines.md
zh-cn/application-dev/napi/rawfile-guidelines.md
+88
-85
zh-cn/application-dev/reference/native-apis/rawfile.md
zh-cn/application-dev/reference/native-apis/rawfile.md
+30
-33
未找到文件。
zh-cn/application-dev/napi/figures/rawfile1.png
查看替换文件 @
78d0fea1
浏览文件 @
490ef683
100.7 KB
|
W:
|
H:
34.0 KB
|
W:
|
H:
2-up
Swipe
Onion skin
zh-cn/application-dev/napi/rawfile-guidelines.md
浏览文件 @
490ef683
...
...
@@ -23,6 +23,92 @@
| bool OH_ResourceManager_ReleaseRawFileDescriptor(const RawFileDescriptor &descriptor) | 释放rawfile的fd。 |
| void OH_ResourceManager_ReleaseNativeResourceManager(NativeResourceManager
*
resMgr) | 释放native resource manager相关资源。 |
## 函数介绍
1.
根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawDir接口获取RawDir实例。
```
c++
RawDir
*
rawDir
=
OH_ResourceManager_OpenRawDir
(
nativeResourceManager
,
path
.
c_str
());
```
2.
根据RawDir实例,使用OH_ResourceManager_GetRawFileCount接口获取对应目录下的rawfile文件总数 。
```
c++
int
count
=
OH_ResourceManager_GetRawFileCount
(
rawDir
);
```
3.
根据RawDir实例,使用OH_ResourceManager_GetRawFileName接口获取目录下对应index的rawfile文件名。
```
c++
for
(
int
index
=
0
;
index
<
count
;
index
++
)
{
std
::
string
fileName
=
OH_ResourceManager_GetRawFileName
(
rawDir
,
index
);
}
```
4.
根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawFile接口获取指定文件名的RawFile实例
```
c++
RawFile
*
rawFile
=
OH_ResourceManager_OpenRawFile
(
nativeResourceManager
,
fileName
.
c_str
());
```
5.
根据RawFile实例,使用OH_ResourceManager_GetRawFileSize接口获取对应rawfile文件大小。
```
c++
long
rawFileSize
=
OH_ResourceManager_GetRawFileSize
(
rawFile
);
```
6.
根据RawFile实例,使用OH_ResourceManager_SeekRawFile接口指定rawfile偏移量。
```
c++
int
position
=
OH_ResourceManager_SeekRawFile
(
rawFile
,
10
,
0
);
int
position
=
OH_ResourceManager_SeekRawFile
(
rawFile
,
0
,
1
);
int
position
=
OH_ResourceManager_SeekRawFile
(
rawFile
,
-
10
,
2
);
```
7.
根据RawFile实例,使用OH_ResourceManager_GetRawFileOffset接口获取rawfile偏移量。
```
c++
long
rawFileOffset
=
OH_ResourceManager_GetRawFileOffset
(
rawFile
)
```
8.
根据RawFile实例,使用OH_ResourceManager_ReadRawFile接口读取rawfile文件内容。
```
c++
std
::
unique_ptr
<
char
[]
>
mediaData
=
std
::
make_unique
<
char
[]
>
(
rawFileSize
);
long
rawFileOffset
=
OH_ResourceManager_ReadRawFile
(
rawFile
,
mediaData
.
get
(),
rawFileSize
);
```
9.
根据RawFile实例,使用OH_ResourceManager_CloseRawFile接口释放rawfile文件相关资源。
```
c++
OH_ResourceManager_CloseRawFile
(
rawFile
);
```
10.
根据RawDir实例,使用OH_ResourceManager_CloseRawDir接口释放rawfile目录相关资源。
```
c++
OH_ResourceManager_CloseRawDir
(
rawDir
);
```
11.
根据RawFile实例,使用OH_ResourceManager_GetRawFileDescriptor接口获取rawfile的RawFileDescriptor。
```
c++
RawFileDescriptor
descriptor
;
bool
result
=
OH_ResourceManager_GetRawFileDescriptor
(
rawFile
,
descriptor
);
```
12.
根据RawFileDescriptor实例,使用OH_ResourceManager_ReleaseRawFileDescriptor接口关闭rawfile的fd。
```
c++
OH_ResourceManager_ReleaseRawFileDescriptor
(
descriptor
);
```
13.
根据NativeResourceManager实例,使用OH_ResourceManager_ReleaseNativeResourceManager接口释放native resource manager。
```
c++
OH_ResourceManager_ReleaseNativeResourceManager
(
nativeResourceManager
);
```
## 开发步骤
以Js侧获取rawfile文件列表、rawfile文件内容、rawfile描述符{fd, offset, length}三种调用方式为例。
...
...
@@ -293,89 +379,6 @@
}
```
## 函数介绍
1.
根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawDir接口获取RawDir实例。
```
c++
RawDir
*
rawDir
=
OH_ResourceManager_OpenRawDir
(
nativeResourceManager
,
path
.
c_str
());
```
2.
根据RawDir实例,使用OH_ResourceManager_GetRawFileCount接口获取对应目录下的rawfile文件总数 。
```
c++
int
count
=
OH_ResourceManager_GetRawFileCount
(
rawDir
);
```
3.
根据RawDir实例,使用OH_ResourceManager_GetRawFileName接口获取目录下对应index的rawfile文件名。
```
c++
for
(
int
index
=
0
;
index
<
count
;
index
++
)
{
std
::
string
fileName
=
OH_ResourceManager_GetRawFileName
(
rawDir
,
index
);
}
```
4.
根据NativeResourceManager实例,使用OH_ResourceManager_OpenRawFile接口获取指定文件名的RawFile实例
```
c++
RawFile
*
rawFile
=
OH_ResourceManager_OpenRawFile
(
nativeResourceManager
,
fileName
.
c_str
());
```
5.
根据RawFile实例,使用OH_ResourceManager_GetRawFileSize接口获取对应rawfile文件大小。
```
c++
long
rawFileSize
=
OH_ResourceManager_GetRawFileSize
(
rawFile
);
```
6.
根据RawFile实例,使用OH_ResourceManager_SeekRawFile接口指定rawfile偏移量。
```
c++
int
position
=
OH_ResourceManager_SeekRawFile
(
rawFile
,
10
,
0
);
int
position
=
OH_ResourceManager_SeekRawFile
(
rawFile
,
0
,
1
);
int
position
=
OH_ResourceManager_SeekRawFile
(
rawFile
,
-
10
,
2
);
```
7.
根据RawFile实例,使用OH_ResourceManager_GetRawFileOffset接口获取rawfile偏移量。
```
c++
long
rawFileOffset
=
OH_ResourceManager_GetRawFileOffset
(
rawFile
)
```
8.
根据RawFile实例,使用OH_ResourceManager_ReadRawFile接口读取rawfile文件内容。
```
c++
std
::
unique_ptr
<
char
[]
>
mediaData
=
std
::
make_unique
<
char
[]
>
(
rawFileSize
);
long
rawFileOffset
=
OH_ResourceManager_ReadRawFile
(
rawFile
,
mediaData
.
get
(),
rawFileSize
);
```
9.
根据RawFile实例,使用OH_ResourceManager_CloseRawFile接口释放rawfile文件相关资源。
```
c++
OH_ResourceManager_CloseRawFile
(
rawFile
);
```
10.
根据RawDir实例,使用OH_ResourceManager_CloseRawDir接口释放rawfile目录相关资源。
```
c++
OH_ResourceManager_CloseRawDir
(
rawDir
);
```
11.
根据RawFile实例,使用OH_ResourceManager_GetRawFileDescriptor接口获取rawfile的RawFileDescriptor。
```
c++
RawFileDescriptor
descriptor
;
bool
result
=
OH_ResourceManager_GetRawFileDescriptor
(
rawFile
,
descriptor
);
```
12.
根据RawFileDescriptor实例,使用OH_ResourceManager_ReleaseRawFileDescriptor接口关闭rawfile的fd。
```
c++
OH_ResourceManager_ReleaseRawFileDescriptor
(
descriptor
);
```
13.
根据NativeResourceManager实例,使用OH_ResourceManager_ReleaseNativeResourceManager接口释放native resource manager。
```
c++
OH_ResourceManager_ReleaseNativeResourceManager
(
nativeResourceManager
);
```
## 相关实例
-
[
`NdkRawfile`:获取Rawfile资源
](
https://gitee.com/openharmony/applications_app_samples/tree/master/code/BasicFeature/Native/NdkRawfile
)
zh-cn/application-dev/reference/native-apis/rawfile.md
浏览文件 @
490ef683
# Rawfile
提供操作rawfile目录和rawfile文件的功能。
功能包括遍历、打开、搜索、读取和关闭rawfile。
提供操作rawfile目录和rawfile文件的功能,包括打开、遍历、搜索、读取和关闭rawfile。
**起始版本:**
...
...
@@ -50,12 +47,12 @@
|
[
OH_ResourceManager_CloseRawDir
](
#oh_resourcemanager_closerawdir
)
(
[RawDir](#rawdir
)
\*
rawDir) | 关闭已打开的
[
RawDir
](
#rawdir
)
并释放所有相关联资源。 |
|
[
OH_ResourceManager_ReadRawFile
](
#oh_resourcemanager_readrawfile
)
(
const
[
RawFile
]
(#rawfile)
\*
rawFile, void
\*
buf, size_t length) | 读取rawfile。 |
|
[
OH_ResourceManager_SeekRawFile
](
#oh_resourcemanager_seekrawfile
)
(
const
[
RawFile
]
(#rawfile)
\*
rawFile, long offset, int whence) | 基于指定的offset,在rawfile文件内搜索读写数据的位置。 |
|
[
OH_ResourceManager_GetRawFileSize
](
#oh_resourcemanager_getrawfilesize
)
(
[RawFile](#rawfile
)
\*
rawFile) | 获取rawfile
长度,单位为int32_t
。 |
|
[
OH_ResourceManager_GetRawFileSize
](
#oh_resourcemanager_getrawfilesize
)
(
[RawFile](#rawfile
)
\*
rawFile) | 获取rawfile
文件大小
。 |
|
[
OH_ResourceManager_CloseRawFile
](
#oh_resourcemanager_closerawfile
)
(
[RawFile](#rawfile
)
\*
rawFile) | 关闭已打开的
[
RawFile
](
#rawfile
)
以及释放所有相关联资源。 |
|
[
OH_ResourceManager_GetRawFileOffset
](
#oh_resourcemanager_getrawfileoffset
)
(
const
[
RawFile
]
(#rawfile)
\*
rawFile) | 获取rawfile当前的offset
,单位为int32_t
。 |
|
[
OH_ResourceManager_GetRawFileDescriptor
](
#oh_resourcemanager_getrawfiledescriptor
)
(
const
[
RawFile
]
(#rawfile)
\*
rawFile,
[
RawFileDescriptor
](
_raw_file_descriptor.md
)
&
descriptor) | 基于offset
(单位为int32_t)
和文件长度打开rawfile,并获取rawfile文件描述符。 |
|
[
OH_ResourceManager_GetRawFileOffset
](
#oh_resourcemanager_getrawfileoffset
)
(
const
[
RawFile
]
(#rawfile)
\*
rawFile) | 获取rawfile当前的offset。 |
|
[
OH_ResourceManager_GetRawFileDescriptor
](
#oh_resourcemanager_getrawfiledescriptor
)
(
const
[
RawFile
]
(#rawfile)
\*
rawFile,
[
RawFileDescriptor
](
_raw_file_descriptor.md
)
&
descriptor) | 基于offset和文件长度打开rawfile,并获取rawfile文件描述符。 |
|
[
OH_ResourceManager_ReleaseRawFileDescriptor
](
#oh_resourcemanager_releaserawfiledescriptor
)
(
const
[
RawFileDescriptor
]
(_raw_file_descriptor.md)
&
descriptor) | 关闭rawfile文件描述符。 |
|
[
OH_ResourceManager_InitNativeResourceManager
](
#oh_resourcemanager_initnativeresourcemanager
)
(
napi_env
env, napi_value jsResMgr) | 基于JavaScript resource manager获取native resource manager。 |
|
[
OH_ResourceManager_InitNativeResourceManager
](
#oh_resourcemanager_initnativeresourcemanager
)
(
napi_env
env, napi_value jsResMgr) | 基于JavaScript resource manager获取native resource manager。
通过此对象完成rawfile相关功能。
|
|
[
OH_ResourceManager_ReleaseNativeResourceManager
](
#oh_resourcemanager_releasenativeresourcemanager
)
(
[NativeResourceManager](#nativeresourcemanager
)
\*
resMgr) | 释放native resource manager。 |
|
[
OH_ResourceManager_OpenRawDir
](
#oh_resourcemanager_openrawdir
)
(
const
[
NativeResourceManager
]
(#nativeresourcemanager)
\*
mgr, const char
\*
dirName) | 打开rawfile目录。 |
|
[
OH_ResourceManager_OpenRawFile
](
#oh_resourcemanager_openrawfile
)
(
const
[
NativeResourceManager
]
(#nativeresourcemanager)
\*
mgr, const char
\*
fileName) | 打开rawfile文件。 |
...
...
@@ -64,10 +61,10 @@
## 详细描述
## 类型定义说明
##
#
类型定义说明
### NativeResourceManager
###
#
NativeResourceManager
```
...
...
@@ -78,14 +75,14 @@ typedef struct NativeResourceManager NativeResourceManager
代表resource manager。
此类封装了JavaScript resource manager的native实现
**ResourceManager**
指针可以通过调用
[
OH_ResourceManager_InitNativeResourceManager
](
#oh_resourcemanager_initnativeresourcemanager
)
方法获取
此类封装了JavaScript resource manager的native实现
,
**ResourceManager**
指针可以通过调用
[
OH_ResourceManager_InitNativeResourceManager
](
#oh_resourcemanager_initnativeresourcemanager
)
方法获取。
**起始版本:**
8
### RawDir
###
#
RawDir
```
...
...
@@ -101,7 +98,7 @@ typedef struct RawDir RawDir
8
### RawFile
###
#
RawFile
```
...
...
@@ -110,17 +107,17 @@ typedef struct RawFile RawFile
**描述:**
提供对rawfile
的访问
功能。
提供对rawfile
文件操作的相关
功能。
**起始版本:**
8
## 函数说明
##
#
函数说明
### OH_ResourceManager_CloseRawDir()
###
#
OH_ResourceManager_CloseRawDir()
```
...
...
@@ -146,7 +143,7 @@ void OH_ResourceManager_CloseRawDir (RawDir * rawDir)
8
### OH_ResourceManager_CloseRawFile()
###
#
OH_ResourceManager_CloseRawFile()
```
...
...
@@ -172,7 +169,7 @@ void OH_ResourceManager_CloseRawFile (RawFile * rawFile)
8
### OH_ResourceManager_GetRawFileCount()
###
#
OH_ResourceManager_GetRawFileCount()
```
...
...
@@ -200,7 +197,7 @@ int OH_ResourceManager_GetRawFileCount (RawDir * rawDir)
8
### OH_ResourceManager_GetRawFileDescriptor()
###
#
OH_ResourceManager_GetRawFileDescriptor()
```
...
...
@@ -209,7 +206,7 @@ bool OH_ResourceManager_GetRawFileDescriptor (const RawFile * rawFile, RawFileDe
**描述:**
基于offset
(单位为int32_t)
和文件长度打开rawfile,并获取rawfile文件描述符。
基于offset和文件长度打开rawfile,并获取rawfile文件描述符。
打开的文件描述符被用于读取rawfile。
...
...
@@ -229,7 +226,7 @@ bool OH_ResourceManager_GetRawFileDescriptor (const RawFile * rawFile, RawFileDe
8
### OH_ResourceManager_GetRawFileName()
###
#
OH_ResourceManager_GetRawFileName()
```
...
...
@@ -262,7 +259,7 @@ const char* OH_ResourceManager_GetRawFileName (RawDir * rawDir, int index )
8
### OH_ResourceManager_GetRawFileOffset()
###
#
OH_ResourceManager_GetRawFileOffset()
```
...
...
@@ -271,7 +268,7 @@ long OH_ResourceManager_GetRawFileOffset (const RawFile * rawFile)
**描述:**
获取rawfile当前的offset
,单位为int32_t
。
获取rawfile当前的offset。
rawfile当前的offset。
...
...
@@ -290,7 +287,7 @@ rawfile当前的offset。
8
### OH_ResourceManager_GetRawFileSize()
###
#
OH_ResourceManager_GetRawFileSize()
```
...
...
@@ -299,7 +296,7 @@ long OH_ResourceManager_GetRawFileSize (RawFile * rawFile)
**描述:**
获取rawfile
长度,单位为int32_t
。
获取rawfile
文件大小
。
**参数:**
...
...
@@ -309,14 +306,14 @@ long OH_ResourceManager_GetRawFileSize (RawFile * rawFile)
**返回:**
Returns rawfile整体
长度
。
Returns rawfile整体
文件大小
。
**起始版本:**
8
### OH_ResourceManager_InitNativeResourceManager()
###
#
OH_ResourceManager_InitNativeResourceManager()
```
...
...
@@ -345,7 +342,7 @@ NativeResourceManager* OH_ResourceManager_InitNativeResourceManager (napi_env en
8
### OH_ResourceManager_OpenRawDir()
###
#
OH_ResourceManager_OpenRawDir()
```
...
...
@@ -380,7 +377,7 @@ RawDir* OH_ResourceManager_OpenRawDir (const NativeResourceManager * mgr, const
8
### OH_ResourceManager_OpenRawFile()
###
#
OH_ResourceManager_OpenRawFile()
```
...
...
@@ -415,7 +412,7 @@ RawFile* OH_ResourceManager_OpenRawFile (const NativeResourceManager * mgr, cons
8
### OH_ResourceManager_ReadRawFile()
###
#
OH_ResourceManager_ReadRawFile()
```
...
...
@@ -445,7 +442,7 @@ int OH_ResourceManager_ReadRawFile (const RawFile * rawFile, void * buf, size_t
8
### OH_ResourceManager_ReleaseNativeResourceManager()
###
#
OH_ResourceManager_ReleaseNativeResourceManager()
```
...
...
@@ -467,7 +464,7 @@ void OH_ResourceManager_ReleaseNativeResourceManager (NativeResourceManager * re
8
### OH_ResourceManager_ReleaseRawFileDescriptor()
###
#
OH_ResourceManager_ReleaseRawFileDescriptor()
```
...
...
@@ -495,7 +492,7 @@ bool OH_ResourceManager_ReleaseRawFileDescriptor (const RawFileDescriptor & desc
8
### OH_ResourceManager_SeekRawFile()
###
#
OH_ResourceManager_SeekRawFile()
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录