Performance

Application performance addresses how the user is impacted by the application. Testing will be performed on the following, to assess a set of profiles for acceptable ranges and for patterns that are indicative of software defects:

= Required for apps
= Required for games
CPU

Your app must manage CPU use intelligently. If your app has consistently high CPU use and causes lag, it will reduce battery life of the user's device and negatively impact overall user experience.

Memory Performance testing will look for minimized memory use and the elimination of memory leaks.
Network Testing will be performed on network usage. Lower network traffic minimizes data charges for the user, creating better value and a positive experience.
Battery Battery life has a significant impact on user experience. Poor performance capacity and a negative impact on battery life will be factored into evaluations of your app.
Run in Background Flag Proper utilization of the Run in Background flag is important to manage how your application uses the device resources. Only the following category of apps should have the Run in Background flag enabled:
  • Streaming audio using network connection.
  • Playing local audio content.
  • Periodic network connection to maintain presence/connection to service.
  • Periodic network connection to refreshing data/content.
  • Sensor recording and/or polling (microphone, light, proximity, accelerometer).
  • Maintenance of GPS position data.
  • Maintenance of BT connection.
  • Maintenance of DLNA/HDMI services/connection.
  • Maintenance of USB connection.
  • Monitoring for specific network connection type or peripheral.
  • Background operations: periodic or timer based (task/memory managers, battery monitoring, alarm clocks).
  • Long running task user-initiated tasks (video editors, downloads, unzipping).
  • Short range radio (Bluetooth, Wi-Fi, NFC).
Learn more about the Run in Background Flag

Best practices

For more information on coding with best practices for performance: