2010-03-04 44 views
2

我有一些麻烦,实现从我的应用程序足够的实时性能,不知道如果我的建筑师-ED是次优。要求是应用程序播放声音,并按用户指定的时间间隔在Canvas上绘制一条线。的Android架构的实时应用

我有一个Thread睡觉的用户指定的时间间隔,醒来,并使用HandlerRunnable进行所需的绘图和声音播放。当我运行应用程序时,节拍有时会稳定,但有时可以看到AudioFlinger的GC和随机警告条件的影响。

是具有通过处理程序/可运行一个线程Timer后回到GUI线程的最佳方法?我可以做些什么来提升应用程序的优先级,以便其他应用程序和Android活动不太可能中断它?我是否需要使用NDK访问Java API中不存在的实时功能?

回答

2

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

1

还试图创建实时应用程序时(如在不断动态应用不scientific real time system)你想避免让垃圾收集器运行。这需要一些时间,可以被视为滞后。所以不要立即创建需要处理的对象等。