
How to Get Better
Battery Life and
Performance on Your
Android Phone with a
New kernel
You may have heard about how flashing a
new ROM can improve your Android
experience, but flashing a new kernel is one
of the best ways to improve your phone's
performance, battery life, and even add
some saucy new features. Whether you
know anything about either, here's what
you need to know to make it happen.
What Is a Kernel?
A kernel in an operating system—in this
case Android—is the component
responsible for helping your applications
communicate with your hardware. It
manages the system resources,
communicates with external devices when
needed, and so on. Android uses a variation
of the Linux kernel. A kernel is not the
same as a ROM , even though you install
them in mostly the same way. A ROM is a
bit more all-encompassing. It's the
operating system you use on your phone,
the software your phone uses to get things
done—the kernel is the bridge between that
ROM and your hardware. All ROMs come
with a kernel installed, but you can install a
third-party one if you like—and that's what
this post is about.
What a New Kernel Can Do For Your
Phone
Flashing kernels isn't quite as talked about
as flashing ROMs, but it can do a ton for
your phone, namely in the way of battery
life and performance—though it can also
add extra features to your device, too. Here
are some things to look for when choosing a
new kernel.
Better Performance and Battery Life
This is the big change a new kernel can
bring to your device. I'd separate these into
two categories, but they're so intertwined
that you really need to consider both when
picking a kernel. There are a bunch of
different kernel features that contribute to
this:
Clock Speeds : In a very basic sense, higher
clock speeds will improve performance on
your phone. Flashing a new kernel allows
you to overclock your phone, using higher
clock speeds than the manufacturer
intended. They can also let you reach lower
clock speeds, so you can underclock your
phone when you aren't using it, thus saving
battery life. Your kernel will only give you
the option to do so, however; if you want to
overclock, you'll have to flash the kernel in
question and then use something like
SetCPU or CPU Tuner to tweak the clock
speed.
Voltage : Higher clock speeds use up more
battery on your phone because they require
more voltage. However, some ROMs come
with lower voltage limits, which means your
phone will run just as fast, but use up less
battery. Some will even overclock and
undervolt your phone, though all of this
comes at the expense of stability—if you
notice that your phone goes into a boot
loop, or reboots at random times, you'll
want to either lower your clock speed or
upgrade to a kernel with a higher voltage.
Some ROMS have further sub-categories in
this section, like Hybrid Adaptive Voltage
Scaling (HAVS), which can be better for
battery life (at the risk of stability) and
Static Voltage Scaling (SVS), which keeps
your phone at a steady voltage.
CPU Governors : Different kernels can
support different CPU Governers, which
manage the way your phone ramps up or
down its clock speeds as you use it. There
are a few different kinds you'll see,
including Conservative, which focuses on
battery life by ramping up your CPU very
gradually when needed; Interactive, which
focuses more on performance and
smoothness by scaling up the CPU faster;
InteractiveX, which is like Interactive but
scales the CPU down when your screen is off
(for better battery life); and Smartass, which
is similar to Conservative but takes more
factors into account when ramping up the
CPU.
Task Scheduler: Kernels come with two
different types of task schedulers: the
Completely Fair Scheduler (CFS) and the
Brain F**k Scheduler (BFS). CFS kernels are
designed for regular phone use, like texting,
web browsing, and otherwise multitasking
apps on your phone. Most stock kernels are
CFS kernels. BFS kernels focus more on
whatever app is in the foreground, which is
great for things like games but can be a bit
laggier and a bit less stable.
These are the biggest features, but kernel
developers add in all kinds of other tweaks
to their kernels when possible, whether its
introducing a more efficient file system,
making the RAM more efficient, and so on.
Again, they should list the tweaks in their
description, so read up on the kernels for
your specific device to learn more. I'd also
recommend checking out XDA user
mroneeyedboh's HTC Evo 4G kernel starter
guide , from which much of this information
comes.
Extra Features
Kernels can also add full features to your
phone, or fix other issues that the
manufacturer hasn't attended to yet. For
example, while a lot of phones support Wi-
Fi tethering out of the box, some—like the
Motorola Droid—don't. If you find your
phone isn't letting you tether using apps like
Wi-Fi Tether, you might need to flash a new
kernel that supports Wi-Fi tethering on
your device. Kernels for Samsung phones
can add support for a feature called
Backlight Notification (BLN), which, coupled
with an app, can turn your phone's buttons
into notification lights.
Keep an eye out for features you don't
want, too. For example, some HTC kernels
come with a feature called Superior Battery
Charging, or SBC, that can overcharge your
battery for better life—but is likely to
shorten your battery's life at best, or make
it unstable at worst. I'd avoid kernels with
this feature. You should also watch out for
kernels that disable certain features of your
phone—since some features are
manufacturer-specific, you won't be able to
get them in other ROMs or kernels. A good
example of this is HDMI support on the EVO
4G.
Again, just make sure you research all the
kernels available for your device, and know
what you're getting yourself into before you
flash. Most phones should have a large
forum thread somewhere on XDA or
RootzWiki that lists all the kernels available
for their device. Make sure you choose a
compatible one, too—the version of
Android you're running determines what
kernels you can use, so make sure you don't
flash a Sense kernel on an AOSP ROM (like
CyanogenMod), and make sure you don't
flash a Froyo kernel on a Gingerbread
phone—they won't play nicely together.
How to Flash a New Kernel
Once you've found a kernel you want to
flash, download it to your device. It should
be in ZIP format. Flashing a kernel is
almost exactly like flashing a new ROM .
You'll need to flash a new recovery to your
phone, like ClockworkMod, which you can
flash with ROM Manager . Put the ZIP file
on your phone's SD card, then start up ROM
Manager and go to "Install ROM from SD
Card". Choose the kernel's ZIP file and
continue. Note, however, that some kernels
require that you flash them through your
recovery mode instead of with ROM
Manager—so once again, do your due
diligence on its home page before you go a-
flashin'.
The main difference between flashing a
ROM and flashing a kernel is that you do
not want to wipe your data. Wipe the
Dalvik Cache only, and back up your ROM if
desired (I highly recommend doing so, in
case something goes wrong). Other than
that, you should be golden. If you haven't
flashed a ROM before, I recommend reading
up on that first—but if you're familiar with
that process, flashing a kernel shouldn't be
a big shock to the system.
Flashing a new kernel can sound pretty
dramatic, but it's actually quite simple—and
it's very easy to try out a bunch of different
kernels before settling on one. Whether
your preference is battery life, performance,
or extra features like color tinting, you have
a whole lot of choices to further tweak your
Android experience. Got any other kernel-
related wisdom to share, or have a favorite
kernel for your device that you can't live
without? Let's talk about it in the
comments.