The Android Operating System


Welcome to Part 2 of this review of the Pluralsight course Android Beginner Series: Understanding Android by John Sonmez.

John is the founder of Simple Programmer, and the author of the best selling book Soft Skills.

He also hosts the GetUp and CODE podcast, where he talks about fitness for programmers. John is a life coach for software developers, and helps software engineers, programmers and other technical professionals boost their careers and live a more fulfilled life. He empowers them to accomplish their goals by making the complex simple.

The Android operating system

What is an OS?

John explains that an operating system communicates with hardware, provides services for Applications and manages software execution

The Gatekeeper

John uses the metaphor of a gatekeeper: it controls the access to the device’s resources.

We also learn about some of the responsibilities of an operating system:

– Program execution
– Listens to hardware (interrupts)
– Memory management
– Multitasking
– File access
– Networking
– Security
– User interface

Dissecting Android

Android is built on Linux. We see an image of the Android Architecture. The main sections are:

– Linux kernel
– Libraries
– Android Runtime
– Application Framework
– Applications

Linux kernel

John describes Android as an operating system within an operating system.

The linux kernel responsibilities include hardware drivers and power management

Low Level Libraries

These are written in C or C++. John gives some examples here.

Android Runtime

The Android Runtime contains the Dalvik Virtual Machine. It also includes the core Java libraries.

In Android we don’t have access to the full set of Java libraries, only a subset.

What Is a Virtual Machine?

John explains that VMware, VirtualBox and Virtual PC are all examples of virtual machines.
However those are for running another copy of an operating system on our computers.

There are also process virtual machines, also known as application virtual machines.
The Dalvik VM is an example of this. It virtualizes the operating system services.

We see that the virtual machine sits below the Applications and above the Operating System.

John describes the virtual machine as like a super application that can do almost anything.

Dalvik VM

John compares the Dalvik VM with Java’s Virtual Machine (JVM)

The Dalvik VM is optimised for mobile devices and runs one VM per application.

Application Framework

We begin with the Android Architecture diagram again, and in this clip we’re learning about the layer sitting above the Android Runtime and underneath the Applications

This is a set of Java libraries that define how Android applications work.
It gives us the tools and components we need for writing Android applications.

This framework gives us an abstraction that means we don’t (typically) need to understand how the low level C and C++ libraries work.
It is however still possible to work directly with the C and C++ libraries if we want to.


John explains that the standard apps that ship with the Android operating system are built the same tools that we have access to.

We can replace any of the Built In Apps with your own apps.

OS Versions

Each version of Android has a code name that is named after a snack treat:

John talks a bit about the notable features in each version and the version release dates.

For more details see the official Android Story

API Versions

API levels indicate changes to the Aplication Programming Interface.

Version Distributions

We see a chart showing the percentages of users on each version of Android. This is out of date.

For the latest distribution see Android Dashboards

OS capabilities

The modern day phone is a bit like a Swiss army knife – it can do almost anything

  • Phone
  • Camera
  • Multimedia
  • Sensors (e.g. Motion/Environmental/Position)
  • Networking
  • 2D – 3D Graphics
  • Data Storage
  • Multitasking

Accelerometers and Gyroscopes are examples of motion sensors

Android emulator

We can emulate real hardware using software.

The speed of emulators has increased significantly over the last couple of years. For example Intel’s Hardware Accelerated Execution Manager has given emulators a significant boost.

Part 3 – Anatomy Of An Android App is coming tomorrow

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s