What Do Dalvik, AOSP, Deodexed, GAPPS and Other Common Android Terms Mean?

Ashish Mundhra

Android

I still remember the day when I first rooted and flashed a custom ROM on my Samsung Galaxy S. I was in college and was getting started with Android at that time. While flashing the device, I came across many new words and acronyms related to the Android ecosystem, of which I had no clue about back then. Over the years I made myself familiar with common Android jargons while writing about it, participating in the forums and reading about stuff.

This article is for all the new Android users out there who want something extra from their phones – to root it, flash it, and explore their limits. Knowing what these terms is useful, since most Android content is likely to use it in that form. It will help you understand things better next time you are following an article that talks about flashing ROMs.

So, here are some of the Android jargons you should know about.

ADB

ADB, short for “Android debug bridge”, is basically a command line tool that’s used to communicate with the Android device. Once you connect the Android device via USB cable and have the ADB installed, you can use the ADB commands to execute specific operations on the Android using your computer.

adb

For a normal end user, ADB is mostly used while flashing or rooting the device. It can also be used to push (transfer) any file from your computer to the Android as a root user.

AOSP

The Android Open Source Project, also known as AOSP, is basically Google’s Android Operating System in its purest form. These are the ROMS that are built from the Android open source code. The manufacturers like Samsung and HTC take up this source code and then modify it to create ROMS like Sense and TouchWiz that we use on their phones.

The AOSP ROMs are just about 200 to 300 MB in size, compared to Samsung and HTC ROMs, which can shoot up to a few GBs. Now while it might speed up your device by cutting down on all the bloatware, you could lose many cool things that the manufacturers designed the device for.

Bootloader

For simple understanding, the bootloader can be compared to the BIOS that we have on our computer. When you power on your Android phone, it’s the first thing that loads up. Thereafter, it can load either the recovery or the Kernel depending on your boot option. It then finally loads the ROM (Operating System) for a normal boot.

bootloader
Nexus Bootloader (Flickr)

A factory sealed device comes with a locked bootloader, which runs the official firmware on the device and is digitally signed by the manufacturer. So if you wish to run custom ROMs, you must first unlock the bootloader. However, unlocking the bootloader voids the warranty for most devices.

Dalvik

While flashing ROMs, you must have come across a step that asks you to clear the Dalvik Cache. Now to understand what exactly you do at this point, we must first understand what Dalvik is.

Dalvik is a Java based virtual machine that is the basis for running your programs. Just as APK applications run apps on your Android, Dalvik runs the code written in Java. To make things simple, Dalvik is a mobile friendly Java Virtual Machine that runs the Java code so it can function on your Android device.

Dalvik cache is just the cache that is maintained while executing the Java code. It’s always advisable to get rid of this cache to avoid any ambiguity while compiling the code after flashing a new ROM.

shutterstock_222414250c
Java, anyone? Image via Shutterstock.

Deodex

Deodexed ROMs have all the APK and OS files compiled and arranged under one umbrella called the classes.dex. This makes sure that all the code comes in one package. As all the code is available in one place, modification of these ROMs is very easy. Thus, Deodex is favored by almost all the custom ROM Developers out there.

However, all this code takes extra time to compile every time it has to be executed for the Dalvik VM.

GAPPS

Most of the times when you flash a custom ROM, the developers ask you to flash the GAPPS file after flashing the ROM file. The GAPPS file contains all the Google apps, including the market that would be installed as a system app for the device to function.

The phone will be able to boot without the Google Apps but there will be no Market, GPS tracking service, or even account and data sync.

google apps
Google Apps running on Android (Shutterstock)

Each version of Android has a different GAPPS file, so what you flash is provided by the developers. If you want to download them manually, the best way would be using the app Gapps Manager.

Kernel

The Kernel is not something that only Android devices have. Basically, it’s an underlying layer between the machine and the operating system. Be it Windows, Mac, or iOS, every one of them have a Kernel.

Android smartphones use a Linux Kernel. Each time the software has to communicate with the hardware, things have to go through the Kernel. From changing the volume on the phone, to making phone calls and getting cell reception, everything is communicated using a Kernel.

Kernel
Computer language source code (Shutterstock)

Different ROMs work on different Kernels depending upon their architecture. These Kernels control the hardware for the software. The best example to give here might be an OTG support. While you can plug in an OTG to any Android device, it will only get detected if the Kernel supports the feature. Therefore, there are few phones that support OTG while others have to flash a custom kernel to get the feature.

Odex

There are many technical ways to explain this, but as this article is meant for beginners, the easiest way to describe Odex files is that they are pre-compiled .dex files. These files are optimized and can be run directly by the Dalvik Virtual Machine.

Odex ROMs are optimized and thus take up less booting time. It’s very tough to modify these files as they are already compiled.

Conclusion

So these were some of the important terms you might come across while exploring forums regarding flashing and rooting your device. Hopefully, this will help you get a hang of the dev language when it comes to Android. If you come across any other terms not mentioned in the article, feel free to ask for an explanation in the comments below.

Also See
#Android apps#gtexplains

Join the newsletter

Ashish Mundhra

Written By

Ashish Mundhra

Ashish is a staff writer and video editor at Guiding Tech. He loves all things tech and has a soft corner for Android. Apart from contributing articles here, he also takes care of our YouTube Channel.