天天看點

為記憶體為256MB的Windows Phone裝置開發應用

全球最大移動通信展Mobile World Congress 2012上,微軟和OEM合作夥伴宣布支援更多的硬體配置。手機記憶體在主流512MB的基礎上,拓展到256MB,進而使更廣泛的使用者群體驗Windows Phone。

開發者要想更廣泛的分發自己的應用程式,首先需要确定應用程式占用記憶體大小,并進而優化應用程式以便在256MB或更小記憶體的裝置中正常運作。要為小記憶體裝置開發應用程式,需要安裝Windows Phone SDK 7.1.1 Update,該SDK版本包含針對256MB手機開發的一些特性。使用Windows Phone SDK 7.1.1 Update,開發者可以在代碼層面檢測你的應用程式是否能運作在256MB裝置上,如果必要的話會禁用應用程式中的部分功能,以便應用程式能供所有手機使用。另外,使用這個版本的SDK提供了256MB版本的Windows Phone模拟器測試應用程式。最後,如果你的應用程式在256MB裝置上無法正常運作,可以修改應用程式清單檔案在Marketplace中聲明不支援這類小記憶體裝置本文描述Windows Phone SDK 7.1.1Update中的新特性,以及Windows Phone OS 7.1在256MB真機上不支援或有限支援的功能。

  本文包含以下部分。

l 安裝Windows Phone SDK 7.1.1 Update

l 檢查特定裝置的應用程式記憶體限制

l 256MB裝置的專有特性注意事項

l 支援多種裝置類型的應用程式和遊戲的測試和調試

l 使用應用程式配置清單選擇不支援256MB裝置類型

u<b>安裝</b><b>Windows Phone SDK 7.1.1 Update</b>

u<b>檢查裝置的應用程式記憶體限制</b>

// Place call in a try block in case the user is not running the most recent version of the Windows Phone OS and this method call is not supported.

try

{

    long result =

    (long)DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit");

}

catch (ArgumentOutOfRangeException) {// The device has not received the OS update, which means the device is a 512-MB device.}

<b> </b>

<b>注意:</b>

u<b>256MB</b><b>裝置的專有特性注意事項</b>

你可以在256MB裝置上使用Windows Phone OS 7.1提供的大多數功能而不必擔心性能問題。然而,256MB的裝置不支援通用背景代理,還有一些附加的功能也需要謹慎使用,以免超過應用程式的記憶體限制。

<b>避免通用背景代理</b>

256MB的裝置上唯一不支援的功能就是通用背景代理。下列代理是不支援的:

l 資源密集型任務

l 周期性任務

<b>減少圖形和音頻的記憶體使用</b>

在開發針對256MB記憶體手機上運作的應用程式和遊戲的時侯,開發者應該在遊戲或應用程式中謹慎使用圖形。圖形和音頻記憶體往往是不分頁的。過多的音頻或圖像資源、紋理和動畫可能會超過256MB裝置的記憶體限制。使用 XNA®Framework建構的遊戲,非常典型地使用大量圖形和音頻,這需要特别注意。如果您的應用程式或遊戲超過了運作它們的裝置的記憶體上限,<b>OutofMemoryException</b>異常就會觸發并且應用程式也将意外退出。

<b>降低記憶體使用的其他注意事項</b>

以下是開發一個在256MB裝置上運作的應用程式的其他注意事項清單。

l 避免長清單的資料,如果使用它們,請確定它們是分頁的。每次加載需要的資料。

l 避免帶圖像的複雜的Item模闆

l 注意如果在運作一個應用程式時使用者改變了手機的方向,應用程式使用的記憶體可能達到峰值。你也應該在方向改變的情況下測試應用程式,如果您的應用程式經常超過90MB記憶體的上限,那就選擇不支援256MB記憶體的裝置。

u<b>支援多種所有記憶體大小的手機裝置類型的應用程式和遊戲的測試和調試</b>

使用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的裝置上你的應用程式或遊戲的響應速度和性能。

u<b></b><b>使用應用程式配置清單選擇不支援</b><b>256MB</b><b>裝置類型</b>

如果你測試應用程式,确定它不滿足256MB裝置的記憶體要求,你必須在應用程式配置清單裡标明。如果你不這樣做的話,使用256MB裝置的使用者會下載下傳并安裝你的應用程式。即使它能在較高記憶體的裝置上運作良好,這也可能會導緻應用程式的差評。如果選擇開發的應用程式不支援256MB的裝置,請在配置清單上添加一部分說明你的應用程式需要90MB的記憶體。在市場接收的過程中,配置清單的這部分不會被去掉。若要在配置清單上添加90MB記憶體的需求,請按以下步驟操作:

1.     在WMAppManifest.xml檔案中<b>Capabilities</b><b>之後</b>添加<b>Requirements</b> 部分。

2.     在<b>Requirements</b> 部分添加一個<b>Requirement</b> 元素。為<b>Requirement</b><b>元素添加一指定的</b><b>Name</b><b>屬性,設定其值為</b><b>ID_REQ_MEMORY_90</b>。

以下代碼示範了如何完成該操作:

&lt;/Capabilities&gt;

&lt;Requirements&gt;

      &lt;Requirement Name="ID_REQ_MEMORY_90" /&gt;

&lt;/Requirements&gt;

<b>注意</b>:

Visual Studio不會根據該需求阻止你将應用程式部署到256MB的模拟器或256MB的裝置上。該需求僅防止Marketplace将您的應用程式展示給使用256MB裝置的使用者。

u<b>也可參閱</b>

其他資源

<a href="http://msdn.microsoft.com/zh-cn/library/ff967560(v=vs.92).aspx">Windows Phone應用程式中的性能注意事項</a>