1# 设备待机部件 2## 简介<a name="section11660541593"></a> 3为提高设备续航,降低设备功耗,在设备进入待机空闲状态时,系统会限制后台应用使用资源。开发者可以根据自身情况,为自己的应用申请纳入待机资源管控,或者暂时不被待机资源管控。 4 5**图 1** 设备待机部件整体架构图 6 7 8 9## 目录<a name="section161941989596"></a> 10 11``` 12/foundation/resourceschedule/device_standby 13├── frameworks # 接口实现 14├── interfaces 15│ ├── innerkits # 对内接口目录 16│ └── kits # 对外接口目录 17├── sa_profile # 组件服务配置 18├── services # 组件服务实现 19└── utils # 组件工具实现 20└── plugins # 插件(状态监控、决策、转换、执行) 21└── bundle.json # 部件描述及编译文件 22``` 23 24### 部件内子模块职责说明<a name="section114564657874"></a> 25 26|子模块名称 |功能职责描述 | 27|------------|---------------| 28|interface |1.对外提供inner级别dump维测、豁免、通知接口。 | 29| |2.提供约束接口。 | 30|sa_profile |在服务管理中配置standby服务。| 31|services |1.内部核心服务功能实现。 | 32| |2.通知、查询功能。 | 33|plugins |1.状态监控。 | 34| |2.决策是否限制设备应用资源。| 35| |3.转换设备状态。 | 36| |4.执行策略。| 37|utils |1.通用工具、日志实现。| 38| |2.相关配置读写。 | 39|frameworks |配置对外接口框架能力。| 40 41## 设备待机管控<a name="section1312121216216"></a> 42 43|接口名 |接口描述 | 44|------------|---------------| 45|function getExemptedApps(resourceTypes: number, callback: AsyncCallback<Array<ExemptedAppInfo>>): void; |获取进入待机模式的应用名单,使用Callback异步回调。 | 46|function getExemptedApps(resourceTypes: number): Promise<Array<ExemptedAppInfo>>; |获取进入待机模式的应用名单,使用Promise异步回调。 | 47|function requestExemptionResource(request: ResourceRequest): void; |应用订阅申请豁免,使应用临时不进入待机管控。| 48|function releaseExemptionResource(request: ResourceRequest): void; |取消应用订阅申请豁免。| 49 50## 使用说明<a name="section114564657874"></a> 51 52当设备应用长时间未被使用或通过按键,本部件可以使设备应用进入待机模式。待机模式不影响应用使用,还可以延长电池续航时间。通过本模块接口,开发者可为应用申请或取消待机资源管控。使用时需先申请权限:ohos.permission.DEVICE_STANDBY_EXEMPTION。 53 54### ResourceType 55 56非待机应用资源枚举。 57 58|名称 |值 |说明| 59| ------------ | ------------ |--------------| 60|NETWORK |1 |网络访问资源| 61|RUNNING_LOCK |2 |cpu-runninglock资源| 62|TIMER |4 | timer任务资源| 63|WORK_SCHEDULER |8 | work任务资源| 64|AUTO_SYNC |16 | 自动同步的资源 | 65|PUSH |32 | pushkit资源| 66|FREEZE |64 | 冻结应用资源| 67 68### ExemptedAppInfo 69 70豁免应用信息,未进入待机管控的应用信息。 71 72|名称 |类型 | 必填 |说明 | 73| ------------ | ------------ |------------ | ------------ | 74|[resourceTypes](#resourcetype) | number | 是 |应用的资源类型 | 75|name |string | 是 | 应用名 | 76|duration | number | 是 | 豁免时长 | 77 78### ResourceRequest 79 80待机资源请求体。 81 82|名称 |类型 | 必填 |说明 | 83| ------------ | ------------ |------------| ------------ | 84|[resourceTypes](#resourcetype) | number | 是 |应用的资源类型 | 85|uid | number | 是 |应用uid | 86|name |string | 是 | 应用名称 | 87|duration | number | 是 | 豁免时长 | 88|reason |string | 是 | 申请原因 | 89 90## 相关仓<a name="section1371113476307"></a> 91 92资源调度子系统 93 94[**resourceschedule_device_standby**](https://gitee.com/openharmony/resourceschedule_device_standby) 95 96[resourceschedule_work_scheduler](https://gitee.com/openharmony/resourceschedule_work_scheduler) 97 98[notification_ces_standard](https://gitee.com/openharmony/notification_ces_standard) 99 100[appexecfwk_standard](https://gitee.com/openharmony/appexecfwk_standard) 101 102[powermgr_battery_manager](https://gitee.com/openharmony/powermgr_battery_manager) 103 104[resourceschedule_background_task_mgr](https://gitee.com/openharmony/resourceschedule_background_task_mgr)