Optimizing windows phone apps

19
Optimizing Your Windows Phone Mango Applications [email protected] m Microsoft Korea

description

 

Transcript of Optimizing windows phone apps

Page 1: Optimizing windows phone apps

Optimizing Your Windows Phone Mango [email protected] Korea

Page 2: Optimizing windows phone apps

Application Certification Requirements 1. Application Policies 2. Content Policies 3. Application Submission Requirements 4. Technical Certification Requirements 5. Additional Requirements for Specific

Application Types

Page 3: Optimizing windows phone apps

Submission and Certification Process

http://msdn.microsoft.com/en-us/library/hh184843(v=vs.92).aspx

Page 4: Optimizing windows phone apps

Application Submission Requirements 4.1 Installation Package Validation 4.2 Application Code Validation 4.3 Phone Capabilities Detection 4.4 Language Validation

http://msdn.microsoft.com/en-us/library/hh184844(v=vs.92).aspx

Page 5: Optimizing windows phone apps

Technical Certification Requirements 5.1 Application Reliability 5.2 Performance and Resource

Management 5.3 Phone Functionality 5.4 Security 5.5 Content Validation

http://msdn.microsoft.com/en-us/library/hh184840(v=vs.92).aspx

Page 6: Optimizing windows phone apps

Additional Requirements for Specific Application Types 6.1 Location Aware Application 6.2 Push Notifications Application 6.3 Applications Running under a Locked Screen 6.4 Music + Videos Hub Application 6.6 Applications That Extend the Picture Viewer 6.7 Applications That Extend the Share Picker 6.8 Applications That Extend the Pictures Hub 6.9 Applications That Play or Stream Background Audio 6.10 Applications That Use Background Transfer

http://msdn.microsoft.com/en-us/library/hh184838(v=vs.92).aspx

Page 7: Optimizing windows phone apps

Mango Improvements

1. General Runtime Improvements Examples:

Faster, more responsive scrolling Lower memory footprint Better video playback

2. Improved Default Behaviors For 7.1 Apps Examples:

Fast-App-Switching Better XAML Parser

3. New Optional Behaviors For 7.1 Apps

Page 8: Optimizing windows phone apps

32 Bits-Per-Pixel Rendering

7.0 supports only 16 bpp rendering banding in gradients

In Mango the default is still 16 bpp Apps can opt-into 32 bpp in the manifest Recommended if your app wants to show

Photos Designs with gradients

Video apps get opt’ed in automatically

Page 9: Optimizing windows phone apps

Demo - 32 bpp vs. 16 bpp

Page 10: Optimizing windows phone apps

Background Image Decoding In 7.0 image decode happens on UI thread May result in stuttering, non-responsive UI 7.1 apps can opt-into background decode

<Image x:Name="myBackgroundDecodedImage"> <Image.Source> <BitmapImage UriSource="http://www.foo.com/bar.jpg" CreateOptions="BackgroundCreation"/> </Image.Source></Image>

Page 11: Optimizing windows phone apps

Demo - Image Decoding

http://msdn.microsoft.com/en-us/library/ff967560(v=vs.92).aspx

Page 12: Optimizing windows phone apps

Media and Objects

Supported Media Codecs for Windows Phone

http://msdn.microsoft.com/en-us/library/ff462087(v=vs.92).aspx

Set Build Action to Content for Media Hiding and Display Objects

Visibility vs. Opacity User Input

Use Manipulation Events http://msdn.microsoft.com/en-us/library/ff426933(VS.95).aspx

Page 13: Optimizing windows phone apps

Progress Bar, WebSerivces

Use PerformanceProgressBar instead of ProgressBar

Use HttpWebRequest instead of WebClient Application Startup Understanding Threads Identifying Performance Issues for Graphics-

Intensive Applications

http://msdn.microsoft.com/en-us/library/ff967560(v=vs.92).aspx

Page 14: Optimizing windows phone apps

Memory Testing

First: Design your app with memory in mind Monitor your memory usage Test with real word data Consider monitoring your “heavy” objects

Page instances UserControl instances Data objects that participate in binding

Tiny UI leak can cause entire visual tree to be leaked

Use the 7.1 Profiling Tools

Page 15: Optimizing windows phone apps

Demo – Memory Testing

Page 16: Optimizing windows phone apps

Control Your App With Sockets Use socket APIs to connect to your desktop

computer This can be useful for testing/debugging

scenarios: Monitoring app metrics (such as memory/heap

objects) Logging messages/results Controlling the app workflow

Page 17: Optimizing windows phone apps

End-To-End Testing

Navigating through the entire app State and visuals are correct No leaks and no crashes

Investing in an automated script may pay off Do the math Consider your test matrix Think about stability (memory and stress testing) Write code with testing in mind

Page 18: Optimizing windows phone apps

Demo – End-To-End Testing

Page 19: Optimizing windows phone apps

Windows Phone Marketplace Test Kit Objectives : Protect to fail submission

process http://msdn.microsoft.com/en-us/library/hh3

94032(v=vs.92).aspx