2011-06-27 86 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時,纔會出現奇怪的毛刺。如果您想優化應用程序,請選擇其中任何一個。 –