Before you start reading, just know that this is not difficult to implement... it's easy.
Download a script. Load it. Select what you want. EASY.

But first, let me link to my method of calibrating the batterywithout downtime so you can use your phone normally and do it whenever it's convenient.
It definitely works on Milestone and it seems to work on Droid.
I think that's a pretty good trick, anyway - it may even work on other phones

========================================

Note:Do this at your own risk, regardless of how little risk there is - since I included UnSuperCharging
........ Well, do a nandroid anyway, if you like

Requirements:
1. Rooted Phone
2. Script Manager or Terminal Emulator to run the script. Stock ROMs can also use SM to load up boot scripts!
3. Busybox 1.18.2 OR LOWER - 1.18.3 or newer are VERY much a hassle with errors that should NOT be errors!

Installing/Using:

1. Download the attached V6_SuperCharger_for_Android.zip and extract the script to your sdcard.
... Do NOT run the V6 SuperCharger install script at boot!
2. Load the script (V6_SuperCharger_for_Android.sh) into Script Manager and select "Run as Root."
3. Touch the screen for the soft keyboard or slide out the keyboard and get SuperCharged! Just pick an option!
4. READthe script's output!
5. Afterwards, READthe html HELP FILE in the root of your SD Card!
6. Disable"Lock Home in Memory" if your ROM has this option.
7. Optional: For a quick status check, you can put a Script Manager widget for V6 SuperCharger on you desktop

If you are using compcache and have lag or slow down after SuperCharging,DISABLE compache, wipe caches and re-enable it.
Also make sure to uncheck/disable lock home in memory! (and leave it unchecked)

UPDATED July 21, 2011: - Update 8Improved codeTweaked Current Status functionality. It will tell you if your current and prior minfrees match but if you apply a setting, it won't update the "prior minfrees" with the values you just installed. It will update the prior minfrees the next time you run the script.

UPDATED July 16, 2011: - Update 6Added Second MegaRAM device setting.Added installation to system option - for easy use with Terminal Emulator!Added UnSuperCharger verificationImproved status checker. It can sometimes determine if home is locked in memory! If not, it asks you if it is.Saves SuperCharger settings! - They are displayed on the main menu if they exist.Saves Cust-OOM settings! - Cust-OOM settings get added to the menu!Smart Cust-OOMizer - Just try it Improved the code some more. It's smarter than ever Improved messages to user. Clearer instructions and errors are given!Final attempt to get this to load on boot. Custom ROMs will now get the /data/userinit.sh and /data/99SuperCharger.sh files.Easily cook into your rom! Just change the variable (rcpath=) on line 120 to the path of your *rc file!1224 lines of code!

UPDATED June 29, 2011: - Update 5Removed 2 minute delay from userinit.sh. Sorry, I didn't know that it would pause the boot process on some phones/roms

UPDATED June 26, 2011: - Update 4Fixed issue with error check - commented it out as it would stop the script dead on some roms Improved Status Checker some moreImproved the code. The script is much smarter, cleaner and efficient (no more temp files)1001 lines of code!

UPDATED June 25, 2011: - Update 3 -PULLEDAddederror check that exits script on any errorTweaked OOM groupings/priorities (Froyo is the same as always, Gingerbread now takes into account Perceptible App)Improved Status CheckerReReFixed!?userinit.sh now used as a launcher for 99SuperCharger - with a 2 minute delay! (This boot script fix HAS to work )Fixed sysctl error on some phone configurations

UPDATED June 20, 2011: - Update 2Added User Selectable Scrolling Speed!Fixed a couple of weird issues that some people had in yesterday's update ReFixed? Still trying to get the 99SuperCharger boot script to load automatically for everybody... grrrrr...

- For newer phones with lots of ram, use the 3rd slot to set how much free ram you want.

- If you have /system/etc/rootfs/init.mapphone_umts.rc, it makes a backup and edits that single file. This is nice and tidy.
... Thank to kabaldan for pointing out the importance of certain things.

- Most Custom ROMs - If you have a /system/etc/init.d folder, it creates 99SuperCharger in there and edits /data/local.prop (20 entries added for adjusting priorities and groupings). You shouldn't need to configure anything else.

- Stock ROMs - If you have neither, it creates /data/99SuperCharger.sh which you can load up on boot (run as root) with Script Manager. The OOM groupings work as well since it happens on boot in local.prop (20 entries added)

Note: For some reason, the minfree levels do not stick on some Custom ROMs. I don't know why this is. Maybe a bug in GingerBread?
........ If this happens to you, use Script Manager to load /system/etc/init.d/99SuperCharger"on boot" and "run as root"

In case of any error, you will find a related help file in the root of your SD card.
So... I think this covers ANY Android ROM

It also determines if you're using Script Manager and gives appropriate information/tips/help files depending on what other factors are present.

The above is really ALL YOU NEED TO KNOW.The V6 SuperCharger script does everything!

Anything below is extra info!

It's just a single file... 806 lines (807 if you count the blank line at the end LOL)

So... What's it do?

It makes your phone FAST... super snappy with better multitasking!

If you read between the red lines below (History Parts 1-3), you'll see that at first it was only about minfrees and launcher redraw.
But after installing GingerBread, I saw that it needed more work than Froyo LOL.
Groupings were ALL MESSED UP and made NO SENSE to me whatsoever...

So I figured out how to group them more like CM6 (Froyo) but that still wasn't good enough...

I further rearranged the OOM Groupings and Priorites and lowmemorykiller values for a...COMPLETE MEMORY MANAGEMENT FIX!

That's basically what this is

Faster than ever, no launcher redraws, multitasking is better... why?
Because it works with the lowmemorykiller and letting it work the way it's meant to work.

Also, because of the rearrangement, it works the same on all roms!
The problem with using minfree tweakers like AMM or AKMO is that it doesn't work the same on all roms.
Secondary apps may be in slot 3 on some roms but in slot 5 in others!
That's why you hear people comment "I tried AKMO but it didn't do anything..."
Most likely it didn't do anything because the apps weren't sitting where they were expected to be.

Upon installation, V6 SuperCharger will first clean up any previous supercharging so none of your files get cluttered.
But if you toggle between Hard To Kill and BulletProof launchers, the memory adjustments aren't affected.

So you can leave your minfrees at stock/default settings and apply the Hard To Kill Launcher and still get the OOM Grouping/Priority fixes.

So if you love your ROMs memory settings, just try the HTK Launcher/OOM Fix... you won't regret it

It's pretty awesome

Here are some snaps....

Before...
After...
During....

Say Buh Bye to AKMO or any app that has to load on start up to change minfrees...

So did you notice the difference in groupings?

By default, CM7 has nearly all the apps in slot 5 and the launcher in slot 3.
Slightly aggressive settings will kill any chance of multitasking in that situation.

After SuperCharging, the apps get moved to slot 3 while the launcher is in slot 2 but the most important item in slot 2.

I've read, "oh you don't need to run any scripts for memory management..."
Well that's not true.
Playing with minfree values is one thing... it's playing with minfree levels... it's not really memory management...

Look at the pics above... now THAT'smemory management...

If you look below the red line... that's how it all started... good background info in case you're wondering what the hell I'm talking about.

So whatever is between the red lines, don't worry if you don't understand it... the script does everything!

These are NOT taskillers! (And neither is my SuperCharger)
They tweak Android's native memory management system by editing /sys/module/lowmemorykiller/parameters/minfree
This is a "dynamic" file that gets created on boot.
There is an in-depth thread that you can read right here on XDA: How to configure Android's *internal* taskkiller

Android puts each running app into 1 of 6 Out Of Memory (OOM) groups based on their priority.
FOREGROUND_APP, VISIBLE_APP, SECONDARY_SERVER, HIDDEN_APP, CONTENT_PROVIDER, and EMPTY_APP.

Additional Info: You can find each app's priority and OOM.
....................... In AMM, Press Menu > Running Processes > Group by OOM grouping.
....................... Expand each group and see what apps are included and each app's priority level. (Higher numbers get killed first!)
....................... If you tap on an app, you can get additional info. Tip: Check and see what's included with android.process.acore

The default minfree values ("kill thresholds") for each OOM group are, as far as I can tell: 6, 8, 16, 20, 22 and 24 mb. (CyanogenMod 6.1.2)
This means that: when free memory lowers to 24 mb,EMPTY_APPS get killed; at 22 mb free ram,CONTENT_PROVIDER apps get killed; and so on...

Now, because the Milestone has only 256 mb of memory, I found these numbers too low, especially the 3rd one.
Basically, with those settings, you will usually be sitting with only 20 - 25 mb of ram.
Possibly less. Basically, it's the 3rd number (16) + 5. That's your free memory.
And my phone just chokes when it has that little ram available. Lag, home screen redrawing, the launcher getting killed.... ugh....

After extensive fiddling around, I've come to the conclusion that setting the third slot to about 25mb works great.
No home screen redraws while not being too aggressive on secondary/background apps while having about 30-35mb free all the time

BTW, free ram is not wasted. Android will use that memory to cache the file system and this speeds things up. See this informative post.

My other key settings were:
VM Heap Size = 48 mb.
Home Locked in Memory (not anymore due to my OOM Grouping Fix)
JIT enabled - You can try it on or off and decide what you like better (JIT uses some extra memory but makes the CPU more efficient)
Overclocked to 1100mhz@64 vsel.

About VM Heap size. 40 mb should be enough.
Actually, to prevent your launcher from splitting into 2 virtual machines, you should make it at around 40 mb.
I'm no expert about it, but that is the experience of others. (I've never tried it at 32 mb or below )

History Part 2. How To Control Your Launcher Redraws by Making It Bulletproof!

Most of you know about CM's "Lock Home In Memory" setting and how we would still get screen redraws after enabling it.
My suggested AMM settings above should be enough prevent that. You should hardly ever get screen redraws anymore.
But some people were still getting them.

I tried increasing the appropriate priority (for android.process.acore - which includes com.android.launcher) in AMM but the setting wouldn't "stick"
Android would revert it back to where it was - in the Visible App group with a priority of 1.
I had seen how foreground apps had a priority of 0 or -12 or -16 and I came up with a permanent solution - "The Bulletproof Launcher"

Here's how you can have a Bulletproof Launcher!

The line "ro.HOME_APP_ADJ=1" in /data/local.prop also keeps home in memory - it has the same effect as CM's "Lock Home In Memory".
So in light of what I was seeing in AMM, I have changed it to 0 so it now reads:ro.HOME_APP_ADJ=0(blank line)

Note: If there isn't a blank line at the end, the ro.HOME_APP_ADJ entry gets deleted.

If you do this and reboot, AMM may still show that android.process.acore (or whereever your launcher is) with a priority of 1
If that's the case, disabled CM's setting to lock home in memory.
Now, if you go back to AMM, you should see that android.process.acore is now a foreground app with a priority of 0... BOOYA!

Notes: Obviously, CM's "Lock Home In Memory" overrides the setting in local.prop.
.......... CM will set the priority back to 1 after local.prop gives a priority of 0.
.......... That's why CM's setting has to be disabled - so that the local.prop setting will "stick"
.......... Gaming Tip - You can use CM's lock home in memory as a "Safety Lock" - to toggle your launcher from Bulletproof (0) to Killable (1)
............................. If having problems with a game, put the "Safety Lock" on so the launcher is "killable" so android can free up some extra ram.

Note that BulletProofing is NO LONGER RECOMMENDED! The Hard To Kill Launcher is the PERFECT SOLUTION!

Notes: Minfree changes take effect immediately!
.......... This means you can switch from Balanced settings to Gaming and back again without rebooting!
.......... Switching between Hard To Kill and BulletProof Launchers require a reboot to take effect.
.......... Disable your OS's "Lock Home in Memory" option, if it has it. This takes effect immediately.
.......... Or use "Lock Home in Memory" as a "Saftey Lock" - to toggle your launcher from "Bulletproof" (0) or HTK (1) to "Weak" (2)
.......... Note: "Lock Home in Memory" is not 1 with my OOM Grouping/Priority Fixes

Cool Tip: Sometimes it's difficult to keep a wanted background app alive, such as an SMS app.
............. If you're in this situation, check out how to Bulletproof Background Apps!

Remember: When using scripts, use the SuperUser app to DISABLE SuperUser permissions for AMM!
................. It can still monitor your OOM groupings but it can't change your custom settings on boot.
................. If you have AKMO installed, disable it's option to Apply Settings at Boot!

If you are using compcache and have lag or slow down after SuperCharging,DISABLE compache, wipe caches and re-enable it.
Also make sure to uncheck/disable lock home in memory! (and leave it unchecked)

Ran this script on Cyanogen 7.0.3, but I didn't see much improvement. Ran this script on Liquid and my D1 has some serious zip!!! I was even running a 900 Mhz kernel on Cyanogen and now am running a 800 Mhz kernel on Liquid. The speed increase is absolutely unbelievable.

Useful Searches

About DroidForums.net

DroidForums.net was founded in 2009 originally dedicated for the Motorola Droid, the first Verizon Android Phone. We have since expanded our community to cover all Android Phones, Android Tablets, and Android Wearables. We discuss various topics including Android Help, Android Device Reviews, Android Apps, Phone Accessories, Android Games and more. Our ultimate goal is to be the Internet's best and largest Android Forum.