Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
d92b8ee8
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看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
d92b8ee8
编写于
3月 16, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 16, 2022
浏览文件
操作
浏览文件
下载
差异文件
!2086 更新Ability框架PA文档
Merge pull request !2086 from 刘宝/master
上级
712191f6
0ec1748e
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
147 addition
and
13 deletion
+147
-13
zh-cn/application-dev/ability/fa-dataability.md
zh-cn/application-dev/ability/fa-dataability.md
+131
-12
zh-cn/application-dev/ability/fa-serviceability.md
zh-cn/application-dev/ability/fa-serviceability.md
+16
-1
未找到文件。
zh-cn/application-dev/ability/fa-dataability.md
浏览文件 @
d92b8ee8
# DataAbility开发指导
## Data Ability基本概念
通过Ability派生出的DataAbility类(以下简称“Data”),有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。
基于Data模板的Ability(以下简称“Data”),有助于应用管理其自身和其他应用存储数据的访问,并提供与其他应用共享数据的方法。Data既可用于同设备不同应用的数据共享,也支持跨设备不同应用的数据共享。
Data提供方可以自定义数据的增、删、改、查,以及文件打开等功能,并对外提供这些接口。
## 创建Data
### 1. Data子系统实现
1.
基于Native的Data子系统,需要继承Ability类,成为Ability的派生类来实现功能
2.
需要实现父类中Insert,Query,Update,Delete接口的业务内容.保证能够满足数据库存储业务的基本需求.BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑,依赖Insert,Query,Update,Delete接口逻辑,来实现数据的批量处理.
3.
使用REGISTER_AA宏将Data的类名注册到系统服务中
1.
需要实现Data中Insert,Query,Update,Delete接口的业务内容.保证能够满足数据库存储业务的基本需求.BatchInsert与ExecuteBatch接口已经在系统中实现遍历逻辑,依赖Insert,Query,Update,Delete接口逻辑,来实现数据的批量处理.
2.
Data中相关生命周期说明如下:
-
onInitialized
在Ability初始化调用,通过此回调方法执行rdb等初始化操作。
-
update
更新数据库中的数据。
-
query
查询数据库中的数据。
-
delete
删除一条或多条数据。
-
normalizeUri
对uri进行规范化。一个规范化的uri可以支持跨设备使用、持久化、备份和还原等,当上下文改变时仍然可以引用到相同的数据项。
-
batchInsert
向数据库中插入多条数据。
-
denormalizeUri
将一个由normalizeUri生产的规范化uri转换成非规范化的uri。
-
insert
向数据中插入一条数据。
-
openFile
打开一个文件。
-
getFileTypes
获取文件的MIME类型。
-
getType
获取uri指定数据相匹配的MIME类型。
-
executeBatch
批量操作数据库中的数据。
-
call
自定义方法。
创建Data的代码示例如下:
```
javascript
import
dataAbility
from
'
@ohos.data.dataability
'
import
dataRdb
from
'
@ohos.data.rdb
'
const
TABLE_NAME
=
'
book
'
const
STORE_CONFIG
=
{
name
:
'
book.db
'
,
encryptKey
:
new
Uint8Array
([])
}
const
SQL_CREATE_TABLE
=
'
CREATE TABLE IF NOT EXISTS book(id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER, introduction TEXT NOT NULL)
'
let
rdbStore
=
undefined
export
default
{
onInitialized
(
abilityInfo
)
{
console
.
info
(
'
DataAbility onInitialized, abilityInfo:
'
+
abilityInfo
.
bundleName
)
dataRdb
.
getRdbStore
(
STORE_CONFIG
,
1
,
(
err
,
store
)
=>
{
console
.
info
(
'
DataAbility getRdbStore callback
'
)
store
.
executeSql
(
SQL_CREATE_TABLE
,
[])
rdbStore
=
store
});
},
insert
(
uri
,
valueBucket
,
callback
)
{
console
.
info
(
'
DataAbility insert start
'
)
rdbStore
.
insert
(
TABLE_NAME
,
valueBucket
,
callback
)
},
batchInsert
(
uri
,
valueBuckets
,
callback
)
{
console
.
info
(
'
DataAbility batch insert start
'
)
for
(
let
i
=
0
;
i
<
valueBuckets
.
length
;
i
++
)
{
console
.
info
(
'
DataAbility batch insert i=
'
+
i
)
if
(
i
<
valueBuckets
.
length
-
1
)
{
rdbStore
.
insert
(
TABLE_NAME
,
valueBuckets
[
i
],
(
num
:
number
)
=>
{
console
.
info
(
'
DataAbility batch insert ret=
'
+
num
)
})
}
else
{
rdbStore
.
insert
(
TABLE_NAME
,
valueBuckets
[
i
],
callback
)
}
}
},
query
(
uri
,
columns
,
predicates
,
callback
)
{
console
.
info
(
'
DataAbility query start
'
)
let
rdbPredicates
=
dataAbility
.
createRdbPredicates
(
TABLE_NAME
,
predicates
)
rdbStore
.
query
(
rdbPredicates
,
columns
,
callback
)
},
update
(
uri
,
valueBucket
,
predicates
,
callback
)
{
console
.
info
(
'
DataAbilityupdate start
'
)
let
rdbPredicates
=
dataAbility
.
createRdbPredicates
(
TABLE_NAME
,
predicates
)
rdbStore
.
update
(
valueBucket
,
rdbPredicates
,
callback
)
},
delete
(
uri
,
predicates
,
callback
)
{
console
.
info
(
'
DataAbilitydelete start
'
)
let
rdbPredicates
=
dataAbility
.
createRdbPredicates
(
TABLE_NAME
,
predicates
)
rdbStore
.
delete
(
rdbPredicates
,
callback
)
}
};
```
### 2. 子系统配置
...
...
@@ -17,22 +127,20 @@
| "name" | Ability名子,对应Ability派生的Data类名 |
| "type" | Ability类型,Data对应的Ability类型未"data" |
| "uri" | 通信使用的URI |
| "srcLanguage" | Data实现语言,c++实现的Data填写c++, js实现的Data填写js |
| "visible" | 对其他应用是否可见, 设置为true时, Data才能与其他应用进行通信传输数据 |
**config.json配置样例**
```
json
"abilities"
:[{
"srcPath"
:
"DataAbility"
,
"name"
:
".DataAbility"
,
"icon"
:
"$media:snowball"
,
"label"
:
"Data Firs Ability"
,
"launchType"
:
"standard"
,
"orientation"
:
"unspecified"
,
"icon"
:
"$media:icon"
,
"srcLanguage"
:
"ets"
,
"description"
:
"$string:description_dataability"
,
"type"
:
"data"
,
"uri"
:
"dataability://com.ix.DataAbility"
,
"srcLanguage"
:
"c++"
,
"visible"
:
true
"visible"
:
true
,
"uri"
:
"dataability://ohos.samples.etsdataability.DataAbility"
}]
```
...
...
@@ -184,3 +292,14 @@ var dataexecuteBatch = await DAHelper.executeBatch(
);
```
## 开发实例
针对dataAbility开发,有以下示例工程可供参考:
-
[
eTSDataAbility
](
https://gitee.com/openharmony/app_samples/tree/master/ability/eTSDataAbility
)
本示例eTSDataAbility中:
在DataAbility目录中的data.ts文件创建一个Data实例。
在MainAbility目录中封装了访问Data的流程。
zh-cn/application-dev/ability/fa-serviceability.md
浏览文件 @
d92b8ee8
# ServiceAbility开发指导
## Service Ability基本概念
基于Service模板的Ability(以下简称“Service”)主要用于后台运行任务(如执行音乐播放、文件下载等),但不提供用户交互界面。Service可由其他应用或Ability启动,即使用户切换到其他应用,Service仍将在后台继续运行。
## 创建Service<a name="section17436202895812"></a>
1.
Service也是一种Ability,Ability为Service提供了以下生命周期方法,开发者可以重写这些方法,来添加其他Ability请求与Service Ability交互时的处理方法。
...
...
@@ -264,3 +267,15 @@ export default {
},
}
```
## 开发实例
针对serviceAbility开发,有以下示例工程可供参考:
-
[
eTSServiceAbility
](
https://gitee.com/openharmony/app_samples/tree/master/ability/eTSServiceAbility
)
本示例eTSServiceAbility中:
在ServiceAbility目录中的service.ts文件创建一个本地Service。
在MainAbility目录中封装了启动、连接本地Services的流程。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录