2011-06-27 58 views
19

我刚刚阅读了关于如何加速应用程序UI的blogpost by Romain Guy。他基本上是说,如果你的应用程序使用不透明的观点,你可以使用背景设置为@nullActivity的风格:android:windowBackground =“@ null”提高应用程序速度

工作的呢?我愿意像他那样使用FPS进行测试,但我没有找到明确的方式获取这些信息。

我读过一些threads说你需要自己做。 我即将添加一个自定义视图,该视图在onDraw()方法中绘制FPS,并呼叫invalidate()始终接听电话。

尽管这有效,但我想知道是否有更好的方法来分析应用程序中的FPS。

+1

该blogpost有一个样本的源代码。检查'FpsImageView.java'。 – jamapag

+7

我首先根据可用武器的范围分析FPS。游戏中你几乎没有枪/刀/任何东西,也没有能力让别人得到相对快速的陈旧。然后,我专注于轻松导航 - 我可以从一点到另一点,而不会过度乏味吗?可配置的平视显示器很好,因为当我发起全面攻击时,我倾向于发现它们有点分散注意力......哦,等等。你可能是指“每秒帧数”,而不是“第一人称射手”。我的错。 :-)(和FWIW,我不知道你如何计算FPS以外的游戏或自定义的'View')。 – CommonsWare

+0

@jamapag:谢谢你指出。我从他的代码中得到了我的答案。你想发表一个关于它的答案,所以我可以给你的代表点? – Macarse

回答

3

blogpost有一个样本的源代码。检查FpsImageView.java

3

如果应用程序的UI完全绘制窗口内容,则应始终将windowBackground设置为null。这可以防止框架使用默认背景颜色填充窗口,所以渲染每个框架所需的传递量少一点,这意味着您可以花费自己的时间来绘制该像素数。

+1

感谢您的回答。关于如何获得FPS,我正在考虑将Romain Guy的“活动”代码添加到课程中,并让我的“活动”在开发时延伸以检查其FPS。你认为这是正确的吗?是否有意义?谢谢! – Macarse

0

在某些情况下,我注意到将背景设置为空会导致奇怪的UI毛刺,如书面here

我会建议在各种设备和模拟器上测试它,然后再决定使用它。

+1

正如我读过的,似乎只有当listView和窗口的背景都设置为@null时,才会出现奇怪的毛刺。如果您想优化应用程序,请选择其中任何一个。 –