引言:
開發者要想更廣泛的分發自己的應用程式到終端裝置,必須首先要確定應用程式佔用 記憶體大小,並進而優化應用程式以便在256MB或更小記憶體的裝置上正常執行.
要為小記憶體裝置開發應用程式、要首先安裝Windows Phone SDK7.1.1,該SDK版本包含針對256MB手機開發的一些特性,使用該SDK,開發者可以在程式碼中檢測應用程式是否能執行在256MB的裝置上,如果必要的話,會禁用應用程式中的部分功能,以便應用程式提供所有手機使用。
本文將包含如下內容:
★ 安裝Windows Phone SDK7.1.1
★ 檢查特定裝置的記憶體限制
★ 256MB記憶體裝置的注意事項
★ 支援多種裝置型別的應用程式和遊戲的測試和除錯
★ 使用程式配置清單,選擇不支援256MB的裝置型別。
一、安裝Windows Phone SDK7.1.1
要開發適配於低儲存的終端,需要下載並安裝SDK7.1.1,這裡沒什麼好說的,但目前不明確WP8 DP版本是否支援該SDK的安裝。
二、檢查裝置的應用程式記憶體限制。
使用SDK7.1.1提供的功能,開發者可以在程式中實時檢測裝置的記憶體限制,相關程式碼如下:
Int64 result = (Int64)DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit"); if (result < 94371840L) { //如果獲取到的值小於90MB,那麼可以判定裝置記憶體為256MB IsLowMemDevice = true;
} else { //否則,裝置記憶體為512MB IsLowMemDevice = false; }
如果上述程式碼檢測到裝置的方法返回值小於90MB,則開發者應用避免使用一些耗費資源的功能,如:頁面動畫跳轉、以及大量使用多媒體資源的應用和遊戲。
三、256MB記憶體裝置的注意事項
通常來說,我們可以在256MB裝置上使用Windows Phone OS7.1的大多數功能,而不必擔心效能問題,然而,畢竟256MB裝置屬於低端產品,不支援使用通用的後臺代理功能,也有一些附加的功能需要謹慎使用,以避免超過記憶體的使用限制。
避免通用後臺代理
資源密集型任務
週期型任務
減少圖形和音訊的使用
在開發針對256MB記憶體手機上執行的應用程式和遊戲的時侯,開發者應該在遊戲或應用程式中謹慎使用圖形。圖形和音訊記憶體往往是不分頁的。過多的音訊或影像資源、紋理和動畫可能會超過256MB裝置的記憶體限制。使用 XNA®Framework構建的遊戲,使用大量圖形和音訊,這需要特別注意。如果您的應用程式或遊戲超過了執行它們的裝置的記憶體上限,OutofMemoryException異常就會觸發並且應用程式也將意外退出。
如果圖形記憶體使用接近於裝置的工作集上限,您應該試圖優化應用程式的效能以便它能在256MB的裝置上執行。關於在你的遊戲或應用程式中減少記憶體使用的詳細技術的更多資訊,請參閱改善XNA遊戲的記憶體使用。
降低記憶體使用的其他注意事項
以下是開發一個在256MB裝置上執行的應用程式的其他注意事項列表。
l 如果可能的話使用啟動器和選擇器。如果你在應用程式中使用WebBrowser控制元件,Windows Phone版本的Bing MapsSilverlight控制元件,或者照相機,請務必測試您的應用程式使用多少記憶體,觀測應用程式在256MB的模擬器上是否能流暢執行。為了減少應用程式佔用的記憶體,您應該使用這些控制元件對應的啟動器和選擇器。關於在Windows Phone上使用啟動器的更多資訊,請參閱Windows Phone 的啟動器和Windows Phone的選擇器。
l 避免長列表的資料,如果使用它們,請確保它們是分頁的。每次載入需要的資料。
l 避免帶影像的複雜的Item模板
l 在頁面跳轉上避免複雜的動畫效果。包括在Windows Phone Silverlight Toolkit中包含了的跳轉效果。如果你使用跳轉效果,確保你的應用程式保持響應,並測試你的應用程式在頁面跳轉期間的記憶體使用情況。
l 注意如果在執行一個應用程式時使用者改變了手機的方向,應用程式使用的記憶體可能達到峰值。你也應該在方向改變的情況下測試應用程式,如果您的應用程式經常超過90MB記憶體的上限,那就選擇不支援256MB記憶體的裝置。
對於一般的效能指導,例如縮短啟動時間,如何向使用者報告進度和其他提示,請參閱Windows Phone應用程式中的效能注意事項。
支援多種各種記憶體大小的手機裝置型別的應用程式和遊戲進行測試和除錯
使用Windows Phone SDK 7.1.1Update,你可以在256MB的Windows Phone模擬器上執行你的應用程式。在安裝完Windows Phone SDK7.1.1Update之後,你可以在標準工具欄上的以下選項中選擇:
l Windows Phone裝置
l Windows Phone 模擬器—512MB
l Windows Phone 模擬器—256MB
如果沒有裝置,你可以使用256MB的模擬器來幫助確定在256MB的裝置上你的應用程式或遊戲的響應速度和效能。
你也可以使用Windows Phone SDK 7.1中就包含的工具來估計記憶體的使用情況以及優化應用程式的效能。你可以使用Windows PhoneMarketplace Test Kit來估計應用程式使用的所有記憶體。關於Marketplace Test Kit的更多資訊,請參閱MSDN上的Windows Phone Marketplace Test Kit。使用Windows Perfomance Analysis Tool來檢視記憶體的使用情況以及優化應用程式的效能。更多資訊,請參閱Windows Phone Performance Analysis。
使用應用程式配置清單選擇不支援256MB裝置型別
如果你測試應用程式,確定它不滿足256MB裝置的記憶體要求,你必須在應用程式配置清單裡標明。如果你不這樣做的話,使用256MB裝置的使用者會下載並安裝你的應用程式。即使它能在較高記憶體的裝置上執行良好,這也可能會導致應用程式的差評。如果選擇開發的應用程式不支援256MB的裝置,請在配置清單上新增一部分說明你的應用程式需要90MB的記憶體。在市場接收的過程中,配置清單的這部分不會被去掉。若要在配置清單上新增90MB記憶體的需求,請按以下步驟操作:
1. 在WMAppManifest.xml檔案中Capabilities之後新增Requirements 部分。
2. 在Requirements 部分新增一個Requirement 元素。為Requirement元素新增一指定的Name屬性,設定其值為ID_REQ_MEMORY_90。
以下程式碼演示瞭如何完成該操作:
</Capabilities>
<Requirements>
<Requirement Name=”ID_REQ_MEMORY_90″ />
</Requirements>
注意:
Visual Studio不會根據該需求阻止你將應用程式部署到256MB的模擬器或256MB的裝置上。該需求僅防止Marketplace將您的應用程式展示給使用256MB裝置的使用者。
也可參閱其他資源
Windows PhoneMarketplace Test Kit
Windows phonePerformance Analysis