Saturday, May 19, 2012

Increase RAM using Swap File and Swap Partition

WARNING: This mod may degrade SD card life.
What you need:
  • MiniTool Partition Wizard for SD Card Partitioning
  • A MicroSD HC 4GB or higher class 6 or class 10
  • MicroSD HC Card Adapter
  • A card reader (if your pc doesn't have card reader built in | USB Mount is not adviseable)
  • Swapper2 from Google Play Store [DOWNLOAD]
  • ADB Shell or terminal Emulator (to check if swap is activated)
  • Make sure you have BusyBox installed
Before we start, lets do some reading . . .


What is RAM
Random Access Memory (RAM) is temporary data storage that the CPU uses during calculations. The more RAM a device has, the more calculated results the CPU can store - which means less time the CPU has to do the same thing over and over again. In other words, the CPU can check RAM to see if it has already made a particular calculation in the recent past. If it has, it can use the pre-computed results instead of wasting processing time recomputing the same calculation. In short, more RAM means a more efficient (and faster) device. 
What is SWAP
Swap is, in short, virtual RAM. With swap, a small portion of the hard drive is set aside and used like RAM. The computer will attempt to keep as much information as possible in RAM until the RAM is full. At that point, the computer will begin moving inactive blocks of memory (called pages) to the hard disk, freeing up RAM for active processes. If one of the pages on the hard disk needs to be accessed again, it will be moved back into RAM, and a different inactive page in RAM will be moved onto the hard disk ('swapped'). The trade off is disks and SD cards are considerably slower than physical RAM, so when something needs to be swapped, there is a noticeable performance hit.
Unlike traditional swap, Android's Memory Manager kills inactive processes to free up memory. Android signals to the process, then the process will usually write out a small bit of specific information about its state (for example, Google Maps may write out the map view coordinates; Browser might write the URL of the page being viewed) and then the process exits. When you next access that application, it is restarted: the application is loaded from storage, and retrieves the state information that it saved when it last closed. In some applications, this makes it seem as if the application never closed at all. This is not much different from traditional swap, except that Android apps are specially programed to write out very specific information, making Android's Memory Manager more efficient that swap. 
Step by Step Guide
How to create Swap Partition
Using MiniTool Partition Wizard
  • Plug in you MicroSD HC Card to your computer using the card adapter. (Do not use USB Mount)
  • Open MiniTool Partition Wizard and look for the card
  • Right Click on it and select Delete Partition
  • Click on Apply to Delete the Partition
  • Right Click on it again and select Create Partition
Set the partitions as follows:
1st partition:
Label: Android-SD
Create as: Primary
File System: Fat32
Partition size: as much as you want! 
2nd partition:
Label: Android-EXT3 (2nd partition is for EXT which you can use for A2SD or Link2SD)
Create as: Primary
File System: EXT3 (be it a custom kernel or ROM with EXT4 support, use EXT3 still -play safe! )
Partition size: MIN: 256 MB MAX: 1024MB (1GB)
3rd partition:
Label: (do not put anything)
Create as: Primary
File System: Linux Swap
Partition size: MIN: 32MB MAX: 1024MB(1GB) RECOMMENDED: 256MB
  • After creating partitions, click Apply to apply changes.
Using ClockWorkMod
  • Reboot to Recovery
  • Go to Advanced and Debugging
  • Select partition SD card and select the partition size that delights you
How to use Swap
For us to be able to use swap file or swap partition, we need to use Swapper2 which you can get from Google Play.
  • Download and Install Swapper2 (of course)
  • After installing, open Swapper2 and navigate to Menu > Settings
Swapper preferences: (for kernels that doesn't have swap partition support)
  • Run swapper at startup (put a check)
  • Swap place: /sd card/swapfile.swp (you can place it in a folder if you don't like a messy sd card structure )
  • Swap size: MIN: 10 MB MAX: 256MB RECOMMENDED: 32MB (choose any)
  • Swapiness: RECOMMENDED: 10MB SYSTEM DEFAULT: 60MB MAX: 100MB (choose any)
  • Safe unmount (put a check)
  • Safe remount (put a check)
Advanced preferences: (for Kernels that supports swap partition only)
Use swap partition (put a check)
Swap partition: /dev/block/mmcblk0p2
  • After setting preferences, press back and tap on "ON" to turn on swap. Reboot afterwards
How can I tell if swap is running?
Go to the terminal emulator - or open adb shell - and run 'free'.
If it looks like this (with zeros in the swap line), you do not have swap:
If it looks like this (with anything other than zeros in the swap line), you do have swap:
You need to turn off swap before you mount SD via USB, if you don't you will not be able to mount sd as swapfile is active and set to read only which will deny request to mount USB Storage.
ALL THANKS TOCarlDeanCatabay for this great guide.


Post a Comment