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