低価格帯デバイスへの対応: Windows Phone アプリを申請する前に、256MBエミュレーターでテストし、予期せぬ不合格に備えよう

低価格帯のWindows Phoneデバイスとともに世界市場が広がっていますが、その一方で、256MBメモリデバイスでアプリが稼働することが求められています。
今後、アプリを申請される場合は、Windows Phone SDK 7.1.1を利用していただき、256MBエミュレーターでの動作確認をお勧めします。

要点をまとめておきます。

Developing for 256-MB Devices
https://bit.ly/wp256MB

Windows Phone SDK 7.1.1については、UX-TV 2012/4/4 のアーカイブ https://www.ustream.tv/recorded/21584653 をご覧ください。

256MBデバイスかどうかの判定方法

正確にはApplicationWorkingSetLimitが90MBより小さいデバイスかどうかを判定します。

try {
    Int64 result = (Int64)      
    DeviceExtendedProperties.GetValue("ApplicationWorkingSetLimit");
    if (result < 94371840L) // 90MB より小さい場合は、256MB デバイス
        isLowMemDevice = true;
    else
        isLowMemDevice = false;
}
catch (ArgumentOutOfRangeException)
{
    // Windows Phone OS update not installed
    isLowMemDevice = false;
}

256MBデバイスへのインストールを抑制する方法
十分なメモリが必要なアプリの場合、ApplicationWorkingSetLimitが90MBより小さいデバイスに対するアプリケーションのインストールを抑制する方法があります。

WMAppManifest.xml に次の内容を追加します。

</Capabilities>
<Requirements>
      <Requirement Name="ID_REQ_MEMORY_90" />
</Requirements>