Install Twitter Mobile

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Saturday, 31 August 2013

The Android ION Memory Manager

Posted on 03:07 by Unknown
Lately there's been quite a bit of discussions about Android "ION". What exactly is ION? Is it just some fancy name or is there more to it?

Let's talk about some history of Android first.

Since the very beginning, vendors of Android devices like HTC, Samsung or Motorola all use different System on a Chip (SoC) solutions from Qualcomm (MSM/Snapdragon), Nvidia (Tegra) and TI (OMAP). Each SoC has its own kernel drivers for managing memory buffers (chunks of scratchpad memory) used by Graphic Processing Unit (GPU), Audio processing, and Camera Stills and Video processing.

Every vendor had their own version of memory management, such as PMEM for Qualcomm, NVMAP for Nvidia and CMEM for TI - private memory not shared with anyone else. Each Android graphics, audio and camera libraries had to be customized to work with each of the SoC's own flavour of memory management, which makes it a nightmare for the Android Maintainers to maintain the fragmentation and compatibility issues abound. However, this was the case for all pre-Ice Cream Sandwich OS like Froyo, Gingerbread or even Honeycomb.

For Android 4.0 (aka Ice Cream Sandwich), Google was finally fed up with the private memory manager structure and decreed that all newer devices with Android 4.0 native should use the new, so called "ION" memory manager.

So what is exactly the Android ION?

In a simple words, Android ION removes ARM specific dependencies. The ION memory manager provides a common structure for how memory will be managed and used by GPU, Audio and Camera drivers. Common functions are:

  • memory allocation / de-allocation
  • Direct Memory Access Pools
  • user-space (Android libraries) memory passing to/from kernel space

With these common functions and structures defined, kernel drivers from each SoC manufacturer needed to rewrite their drivers to be compatible with Ice Cream Sandwich. Once the drivers adopted to the new common structure, the graphics, audio and camera libraries can now be more generic and could care less about the nitty-gritty details of how different SoC vendors' drivers worked.

It was painful at first, but it was a necessary move for Google to impose to all the SoC vendors. Now looking back, this new ION manager enabled manufactures and third party Android projects (like Cyanogen-mod) to quickly bring up newer Android releases for various devices and also reduce the "hidden" Android fragmentation.

If you want to take a look at the code of the ION memory manager, please visit faux123 github - MSM ION

I hope you enjoyed my first Kernel GeekTalk series... more to come soon!

Have any questions or comments? Feel free to share! Also, if you like this article, please use the media sharing buttons (Twitter, G+, Facebook) under this post!
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in Guide | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Unlocking bootloader or flashing custom ROM doesn't void your warranty!
    Since HTC started htcdev.com with the possibility to unlock bootloader on HTC devices, I noticed that false information and beliefs are sp...
  • The Android ION Memory Manager
    Lately there's been quite a bit of discussions about Android "ION". What exactly is ION? Is it just some fancy name or is ther...
  • Stock system dumps (Android 4.3 with official HTC Sense 5.5) for HTC One
    First official update with brand new HTC Sense 5.5 for the HTC One arrived today. The new software number is 3.62.401.1 and it's based...
  • How to fix a corrupted DATA partition on the HTC One
    Since the HTC One was released, I've had a few users asking me to help them fix their broken device. They couldn't boot their system...
  • Do you want to write on Android Revolution HD blog?
    It's time to expand. This place has a potential and I want it to become even more popular.  If you are interested in making this place e...
  • Android terminology explanation and why ROOT isn't a crime
    This Android terminology dictionary will be growing in time. If you have any suggestions for terms to be included here, please leave a prope...
  • Stock system dumps for HTC One & HTC One X
    Last two days were very exciting for HTC community, especially for HTC One X users (Android 4.2.2 with HTC Sense 5.0 update described here )...
  • The Meenova Micro-SD Card Reader for Android
    A few months back I decided to pledge $12 US to a Kickstarter Project for a miniaturised USB card reader for Android smartphones . The idea ...
  • The official Nexus 5 press shot directly from Google
    It seems that the photo of the incoming Nexus 5 "leaked" to the web. Of course, I believe that nothing happens mistakenly, especia...
  • HTC One vs. Apple iPhone 5s - comparison: part 2
    The HTC One has received high praise in recent weeks, including the honors of smartphone of the year. For many, the One defines what a smart...

Categories

  • Announcement
  • Contest
  • Free-write
  • Guide
  • News
  • Review

Blog Archive

  • ▼  2013 (54)
    • ►  December (1)
    • ►  November (1)
    • ►  October (15)
    • ►  September (9)
    • ▼  August (7)
      • The Android ION Memory Manager
      • Is the Samsung Galaxy Note 3 worth upgrading from ...
      • HTC One review - part 2: Hardware
      • Stock system dumps for HTC One & HTC One X
      • HTC One X with Android 4.2.2 & HTC Sense 5.0 update
      • Do you want to write on Android Revolution HD blog?
      • New feature on xda-developers - "XDA: DevDB"
    • ►  June (4)
    • ►  May (1)
    • ►  April (1)
    • ►  March (6)
    • ►  February (3)
    • ►  January (6)
Powered by Blogger.

About Me

Unknown
View my complete profile