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