适用于实时应用程序的Android架构

时间:2010-03-04 16:11:23

标签: android architecture timer real-time

我在应用程序中实现足够的实时性能时遇到了一些麻烦,并且想知道我是否已经将其设置为次优。要求应用程序播放声音并在用户指定的时间间隔内在Canvas上绘制一条线。

我有Thread在用户指定的时间间隔内休眠,醒来并使用HandlerRunnable进行必要的绘图和声音播放。当我运行应用程序时,节拍有时是稳定的,但有时,您可以从AudioFlinger看到GC和随机警告条件的影响。

通过Handler / Runnable将Timer线程回发到GUI线程是最好的方法吗?我可以做些什么来提高我的应用程序的优先级,同时它是可见的,以便其他应用程序和Android活动不太可能打断它?我是否需要使用NDK来访问Java API中不存在的实时功能?

2 个答案:

答案 0 :(得分:3)

听起来你想要的是游戏循环。有许多关于创建游戏循环的教程,其中包含更加一致的时序,例如simple java android game loop.您可以尝试根据该术语进行搜索,看看是否有帮助。

答案 1 :(得分:1)

此外,当尝试创建实时应用程序时(如在不断动态的应用程序而不是scientific real time system中),您可能希望避免让垃圾收集器运行。这需要一些时间,可以被视为滞后。因此,不要创建需要立即处理的对象等。