Activity调度
适当地调度软件和硬件的活动,并明智地利用内存带宽非常重要。在视频播放中,任务主要分为由CPU和GPU处理,任务可分为三大类:音频任务,视频任务和相关的中断。
音频活动是周期性的,其周期为1ms~10ms。音频由CPU线程进行音频解码和后处理任务,并且还涉及到用于DMA操作的相关音频缓冲区。除了音频DMA的周期行为外,DMA活动还涉及来自I/O设备的Wi-Fi和存储流量进入内存,这些内存本质上是突发性的。
视频任务的部分任务由CPU处理,CPU执行音频视频分流,而GPU执行解码和后处理任务。可以并行化CPU和GPU的任务调度以降低总体功耗。
CPU从低功耗状态唤醒到运行状态的次数以及这种状态转换所需的能量会影响CPU的功耗。因此一个有功耗意识的应用程序可以通过避免这种转换而节省电量。避免CPU状态转换使用维护执行序列的中断,而不是基于计时器的轮询结构,并适当地调度它们来实现此目的。通过将周期出现的音频DMA分开安排,甚至将音频转移到专用音频处理硬件,可以实现进一步的优化。