Download - Optimizing windows phone apps
Optimizing Your Windows Phone Mango [email protected] 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