31天學會Windows Phone 7開發:調試技巧
在前幾篇文章中,我們討論了啟動器和選擇器,在某些情況下沒有硬件調試是十分困難的。本文,我們來談談調試,以及一些可供我們用來優化應用程序的工具。
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處理圖像的頻率上感到驚訝。
以上是一些在調試程序時可用的工具的技巧介紹。下一篇,我們來討論輸入范圍,以及我們所能使用的所有不同形式的屏幕鍵盤。
原作者:Jeff Blankenburg 譯者:金山崟霸
中文來源:http://www.cnblogs.com/porscheyin/archive/2010/12/22/1914082.html
英文來源:http://www.jeffblankenburg.com/2010/10/09/31-days-of-windows-phone-day-9-debugger-tips/