引言:

开发者要想更广泛的分发自己的应用程序到终端设备,必须首先要确定应用程序占用 内存大小,并进而优化应用程序以便在256MB或更小内存的设备上正常运行.

要为小内存设备开发应用程序、要首先安装Windows Phone SDK7.1.1,该SDK版本包含针对256MB手机开发的一些特性,使用该SDK,开发者可以在代码中检测应用程序是否能运行在256MB的设备上,如果必要的话,会禁用应用程序中的部分功能,以便应用程序提供所有手机使用。

a5883130

本文将包含如下内容:

★ 安装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 Phone应用程序中的性能注意事项

Windows PhoneMarketplace Test Kit

Windows phonePerformance Analysis