本文是“Windows Phone 7 開發 31 日談”系列的第9日。
在過去的幾天中,我們討論了啟動器和選取器,在某些情況下沒有硬體調試是十分困難的。今天,我們來談談調試,以及一些可供我們用來最佳化應用程式的工具。
Application.Current.Host.Settings
如果開啟你的App.xaml檔案,會看到有這樣的語句:
代碼// Show graphics profiling information while debugging.
if (System.Diagnostics.Debugger.IsAttached)
{
// Display the current frame rate counters.
Application.Current.Host.Settings.EnableFrameRateCounter = true;
// Show the areas of the app that are being redrawn in each frame.
Application.Current.Host.Settings.EnableRedrawRegions = true;
// Enable non-production analysis visualization mode,
// which shows areas of a page that are being GPU accelerated with a colored overlay.
Application.Current.Host.Settings.EnableCacheVisualization = true;
}
這段代碼開啟了一些工具,當你調試時它們可以提供大量的程式中正在發生的資訊。下面是一個它們各自所做的事情的摘要:
EnableFrameRateCounter
這是唯一一個預設被開啟的工具,它允許你在程式運行時監視應用程式的畫面播放速率。你會注意到所有這些工具都被包含在一個if語句中(Debugger.IsAttached),這是因為你並不會在最終的產品程式中使用它們。這些工具是專用於調試的。檢驗調試器還是解鎖菜單,測試你的試用版程式這類事情的好方法。當你調試時可以開啟某些東西,而在其他狀態下不用去管它們。
電影業的標準是每秒24幀,你可能不需要這麼多,除非是在你的程式中有複雜的動畫或移動。在Wikipedia上有一篇關於“視覺暫留”( Persistence of Vision,指當人眼所看到的影像消失後,人眼仍能繼續保留其影像0.1-0.5秒左右的映像的現象)的非常優秀的文章。
EnableRedrawRegions
開啟這個調試設定來看看在你的應用程式中矩形會在哪兒被重繪。當開啟後你可以看到被重繪的內容因為重繪地區是蘭色的。在獲得較低畫面播放速率時這一點變得非常重要,你可能不知道為什麼。這是因為應用程式將螢幕中的一部分進行了重繪,即使它很不明顯。
EnableCacheVisualization
另一種重疊色,EnableCacheVisualization向你展示頁面中哪些地區使用了GPU加速功能。你可能會期待視頻和動畫能充分利用它,但我想你會在GPU處理映像的頻率上感到驚訝。
下載範例程式碼
以上是一些在偵錯工具時可用的工具的技巧介紹。明天,我們來討論輸入範圍,以及我們所能使用的所有不同形式的螢幕小鍵盤。
原文地址:http://www.jeffblankenburg.com/post/31-Days-of-Windows-Phone-7c-Day-9-Debugger-Tips.aspx
如果大家喜歡我的文章,請點擊“推薦”,謝謝!