• Home
Name Date Size #Lines LOC

..--

AppScope/06-May-2025-3836

entry/06-May-2025-3,5223,352

hvigor/06-May-2025-1919

screenshots/06-May-2025-

.gitignoreD06-May-2025133 1212

README_zh.mdD06-May-202513.6 KiB205123

build-profile.json5D06-May-20251.2 KiB5151

hvigorfile.tsD06-May-2025843 225

oh-package.json5D06-May-2025832 2524

ohosTest.mdD06-May-20253.5 KiB1311

README_zh.md

1# 基础能力增强
2
3### 介绍
4
5本示例使用 [AppManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-appManager.md) ,[dataUriUtils](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-ability-dataUriUtils.md),[WantAgent](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-wantAgent.md),[ApplicationContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-inner-application-applicationContext.md),[errorManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-errorManager.md),[UIAbilityContext](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-inner-application-uiAbilityContext.md)中的接口进行实现。
6
7### 效果预览
8
9|                      主页面                      |                  appManager开发示例                   |                  errorManager开发示例                   |                  UIAbilityContext开发示例                   |
10| :----------------------------------------------: | :---------------------------------------------------: | :-----------------------------------------------------: | :---------------------------------------------------------: |
11| <img src="screenshots/index.jpeg" width="270" /> | <img src="screenshots/appManager.jpeg" width="270" /> | <img src="screenshots/errorManager.jpeg" width="270" /> | <img src="screenshots/UIabilityContext.jpeg" width="270" /> |
12
13### 使用说明
14
15AppManager对应接口
16
171.点击主页面**appManager开发示例**按钮,跳转到'appManager开发示例'界面;
18
192.点击**isRunningInStabilityTest callback**按钮,弹出'isRunningInStabilityTest(callback) success...'信息;
20
213.点击**isRunningInStabilityTest promise**按钮,弹出提示'isRunningInStabilityTest(promise) success...'信息;
22
234.点击**isRamConstrainedDevice callback**按钮,弹出提示'isRamConstrainedDevice(callback) success...'信息;
24
255.点击**isRamConstrainedDevice promise**按钮,弹出提示'isRamConstrainedDevice(promise) success...'信息;
26
276.点击**getAppMemorySize callback**按钮,弹出提示'getAppMemorySize(callback) success...'信息;
28
297.点击**getAppMemorySize promise**按钮,弹出提示'getAppMemorySize(promise) success...'信息;
30
318.点击**getRunningProcessInformation callback**按钮,弹出提示'getRunningProcessInformation(callback) success...'信息;
32
339.点击**getRunningProcessInformation promise**按钮,弹出提示'getRunningProcessInformation(promise) success...'信息;
34
35
36
37dataUriUtils对应接口
38
391.点击主页面**dataUriUtils开发示例**按钮,跳转到'dataUriUtils开发示例'界面;
40
412.点击**getId**按钮,弹出提示'dataUriUtils.getId() called...'信息;
42
433.点击**attachId**按钮,弹出提示'dataUriUtils.attachd() called...'信息;
44
454.点击**deleteId**按钮,弹出提示'dataUriUtils.deleteId() called...'信息;
46
475.点击**updateId**按钮,弹出提示'dataUriUtils.updateId() called...'信息;
48
49
50
51WantAgent对应接口
52
531.点击主页面**WantAgent开发示例**按钮,跳转到'WantAgent开发示例'界面;
54
552.点击**getBundleName callback**按钮,弹出提示'getBundleName(callback) success...'信息;
56
573.点击**getBundleName promise**按钮,弹出提示'getBundleName(promise) success...'信息;
58
594.点击**getUid callback**按钮,弹出提示'getUid(callback) success...'信息;
60
615.点击**getUid promise**按钮,弹出提示'getUid(promise) success...'信息;
62
636.点击**cancel callback**按钮,弹出提示'cancel(callback) success'信息;
64
657.点击**cancel promise**按钮,弹出提示'cancel(promise) success'信息;
66
678.点击**equal callback**按钮,弹出提示'equal(callback) success...'信息;
68
699.点击**equal promise**按钮,弹出提示'equal(promise) success...'信息;
70
7110.点击**getOperationType callback**按钮,弹出提示'getOperationType(callback) success...'信息;
72
7311.点击**getOperationType promise**按钮,弹出提示'getOperationType(promise) success...'信息;
74
7512.点击**trigger**按钮,弹出提示'trigger success...'信息;
76
77
78
79ApplicationContext对应接口
80
811.点击主页面**ApplicationContext开发示例**按钮,跳转到'ApplicationContext开发示例'界面;
82
832.点击**setFont**按钮,弹出提示'setFont successfully'信息;
84
853.点击**getRunningProcessInformation promise**按钮,弹出提示'getRunningProcessInformation promise successfully...'信息;
86
874.点击**getRunningProcessInformation callback**按钮,弹出提示'getRunningProcessInformation callback successfully...'信息;
88
895.点击**getCurrentAppCloneIndex**按钮,弹出提示'getCurrentAppCloneIndex  successfully...'信息;
90
91
92
93errorManager对应接口
94
951.点击主页面**errorManager开发示例**按钮,跳转到'errorManager开发示例'界面;
96
972.点击**注册LoopObserver**按钮,弹出提示'loopObserver registered successfully...'信息;
98
993.点击**注册UnhandledRejectionObserver**按钮,弹出提示'unhandledRejection registered successfully'信息,列表中增加**模拟UnhandledRejection**按钮,并且原**注册UnhandledRejectionObserver**按钮变为**注销UnhandledRejectionObserver**按钮
100
1014.点击**模拟UnhandledRejection**按钮,弹出提示'UnhandledRejectionObserver  reason...'信息;
102
1035.点击**注销UnhandledRejection**按钮,弹出提示'unhandledRejection unregistered successfully'信息,**注销UnhandledRejectionObserver**按钮变回**注册UnhandledRejectionObserver**按钮,列表中**模拟UnhandledRejection**按钮消失;
104
105
106
107UIAbilityContext对应接口
108
1091.点击主页面**UIAbilityContext开发示例**按钮,启动新的Ability显示'UIAbilityContext开发示例'界面;
110
1112.点击**moveAbilityToBackground**按钮,将启动的Ability移动到后台,页面显示为主页面,触发AbilityLifecycleCallback中的生命周期;
112
1133.再次点击主页面**UIAbilityContext开发示例**按钮,启动新的Ability显示'UIAbilityContext开发示例'界面,点击**terminateSelf**按钮,回到主页面;
114
115### 工程目录
116
117```
118entry/src/main/ets/
119|---abilitylifecyclecallback
120|   |---AbilityLifecycleCallback.ets        //AbilityLifecycleCallback生命周期
121|---abilitypages
122|   |---ApplicationContext.ets              //ApplicationContext中对应接口
123|   |---AppManager.ets                      //AppManager中对应接口
124|   |---DataUriUtils.ets                    //DataUriUtils中对应接口
125|   |---ErrorManager.ets                    //ErrorManager中对应接口
126|   |---UIAbilityContext.ets                //UIAbilityContext中对应接口
127|   |---WantAgent.ets                       //WantAgent中对应接口
128|---entryability
129|   |---EntryAbility.ets					// 首页的Ability
130|---pages
131|   |---Index.ets							// 首页
132```
133
134### 具体实现
135
136* AppManager对应接口实现,源码参考[AppManager.ets](entry/src/main/ets/abilitypages/appManager.ets)
137
138  * isRunningInStabilityTest(callback)接口实现:通过调用appManager.isRunningInStabilityTest()接口,查询当前是否处于稳定性测试场景。使用callback异步回调,并将弹出Toast信息的功能;
139  * isRunningInStabilityTest(promise)接口实现:通过调用appManager.isRunningInStabilityTest()接口,查询当前是否处于稳定性测试场景。使用Promise异步回调,并将弹出Toast信息的功能;
140  * isRamConstrainedDevice(callback)接口实现:通过调用appManager.isRamConstrainedDevice()接口,查询是否为ram受限设备。使用callback异步回调,并将弹出Toast信息的功能;
141  * isRamConstrainedDevice(promise)接口实现:通过调用appManager.isRamConstrainedDevice()接口,查询是否为ram受限设备。使用Promise异步回调,并将弹出Toast信息的功能;
142  * getAppMemorySize(callback)接口实现:通过调用appManager.getAppMemorySize()接口,获取当前应用程序可以使用的内存的值。使用callback异步回调,并将弹出Toast信息的功能;
143  * getAppMemorySize(promise)接口实现:通过调用appManager.getAppMemorySize()接口,获取当前应用程序可以使用的内存的值。使用Promise异步回调,并将弹出Toast信息的功能;
144  * getRunningProcessInformation(callback)接口实现:通过调用appManager.getRunningProcessInformation()接口,获取当前运行进程的有关信息。使用callback异步回调,并将弹出Toast信息的功能;
145  * getRunningProcessInformation(promise)接口实现:通过调用appManager.getRunningProcessInformation()接口,获取当前运行进程的有关信息。使用Promise异步回调,并将弹出Toast信息的功能;
146* dataUriUtils对应接口实现,源码参考[DataUriUtils.ets](entry/src/main/ets/abilitypages/DataUriUtils.ets)
147
148  * getId接口实现:通过调用dataUriUtils.getId()接口,获取指定uri路径末尾的ID的功能;
149  * attachId接口实现:通过调用dataUriUtils.attachId()接口,将ID附加到uri的路径末尾的功能;
150  * deleteId接口实现:通过调用dataUriUtils.deleteId()接口,删除指定uri路径末尾的ID的功能;
151  * updateId接口实现:通过调用dataUriUtils.updateId()接口,更新指定uri中的ID的功能;
152* WantAgent对应接口实现,源码参考[WantAgent.ets](entry/src/main/ets/abilitypages/WantAgent.ets)
153
154  * getBundleName(callback)接口实现:通过调用this.getBundleNameCallback()接口,获取WantAgent实例的包名;
155  * getBundleName(promise)接口实现:通过调用this.getBundleNamePromise()接口,获取WantAgent实例的包名;
156  * getUid(callback)接口实现:通过调用this.getUidCallback()接口,获取WantAgent实例的用户ID;
157  * getUid(promise)接口实现:通过调用this.getUidPromise接口,获取WantAgent实例的用户ID;
158  * cancel(callback)接口实现:通过调用this.cancelCallback()接口,取消WantAgent实例;
159  * cancel(promise)接口实现:通过调用this.cancelPromise()接口,取消WantAgent实例;
160  * equal(callback)接口实现:通过调用this.equalCallback()接口,以此来判断是否是来自同一应用的相同操作,判断两个WantAgent实例是否相等的回调方法。返回true表示两个WantAgent实例相等,false表示两个WantAgent实例不相等;
161  * equal(promise)接口实现:通过调用this.equalPromise()接口,以此来判断是否是来自同一应用的相同操作,判断两个WantAgent实例是否相等的结果。返回true表示两个WantAgent实例相等,false表示两个WantAgent实例不相等;
162  * getOperationType(callback)接口实现:通过调用this.getOperationTypeCallback()接口,获取一个WantAgent的OperationType信息;
163  * getOperationType(promise)接口实现:通过调用this.getOperationTypePromise()接口,获取一个WantAgent的OperationType信息;
164  * trigger接口实现:通过调用this.trigger()接口,主动激发WantAgent实例;
165* ApplicationContext对应接口实现,源码参考[ApplicationContext.ets](entry/src/main/ets/abilitypages/ApplicationContext.ets)
166
167  * setFont接口实现:通过调用applicationContext.setFont接口,设置应用的字体类型。仅支持主线程调用,设置字体类型,字体可以通过font.registerFont方法进行注册使用;
168  * getRunningProcessInformation(callback)接口实现:通过调用ApplicationContext.getRunningProcessInformation接口,获取有关运行进程的信息;
169  * getRunningProcessInformation(promise)接口实现:通过调用ApplicationContext.getRunningProcessInformation接口,获取有关运行进程的信息;
170  * getCurrentAppCloneIndex接口实现:通过调用ApplicationContext.getCurrentAppCloneIndex接口,获取当前应用的分身索引;
171* errorManager对应接口实现,源码参考[ErrorManager.ets](entry/src/main/ets/abilitypages/ErrorManager.ets)
172  * 注册on(loopObserver类型)接口实现:通过调用errorManager.on 接口,注册监听loopObserver,注册后可以捕获到应用主线程处理消息的具体执行时间,触发onLoopTimeOut,之后注销监听;
173  * 注册on(unhandledRejection类型)接口实现:通过调用errorManager.on接口,注册监听unhandledRejection,注册后可以捕获到当前线程中未被捕获到的promise rejection,模拟unhandledRejection类型错误,触发监听,之后注销监听;
174* UIAbilityContext对应接口实现:源码参考[UIAbilityContext.ets](entry/src/main/ets/abilitypages/UIAbilityContext.ets)
175  * moveAbilityToBackground接口实现:通过调用context.moveAbilityToBackground()接口,将处于前台的Ability移动到后台,调用context.terminateSelf(),停止Ability自身,触发AbilityLifecycleCallback中的生命周期;
176
177### 相关权限
178
179不涉及。
180
181### 依赖
182
183不涉及。
184
185### 约束与限制
186
1871.本示例仅支持标准系统上运行,支持设备:RK3568;
188
1892.本示例为Stage模型,支持API12版本SDK,版本号:5.0.0.31;
190
1913.本示例需要使用DevEco Studio NEXT Developer Beta1 (Build Version: 5.0.3.502, built on July 28, 2024)才可编译运行;
192
193### 下载
194
195```shell
196git init
197git config core.sparsecheckout true
198echo code/BasicFeature/Ability/AbilityRuntime > .git/info/sparse-checkout
199git remote add origin https://gitee.com/openharmony/applications_app_samples.git
200git pull origin master
201```
202
203
204
205