我正在开发一个Android应用程序,它使用libpd运行大量密集音频任务。 Libpd的音频线程的优先级为Process.THREAD_PRIORITY_URGENT_AUDIO。Android中推荐的应用程序CPU负载
CPU负荷停留在一个三星Galaxy S3不断30之间20%和%。这对我来说似乎是合理的,但是,当音频服务在后台运行时,打开另一个应用程序时,CPU负载大约为30%会导致音频丢失。
有人可以解释这种行为吗?我认为像S3这样的quadcore手机的最大负载是400%(在adb外壳中使用“top”显示)。因此,我不明白为什么像libpd音频线程这样高度优化的线程在使用只有30%的CPU时没有获得足够的CPU资源。
任何建议,将不胜感激,谢谢;)
使用较大的缓冲区 - 它不会显着减少负载,但它会减少高负载导致退出的机会,因为计划音频计算的时间不那么关键。 –