Android实时应用程序架构

3
我在我的应用程序中遇到了实时性能不足的问题,想知道是否存在不太优化的架构。要求该应用程序在用户指定的时间间隔内播放声音并在Canvas上绘制线条。
我有一个Thread,它睡眠一段用户指定的时间间隔,然后唤醒并使用HandlerRunnable进行所需的绘制和声音播放。运行应用程序时,节拍有时是稳定的,但有时会看到AudioFlinger的GC和随机警告条件的影响。
通过Handler/Runnable将Timer线程返回到GUI线程是最好的方法吗?我能做些什么来提高我的应用程序的优先级,使其他应用程序和Android活动不太可能中断它吗?我需要使用NDK访问Java API中不存在的实时特性吗?
2个回答

3

听起来你想要实现的是一个游戏循环。有许多教程介绍如何创建游戏循环,比仅仅使用sleep更加稳定的计时方式,例如简单的Java Android游戏循环。你可以尝试根据这个术语进行搜索,看看是否有帮助。


1

同样,在尝试创建实时应用程序(即不断动态的应用程序,而不是 科学实时系统)时,您会希望避免让垃圾回收器运行。这需要一些时间,可能会被感知为延迟。因此,请勿创建需要立即处理的对象等。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接