Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Xamarin 4.x Cross-Platform Application Development

You're reading from   Xamarin 4.x Cross-Platform Application Development Develop powerful cross-platform applications with Xamarin

Arrow left icon
Product type Paperback
Published in Dec 2016
Publisher
ISBN-13 9781786465412
Length 292 pages
Edition 3rd Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Jonathan Peppers Jonathan Peppers
Author Profile Icon Jonathan Peppers
Jonathan Peppers
Arrow right icon
View More author details
Toc

Table of Contents (13) Chapters Close

Preface 1. Xamarin Setup FREE CHAPTER 2. Hello, Platforms! 3. Code Sharing Between iOS and Android 4. XamSnap - A Cross-Platform App 5. XamSnap for iOS 6. XamSnap for Android 7. Deploying and Testing on Devices 8. Contacts, Camera, and Location 9. Web Services with Push Notifications 10. Third-Party Libraries 11. Xamarin.Forms 12. App Store Submission

Avoiding common memory pitfalls


Memory on mobile devices is certainly not an unlimited commodity. Because of this, memory usage in your application can be much more important than on desktop applications. At times, you might find the need to use a memory profiler or improve your code to use memory more efficiently.

The following are the most common memory pitfalls:

  • The garbage collector (GC) is unable to collect large objects fast enough to keep up with your application

  • Your code inadvertently causes a memory leak

  • A C# object is garbage collected, but is later attempted to be used by native code

Let's take a look at the first problem, where the GC cannot keep up. Let's say we have a Xamarin.iOS application with a button for sharing an image on Twitter, as follows:

twitterShare.TouchUpInside += (sender, e) => 
{ 
  var image = UImage.FromFile("YourLargeImage.png"); 
  //Share to Twitter 
}; 

Now let's assume the image is a 10 MB image from the user's camera roll. If...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime
Banner background image