[Galaxy S I9000 Android Development] slaid480:
REF!

This Thread is reserved for sharing information about Scripts in Android and how they Tweak the Android system through the Linux kernel and what are requirements of Running Scripts correctly!

Main Goal of Scripts:

Well,Scripts Has a lot of Goals,Such as optimizing,improving and in Some Lines we can say,Scripts can:

-Improve Performance and GUI Smoothness

-Improve Battery Life

-Tweak and Optimize the Android engine!

Requirements of using Some Scripts:

Since Android is Based on Linux,there is a possibility to use Linux Scripts to attempt the Goals Listed before in the thread,and like any Tweak you want to Apply there is some requirements you need to Use correctly those Scripts and some of the mportanst are :

-Custom Kernel that support init.d(Custom Kernel=Modified Linux kernel,for example in GALAXY ACE Forums here we have:CF-Root-All CM kernels,etc...)

-Having ClockWorkMod 5 or above to Flash Scripts

-at Least 2 MB free in /system

-Root Access(BusyBox should be included)

Useful Info About Tweaks:

-

LMK

(LowMemoryKiller):

The LowMemoryKiller is a constant debate between more free RAM and more multitasking capabilities as free RAM (more than 60MB free) is actually wasted RAM.

The LowMemoryKiller is actually a feature in the Android OS for better memory management.

This is an important feature due to the perennial problem of having low free memory causing lagginess and slowness in launching apps. When you have free memory lingering around the number of 40MB or less, the Android OS just lags like hell.

What this would mean is, you would want to tweak the LMK to not have the situation of it having less than 40MB (or even close to that).

The modern Linux machine in the Android ecosystem relies on a mechanism called Low Memory Killer (LMK) to consistently free up RAM. This is due to Android's internal mechanism of caching apps (and never fully exiting them) when you press the back button. This is to enable faster app switching and provide a seamless experience for apps usage model. Android also, by itself will also constantly look for often used apps to cache them for faster app opening. This will happen even before your system fully boots.

Now, when you mention LMK, the most obvious thoughts that come up are minfrees and Out Of Memory (OOM) groupings. Yes, those two are integral parts when it comes to LMK. The issue here is that no one actually mentioned that there are two LMK systems in Android, that being:

- Linux LMK

- Android Dalvik VM LMK

Journaling/Barriers:

This has been a touchy subject here in XDA for most people who debate about it. Most recently,Some Scripts included a way to disable journaling on these partitions:

/system (System is read only, it's safe to remove journaling. However, you will not see speed increase by removing it as you're not writing onto /system 99.99% of the time unless you're using Titanium backup to remove system apps or copying init.d scripts to it)

/cache (Cache can be rebuilt on the fly. Data corruption on it is not game breaking)

/data (All of your data on your phone is here. Removing journaling can risk data corruption. Read more below)

On whether we need journaling or not, I will pose this situation:

Journaling is required to maintain data consistency in events that could lead to data corruption. Data could get corrupted in a number of situations:

- Misbehaving app that constantly writes without syncing/committing data to the disk

- Power loss due to forced reboots or bootloops when data is partially written/committed into disk

Memory Leaks

If you found out that your Android is laggy after sometime and a reboot will make it faster, then you're experiencing memory leaks. "free" is a command to show your currently free memory. It will not necessarily be the same value as your phone's free memory.

Busybox

Well,Busybox is required to perform all of your superuser activities in your android phone. There are some problems associated with this when ROM developers decide to use a certain version of Busybox that are incompatible with the binaries that we use in our phones. When you found out that after changing your kernel/ROM:

- You still have superuser and Titanium Backup still works but, Root Explorer/File Expert can't copy files correctly to the /system after mounting R/W!!

MinFree:

Minfree is part of the Kernel (present on both Gingerbread and Ice Cream Sandwich) and It an Option available in Linux kernel Optimized for Android to Improve MultiTasking and It differs from a Phone to another because of the RAM available in users space.

The Minfree is hopefully adjustable Like the LMK to optimize Multitasking to a lot of options(like:aggressive,gaming,balanced,etc...)

The Minfree Option can be Found as a part of Linux Scripts for better RAM management!

Network Tweaks:

Well,in Linux Scripts for Android you can find some Tweaks that increase the speed of you Network Download/Upload and those with various types of Netwoks Like 3G,Wi-Fi,etc...

Build.Prop Tweaks

Well,those Tweaks can generally be found in Build.prop in /system and they are for various improvements Such as allowing Phone to Sleep better,changing wi-fi scan interval,changing window animation delay,some network Tweaks,possibility to change density,etc...

SD Card Speed Fix:

This is a Tweaks that Has the goal of increasing the read-ahead speed of your SD Card,and that by changing the valories of SD card readahead Like:

-256kb

-512kb

-2048kb

-4096kb

Smoothness Tweaks

Well with the Linux Kernel there is a possibility to add some Tweaks to the Linux scripts and those to optimize the GUI Smoothness and also Lock Home launcher in Memory!!

Credits

:

Well,what I can say is that I shared those useful Info after some research and my experience with Linux/Unix,and those some of My main Target that I use to find some of the useful info:

-XDA Forums

-Goolge