The Long, Slow Push to Make Phones Boot Faster

The Long, Slow Push to Make Phones Boot Faster

If you booted the original HTC Dream or Samsung Galaxy today, you might feel that it was stuck in a boot loop. Back in the day, Android phones would take a minute or two to start up after a shutdown. Today, phones take seconds to boot up. Let me share the fascinating and clever ways phone makers managed that.

Phones Used to Take Minutes to Boot Up

About 12 or 15 years ago, even flagship phones like the Nexus One or Samsung Galaxy S took about 45–120 seconds to fully boot from a cold start (after removing the battery or a full shutdown). Even after reaching the home screen, the app icons would take their sweet time to pop up. You’d feel a lag if you tried to interact with the screen before that.

That’s still faster than the cheaper phones of those days, when cold boots commonly took around 120 seconds. Sometimes they would just get stuck in the boot animation, and you had to take the battery out and reboot it just to fix that.

Today, the latest Samsung Galaxy Ultra takes less than 10 seconds to boot, and once you reach the main screen, it’s fully usable without any lag. Older phones naturally had lower resources to work with, often a few hundred megabytes of RAM and underpowered processors. That’s partly why they took so long to boot, but the Android’s boot system itself was poorly designed and optimized.

The first piece of code that runs on a machine when you press the power button is the bootloader. The bootloader is responsible for checking the hardware and loading a “compressed” version of the operating system into memory. The compressed version has to be decompressed before it’s loaded.

Once the bootloader has unpacked the operating system, it starts up some basic functionality like hardware drivers. The full OS hasn’t loaded yet. This is just the kernel—a sort of foundation on top of which the full operating system sits. Throughout this whole process, older versions of Android were constantly logged for errors, which slowed things down further.

Next comes the user space (where all regular apps and services run), launched by init.rc files, which are just a list of programs that need to be loaded. Android version 1 and version 2 had huge init.rc files that launched programs that didn’t even need to boot and worse, those older versions loaded these programs one by one.

Apple Took a Different Road

The Android operating system has to run on all kinds of hardware and form factors, so it doesn’t have the control that Apple does on the iPhone. Apple controls the full stack (from hardware to software and everything in between the two), so it can design and optimize for the specific hardware the OS will run on.

Even in the early versions of the iPhone, the boot times were way faster than Android phones. The original iPhone could boot in under 30 seconds, and modern iPhones are even quicker.

Modern Boot Optimizations Cut the Time to Seconds

Android’s original boot process had several bottlenecks, like we just saw.

With Android Jellybean (version 4), Android introduced a Bootchart feature, which allowed developers to visualize the boot process and find those bottlenecks. They used those clues to trim verbose logging to log only critical errors. Bootchart also helped reprioritize the startup services. Those non-essential programs were delayed to save boot time. Some were just left out entirely. For example, instead of loading every driver, the OS only loaded drivers for the available hardware.

Android Jelly Bean mascot

Remember those init configuration files that loaded programs one by one? Android Lollipop (version 5) would let those programs load in parallel, not sequentially. That also saved some time. By then, Google had also introduced the new Material UI design built on a new graphics stack. It made the phone more responsive directly after cold restarts.

android lollipop Credit: Android

Starting with Android Oreo (version 8), the operating system switched to a faster decompression algorithm (LZ4), which allowed the bootloader to unpack the kernel faster. The boot animation was also optimized, along with a few other improvements to the boot process. Google said Android Oreo boots twice as fast as version 7.

OEM Skins and Bloat Can Slow Things Down

Android 15 takes about 12–15 seconds to boot, as does Android 14, at least on Pixel devices. Modern versions of Android don’t cold boot unless the system fully shuts down (for example, when the battery drains to 0%). If you hold down the power button just to restart the phone, it’ll be up and responsive 50% faster than a cold boot. That’s because they save the system state in memory, so the operating system doesn’t have to fully re-initialize on a reboot.

Samsung One UI & Google Pixel UI

That’s all true for stock or near stock Android, but for most of us, OEMs heavily modify Android with custom skins and preinstalled services. These bloatware programs typically don’t start in a parallel way like stock services do, so it adds time to the boot process.


Android has finally caught up with the iPhone in terms of boot speed. If a brand-new phone is taking longer than 20 seconds to boot, it’s probably because of the bloatware bogging things down.

Source link

Visited 2 times, 1 visit(s) today

Leave a Reply

Your email address will not be published. Required fields are marked *