Optimizing windows phone apps

Post on 18-Jan-2015

3.024 views 1 download

Tags:

description

 

Transcript of Optimizing windows phone apps

Optimizing Your Windows Phone Mango ApplicationsJinho.Seo@microsoft.comMicrosoft Korea

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

Application Types

Submission and Certification Process

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

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

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

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

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

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

Demo - 32 bpp vs. 16 bpp

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>

Demo - Image Decoding

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

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

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

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

Demo – Memory Testing

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

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

Demo – End-To-End Testing

Windows Phone Marketplace Test Kit Objectives : Protect to fail submission

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

94032(v=vs.92).aspx