应用退至后台后,如果继续活动,可能会造成设备耗电快、用户界面卡顿等现象。为了降低设备耗电速度、保障用户使用流畅度,系统会对退至后台的应用进行管控,包括进程挂起和进程终止。为了保障后台音乐播放、日历提醒等功能的正常使用,系统提供了规范内受约束的后台任务,扩展应用在后台运行时间。
合理的选择和使用后台任务对于优化用户体验,减少性能消耗非常重要。以下表格对比总结了各类后台任务的概念、适用场景以及任务执行过程中的应用状态。
任务类型 | 概念 | 应用退至后台状态 | 适用场景 |
---|---|---|---|
无后台 | 不执行任何任务,直接退到后台。 | 一小段时间后应用挂起(几秒内)。 | 通用。 |
短时任务 | 实时性要求高、耗时不长的任务。 | 在单次配额内,应用不会被挂起直到取消任务。单次配额超时不取消,应用进程会被终止。 | 小文件下载、缓存、信息发送等时效性高、需要临时占用资源执行的任务。 |
长时任务 | 长时间运行在后台、用户可感知的任务。 | 应用不会被挂起直到取消任务,任务结束不取消应用进程会被终止。 | 数据传输、音频播放、录音、定位导航、蓝牙、WLAN 相关、多设备互联、音视频通话、计算任务。 |
延迟任务 | 实时性要求不高、可延迟执行的任务,满足条件后放入执行队列,系统会根据内存、功耗等统一调度。 | 应用退到后台时挂起,满足任务设定条件时由系统统一调度拉起应用,创建 Extension 进程执行任务。单次回调最长运行 2 分钟,如果超时不取消,系统会终止对应的 Extension 进程。 | 软件更新、信息收集、数据处理等。 |
代理提醒 | 系统代理应用做出相应提醒。 | 应用挂起或进程终止,满足条件后系统会代理应用做相应的提醒。 | 闹钟、倒计时、日历。 |
CPU使用率是指进程在CPU上的运行时间与总时间的百分比,即CPU使用率 = 运行时间/总时间。单核CPU使用率最大为100%,多核CPU的使用率为核数*100%(比如8核CPU使用率最大为800%)。
进程的任务会被系统调度到多个CPU核上,进程在所有核上运行的时间总和除以总时间即为该进程的CPU使用率。例如1秒内进程在所有核上运行的总时间为1.1秒,则该进程的CPU使用率为110%。
约束
长时任务后台进程CPU使用率约束:后台进程持续10分钟单核CPU使用率不得高于80%。
短时任务后台进程CPU使用率约束:后台进程任务期间单核CPU使用率不得高于80%。
调测验证
-
连接设备,打开命令行窗口,输入hdc shell进入设备。
-
输入ps –ef | grep bundleName,查询要查看应用使用率的进程号。
-
输入top –p xxx,查看对应进程的使用率。查询结果中CPU列即为进程的实时使用率。其中 xxx 是一个进程 ID (PID)