How to test an app on a Windows Phone device with 256MB of memory

On 27th Feb 2012 Microsoft has announced support for lower cost devices, such as Nokia Lumia 610. This is a great opportunity to expand Windows Phone’s customer segments. This comes with an updated Windows Phone OS and release of SDK 7.1.1.

The update to the Windows Phone OS (build 8773) is a minor update to improve user experience on devices with 256MB of memory. Windows Phone has always supported devices with 256MB, but this update is about having the experience “buttery smooth”. This means the update is primarily about supporting lower cost devices.

Most applications will run seamlessly on lower cost devices and to verify your application on these devices please refer to the test case below. The test case starts with brief description of the changes in the Windows Phone Platform on 256MB devices and follows up with the test scenarios to verify.

 

TEST CASE PURPOSE

An OS update to the existing Windows Phone 7.5 improves support for devices with 256 MB of memory. This testcase verifies that the application will function correctly on lower cost devices with 256MB memory. In general old applications should work since Marketplace guidelines required all apps not to use more than 90MB of memory on devices with 256MB of memory and handle disabled background agents correctly.

Key notes: -If app exceeds memory allowance, the app will be terminated by OS.

-There is no generic background agent (PeriodicTask and ResourceIntensiveTask) functionality on lower cost devices with 256MB. App may terminate with unhandled exception if not accounting for disabled background agents.

-Note that background audio is supported.

-Verify app performance. If application is memory intensive, then with memory paging the app performance can decrease. Verify background audio and general app responsiveness.

-Verify playback of high resolution videos. Maximum 800 x 480 video resolution is supported. Max supported bitrate is up to 4Mbps regardless of codec (*). Use IsMultiResolutionVideoSupported API to detect device capabilities.

 

TEST STEPS:

Install the application on device with 256 MB of memory and test following areas: (** for testing in emulator see end of the testcase)

1. Execute scenarios which are memory intensive. VERIFY: App is not killed by OS when the user is using a memory intensive feature.

2. Execute scenarios that would exercise the background agent code (if applicable). There are no crashes or misleading error messages because generic background agents are not available on lower cost devices.

3. Pin secondary tile to start. Some apps use background agents to update the tile. Application must not crash or give confusing error message to the user.

4. Background audio does not stutter.

5. Verify performance and app responsiveness to user’s interactions.

6. App’s launch time meets Marketplace requirements – (5.2.1 Launch Time)

7. Test video playback if applicable. Focus on high resolution videos. VERIFY: All videos play or a user friendly error message is displayed for videos that do not play. You may see generic phone error “Sorry, we can’t play this file on your phone”.

 

(**) Alternative way of testing this is using Windows Phone Emulator with 256MB of memory. Download the SDK update at https://go.microsoft.com/fwlink/?LinkID=244021

Keep in mind that performance on emulator does not reflect actual speed of the phone device, as the desktop PC is more powerful.

(*) See ‘Supported Media Codecs for Windows Phone’ with regard to 7x27a processor used in 256MB devices: https://msdn.microsoft.com/en-us/library/ff462087(v=vs.92).aspx

 

Memory and performance issues can be investigated using free Performance Profiler which is part of the Windows Phone SDK. Overview of the profiler at https://msdn.microsoft.com/en-us/library/hh202934(v=vs.92).aspx

Background Agent Best Practices for Windows Phone: https://msdn.microsoft.com/en-us/library/hh202944(v=vs.92).aspx

 

 

Marketplace FAQ:

Q: My application is already in Marketplace, will the application be visible in Marketplace on lower cost devices?

A: Yes, however some applications which exceed the allowed memory limit will be opted out by default from Marketplace on lower cost devices to avoid user’s dissatisfaction.

Q: How are failing apps determined?

A: Opt-out is based on anonymous memory usage statistics, which are received from users that take part in a feedback program (source, section Windows Phone SDK Update & Preview)

Q: My app is opted out from Marketplace on lower cost devices. How do I opt the app in?

A: Submit an updated app to App Hub, the app will be re-tested on lower cost devices. Once the application passes certification, the application will become available.

Q: My application will not be able to work on lower cost devices how do I opt out?

A: Add requirement ID_REQ_MEMORY_90 to the WMAppManifest.xml file.

 

 

Resources:

Developing for 256-MB Devices
Optimizing Apps for Lower Cost Devices
Best Practice Tips for Delivering Apps to 256 MB Devices
Get Ready for 60% More Potential Customers
Windows Phone at Mobile World Congress 2012
Video: Inside Windows Phone #33 | Windows Phone 7.5 Refresh & 60% more Opportunity!
Tools: Windows Phone SDK 7.1.1 Update

 

Written by Petr Sedlacek