1# @system.app (应用上下文) 2 3> **说明:** 4> 5> 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 6 7 8## 导入模块 9 10 11```ts 12import app, { AppResponse } from '@system.app' 13``` 14 15## App 16 17### getInfo 18 19static getInfo(): AppResponse 20 21获取当前应用配置文件中声明的信息。在Stage模型下接口返回值为null。 22 23从API Version9开始,推荐使用[bundleManager.getBundleInfoForSelf](../apis-ability-kit/js-apis-bundleManager.md#bundlemanagergetbundleinfoforself)。 24 25**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 26 27**系统能力:** SystemCapability.ArkUI.ArkUI.Lite 28 29**返回值:** 30 31| 参数类型 | 说明 | 32| -------- | -------- | 33| [AppResponse](#appresponse) | 定义AppResponse信息。 | 34 35**示例:** 36 37```ts 38import app, { AppResponse } from '@system.app' 39export default class Info { 40 getInfo() { 41 let info:AppResponse = app.getInfo() 42 console.log(JSON.stringify(info)) 43 } 44} 45``` 46 47### terminate 48 49static terminate(): void 50 51退出当前Ability。在Stage模型下接口功能不生效。 52 53从API Version 7开始,推荐使用[`@ohos.ability.featureAbility`](../apis-ability-kit/js-apis-ability-featureAbility.md)。 54 55**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 56 57**系统能力:** SystemCapability.ArkUI.ArkUI.Lite 58 59**示例:** 60 61```ts 62import app, { AppResponse } from '@system.app' 63export default class TerM { 64 terminate() { 65 app.terminate() 66 } 67} 68``` 69### setImageCacheCount<sup>7+</sup> 70 71static setImageCacheCount(value: number): void 72 73设置内存中缓存解码后图片的数量上限,提升再次加载同源图片的加载速度。如果不设置则默认为0,不进行缓存。缓存采用内置的LRU策略,新图片加载后,如果超过缓存上限,会删除最久未再次加载的缓存。建议根据应用内存需求,设置合理缓存数量,数字过大可能导致内存使用过高。 74 75setImageCacheCount方法需要在@Entry标记的页面,[onPageShow](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#onpageshow)或[aboutToAppear](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#abouttoappear)里面设置才生效。 76 77setImageCacheCount、setImageRawDataCacheSize、和setImageFileCacheSize并不灵活,后续不继续演进,对于复杂情况,更推荐使用[ImageKnife](https://gitee.com/openharmony-tpc/ImageKnife)。 78 79**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 80 81**系统能力:** SystemCapability.ArkUI.ArkUI.Full 82 83**参数:** 84 85| 参数名 | 类型 | 必填 | 说明 | 86| -------- | -------- | -------- | -------- | 87| value | number | 是 | 内存中解码后图片的缓存数量。 | 88 89**示例:** 90 91```ts 92// xxx.ets 93import app, { AppResponse } from '@system.app' 94 95@Entry 96@Component 97struct Index { 98 onPageShow() { 99 // 设置解码后图片内存缓存上限为100张 100 app.setImageCacheCount(100) 101 console.info('Application onPageShow') 102 } 103 onDestroy() { 104 console.info('Application onDestroy') 105 } 106 107 build() { 108 Row(){ 109 // xxxxxxxxxxxxx为图片地址 110 Image('xxxxxxxxxxxxx') 111 .width(200) 112 .height(50) 113 }.width('100%') 114 } 115} 116``` 117 118### setImageRawDataCacheSize<sup>7+</sup> 119 120static setImageRawDataCacheSize(value: number): void 121 122设置内存中缓存解码前图片数据的大小上限,单位为字节,提升再次加载同源图片的加载速度。如果不设置则默认为0,不进行缓存。缓存采用内置的LRU策略,新图片加载后,如果解码前数据超过缓存上限,会删除最久未再次加载的图片数据缓存。建议根据应用内存需求,设置合理缓存上限,过大可能导致应用内存使用过高。 123 124setImageRawDataCacheSize方法需要在@Entry标记的页面,[onPageShow](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#onpageshow)或[aboutToAppear](../apis-arkui/arkui-ts/ts-custom-component-lifecycle.md#abouttoappear)里面设置才生效。 125 126**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 127 128**系统能力:** SystemCapability.ArkUI.ArkUI.Full 129 130**参数:** 131 132| 参数名 | 类型 | 必填 | 说明 | 133| -------- | -------- | -------- | -------- | 134| value | number | 是 | 内存中解码前图片数据的缓存大小,单位为字节。 | 135 136**示例:** 137 138```ts 139// xxx.ets 140import app, { AppResponse } from '@system.app' 141 142@Entry 143@Component 144struct Index { 145 onPageShow() { 146 // 设置解码前图片数据内存缓存上限为100MB (100MB=100*1024*1024B=104857600B) 147 app.setImageRawDataCacheSize(104857600) 148 console.info('Application onPageShow') 149 } 150 onDestroy() { 151 console.info('Application onDestroy') 152 } 153 154 build() { 155 Row(){ 156 // xxxxxxxxxxxxx为图片地址 157 Image('xxxxxxxxxxxxx') 158 .width(200) 159 .height(50) 160 }.width('100%') 161 } 162} 163``` 164 165### setImageFileCacheSize<sup>7+</sup> 166 167static setImageFileCacheSize(value: number): void 168 169设置图片文件缓存的大小上限,单位为字节,提升再次加载同源图片的加载速度,特别是对网络图源会有较明显提升。如果不设置则默认为100MB。缓存采用内置的LRU策略,新图片加载后,如果超过文件缓存上限,会按照时间由远到近删除缓存图片文件直到缓存图片大小满足缓存上限。建议根据应用实际需求,设置合理文件缓存上限,数字过大可能导致磁盘空间占用过高。 170 171**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 172 173**系统能力:** SystemCapability.ArkUI.ArkUI.Full 174 175**参数:** 176 177| 参数名 | 类型 | 必填 | 说明 | 178| -------- | -------- | -------- | -------- | 179| value | number | 是 | 图片文件的缓存大小,单位为字节。 | 180 181**示例:** 182 183```ts 184// app.ets 185import app, { AppResponse } from '@system.app' 186 187export default class OnC { 188 onCreate() { 189 app.setImageFileCacheSize(209715200) 190 // 设置图片文件数据缓存上限为200MB (200MB=200*1024*1024B=209715200B) 191 console.info('Application onCreate') 192 } 193 onDestroy() { 194 console.info('Application onDestroy') 195 } 196} 197``` 198 199### ScreenOnVisible<sup>(deprecated)</sup> 200 201static screenOnVisible(options?: ScreenOnVisibleOptions): void 202 203定义屏幕唤醒时是否保持应用可见。 204 205该接口从API Version 8 开始废弃。 206 207**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full 208 209| 名称 | 类型 | 必填 | 说明 | 210| ------- | ------------------------------------------------- | ---- | ------------------------------------------------------------ | 211| options | [ScreenOnVisibleOptions](#screenonvisibleoptions) | 否 | 当启动保活时,锁屏时将阻止系统返回桌面显示,以保持屏幕唤醒时应用可见。 | 212 213### requestFullWindow<sup>(deprecated)</sup> 214 215static requestFullWindow(options?: RequestFullWindowOptions): void 216 217请求应用以全窗口运行,FA在某些场景下(如半模态FA)会以非全窗口运行,调用该接口会从非全窗口切换为全窗口运行,如果已经以全窗口运行则该接口调用无效。 218 219从API Version 7开始,推荐使用[`@ohos.window`](js-apis-window.md)。 220 221**系统能力:** SystemCapability.ArkUI.ArkUI.Full 222 223**参数:** 224 225| 参数名 | 类型 | 必填 | 说明 | 226| ------- | ----------------------------------------------------- | ---- | ------------------------------------------------------------ | 227| options | [RequestFullWindowOptions](#requestfullwindowoptions) | 否 | 请求全屏时,设定非全屏到全屏的过渡时间,单位为毫秒,默认时间与非全屏到全屏的距离成正比。 | 228 229**示例:** 230 231```ts 232import app, { AppResponse } from '@system.app' 233export default class Req { 234 requestFullWindow() { 235 app.requestFullWindow({ 236 duration: 200 237 }) 238 } 239} 240``` 241 242## AppResponse 243 244定义AppResponse信息。 245 246**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 247 248**系统能力:** 以下各项对应的系统能力有所不同,详见下表。 249 250| 名称 | 类型 | 必填 | 说明 | 251| -------- | -------- | -------- |-------- | 252| appID<sup>6+</sup> | string | 是 | 表示应用的包名,用于标识应用的唯一性。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Full| 253| appName | string | 是 | 表示应用的名称。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Lite| 254| versionName | string | 是 | 表示应用的版本名称。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Lite| 255| versionCode | number | 是 | 表示应用的版本号。 <br> **系统能力:** SystemCapability.ArkUI.ArkUI.Lite| 256 257## ScreenOnVisibleOptions 258 259定义屏幕上可见接口的选项。 260 261**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full 262 263| 名称 | 类型 | 必填 | 说明 | 264| -------- | -------- | -------- | -------- | 265| visible | boolean | 否 | 是否启动保活,默认值false。 | 266| success | () => void | 否 | 接口调用成功的回调函数。 | 267| fail | (data: string, code: number) => void | 否 | 接口调用失败的回调函数。 | 268| complete | () => void | 否 | 接口调用结束的回调函数。 | 269 270## RequestFullWindowOptions 271 272定义RequestFullWindow接口的选项。 273 274**系统能力:** 以下各项对应的系统能力均为SystemCapability.ArkUI.ArkUI.Full 275 276| 名称 | 类型 | 必填 | 说明 | 277| -------- | -------- | -------- | -------- | 278| duration | number | 是 | 定义动画选项的持续时间,单位为毫秒。 | 279 280