What is Android?
How rich would I be if I had a penny for every time someone asked me this question! Believe me, it’s not a joke. In fact, that’s how the idea for this particular post was conceived. Today, I will try to answer some very important questions that come to mind when we think what is Android. In fact, I have already discussed most of these questions in separate posts, but a quick recapitulation won’t hurt, right!
Android is a Linux-based operating system designed primarily for touchscreen mobile devices; such as smartphones and tablet computers. The first Android-powered phone was sold in October 2008.
If you wish to learn about Android, and ultimately develop Android applications, it is very important for you to understand the entire ecosystem of Android. Who are the stakeholders of this ecosystem? The following image would tell you a little bit about that!
The very obvious stakeholders are the consumers that own Android devices, right! But there are others as well:
- Google, because it develops Android.
- OEMs (Original Equipment Manufacturers), who manufacture the hardware, and also the custom application components.
- Application Development Companies: They are the biggest contributors to the ecosystem. They employ Android developers, and also outsource the product development to services companies.
- Freelance Android developers, because they have the skill-set to contribute to the ecosystem. They create their apps, and publish them on Google playstore. Freelancers can also make money by developing applications for product companies.
History of Android
Android has no doubt garnered a lot of attention now, and for all the right reasons. However, not too long ago, the ‘world’s most popular mobile platform’ was shrouded in anonymity.
Android, Inc. was founded in Palo Alto, California in October 2003 by Andy Rubin, Rich Miner, Nick Sears and Chris White.
The first android phone was HTC G1. Andy Rubin and his team were very excited about the first prototype of phone by Motorola and when it was brought in front of them this was their reaction: “It looked like a weapon. It was so sharp and jagged and full of hard lines. It looked like you could cut yourself on the edges”. Clearly, they were expecting something else.
Google acquired Android Inc. on August 17, 2005, making it a wholly owned subsidiary. As the development advanced, Google marketed the platform to handset makers, promising them a smarter, more flexible and customizable system.
Android Evolution: Cupcakes and Jellybeans
The initial two versions were named simply enough (Android 1.0 and 1.1), but with the release of the next version (1.5 Cupcake), the smartphone market was hit by a ‘dessert’ storm 🙂 (okay, another awful pun). Following are the versions released since. (Android 1.5 Cupcake, Android 1.6 Donut, Android 2.0/2.1 Eclair, Android 2.2.x Froyo, Android 2.3.x Gingerbread, Android 3.x Honeycomb, Android 4.0.x Ice Cream Sandwich, Jelly-bean, Kitkat and Lollipop!)
What is Android Run-time?
Android Runtime consists of Dalvik Virtual machine and Core Java libraries.
Dalvik Virtual Machine
DVM is optimized for low processing power and low memory environments. Unlike JVM, the Dalvik Virtual Machine doesn’t run .class files, instead it runs .dex files.
As shown in the above figure, Java source code is first converted into Java byte code and then into Dalvik byte code using dex compiler.
What is Android Architecture?
The Android OS is a software stack of different layers, in which each layer is a group of some program components. It includes operating system, middleware and important applications. Each layer in the architecture provides different services to the layer just above it.
Following are the different layers in the Android stack:
- Linux Kernel Layer
- Native Layer
- Application Framework Layer
- Applications layer
What is Android Activity?
Activity provides the user a screen ‘or’ interface to interact with the application.
Each screen of an application is a different activity (Yes, every application has multiple). You can understand this using the following image: The first Activity (screen) has a button, which when clicked leads the user to a second screen, which is the second activity.
What is Android Intent?
Intent is a message to communicate an action. It is a description of what you want done, example: VIEW VIDEO, PLAY GAME etc.
They are commands which when called would act as communicators between the three core components of Android, i.e. Activities, Services and Broadcast Receivers.
While you are interacting with one activity, you might want to switch to another one; this is done by defining a proper Intent for the action. Here one Activity uses Intent to request the launch of another Activity. Thus, it is evident that using intents, one Android component can request action from the other components of Android.
1) Services are often called ‘faceless components’ of Android because they lack a user interface. Unlike activities, they run in the background.
2) They carry out long-running tasks desired by the application (without user intervention), like the background music in your Android application.
3) Services have specific jobs, and they are unaffected by activity switching. Even if you switch to a different application screen, they would continue to run.
4) They provide functionality to other applications.
5) Example of Service: A good example is your music player.
What is Android Content Provider?
Content providers manage access to a structured set of data. They encapsulate the data, and provide mechanisms for defining data security. Content provider is the standard interface that connects data in one process with code running in another process.
This simple example would help you understand Content Provider
Your Facebook Wall is an “ACTIVITY”. As you click on the Photo Button, an “INTENT” is passed, that conveys the message and the “CONTENT PROVIDER” (Photo Gallery) opens. The photo is uploaded using a network upload “SERVICE”.
What are Broadcast Receivers?
Using a Broadcast Receiver, applications can register for a particular event. Once the event occurs, the system will notify all the registered applications.
What is Android Listener?
Android Listeners are used to capture events. When, for instance, the user interacts with the Android system by clicking on a button, the Listeners would prompt the underlying activity to do the task associated with the button click.
5 Reasons to learn Android Development
Let’s face it, mobile applications are in demand, and will continue to be so! The modern consumer wants much more from his phone than ever before. Professionals want instant access to all their business documents, planners, emails and whatnot, and larger devices seem bulky and restraining.
Plain and simple, people from all over are fast switching from their laptops and notebooks to smartphones. This explains the growing need for Mobile Application developers.
Here’s why you should learn Android Development:
- Growing popularity of mobile applications. No doubt, Android is leading among them.
- Indian Mobile Applications Market is on a rise.
- Skillsets required for developers seeking Android jobs are very basic, so you can give it a go even if you are not an expert.
- Salary standards in India for application developers are good.
- Android Jobs for skillsets other than developers are also present.
Creating another simple game application would help you hone your new-found skills, won’t it! So, what are you waiting for, read this article to get started, and download the code for the application. It is a video tutorial explaining the steps to create a Blackjack Application.
If you were able to create the drawing brush and Blackjack Applications, you are on the right track.
I assure you now that you are ready for more advanced concepts (of course, I am supposing that you have gone through all the articles and videos linked to).
Android powered Universal Remote Control
You won’t believe the kind of applications you can create using Android. For instance, our student Sujit created an awesome application that converted his Android powered handset into an ‘almost’ universal remote control.
Great isn’t it! Don’t worry; soon you too would be creating applications as cool as that. Stay tuned for more tutorials about Android development.