Design of Android: Android, under the hood, is a series of components working together to make the system work. Each component in the system is self-contained and focuses on performing whatever task it was designed to do.
Each component focuses on security measures for itself and assumes that every other component is also doing the same.
In addition, in a normal installation, only a very small portion of the Android OS ever runs with root access, this being the kernel, and everything else runs with less access and in an application sandbox to further isolate and protect each application.
Design of Android – Security
NOTE: – Sandboxing is a common technique used in application development, and its’ very effective at providing security, stability, and isolation.
Sandboxing, as the name implies, limits and application or environment’s access to a specific portion of the system, essentially creating its own “sandbox” to work in.
Sandboxing is not limited to a specific platform or technology; rather, it is a concept encountered in many areas implemented in different ways, in technologies such as Java, Android, and web browsers.
So what are the basics components of the Android OS?
- Device Hardware—Android runs on a wide range of hardware configuration including Smartphones, tablets, and set-top boxes.
keep in mind that this list of hardware is very short and can be extended substantially to include other devices such as smartwatches.
- Android Operating System-–The core operating system is built on top of the Linux Kernel.
All devices resources, like camera functions, GPS data, Bluetooth functions, telephony functions, network connections, and the like are accessed through the operating system.
- Android Application runtime-–Android applications are most often written in the Java programming language and run in the Dalvik virtual machine.
In android 4.4 and higher, a faster replacement for Dalvik was introduced known as the Android runtime (ART).
In Android 5.0 and above, ART completely replaces Dalvik.
- Android applications extend the core Android operating system. There are two primary sources for applications:
- Preinstalled Applications—These are applications that come prepackaged with the Android OS.
These applications include things like Gmail, Calender, and others.
These do not include the bloatware that comes preinstalled from a vendor such as AT&T or Verizon.
- User-Installed Applications—Android provides an open development environment supporting any third-party application. Google play offers users hundreds of thousands of applications.
- Google provides a set of cloud-based services that are available to any compatible Android device. The primary services are these:
- Google play is a collection of services that allow users to discover, install, and purchase applications from their Android device or the web. Google play make it easy for developers to reach Android users and potential customers.
Google Play also provides community review, application license verification, application security scanning, and other security services.
- Android updates delivers new capabilities and security updates to Android devices, including updates through the web or over the air (OTA).
- Application services include framework that allow Android applications to use cloud capabilities such as backing up application data and settings and cloud-to-device messaging (C2DM) for push messaging.
In practice Android has proven to be flexible, open, adaptable, portable, and highly stable as well as extremely customizable.
Real World Scenario
An Army of Androids
Because Android is so customizable and is open source, it has seen a huge number of tweaks, much like the Linux operating system it is derived from. These range from tweaks to the OS itself to entirely new versions of the OS.
The Android community of developers and enthusiasts has actually created numerous custom versions of Android that span the range of options.
Don’t like stock Android because you find it too slow? No worries; wipe your device and install SlimROM, an extremely stripped-down version of Android that’s small, fast, and very functional.
Want to go with something a little fancier? Try the Android Open Kang Project (AOKP), which looks like standard Android but is customizable.
Want something highly configurable?
Try Paranoid Android or CyanogenMod for your needs, or go to a site such as www.xda-developers.com, which is a community of Android developers, for help.
These are just a few of the options available. If you want to really tweak and adjust or just do whatever you want in the OS. You can certainly find a version that allow it.