In this article, we will cover:
- History: The Birth of Android
- Introduction: What is Android?
- The Logo
- Android’s Codenames
- Android System’s Architecture
- Linux Kernels
- Android Libraries
- Android Runtimes
- Applications of Android
- Learn Android app development and build your own app
History: The Birth of Android
Android vs iPhone debates has existed on chatrooms and forums for ages now. Despite its longevity, the first Android OS phone only hit the shelves just over 10 years ago. Since then, Android has become an unstoppable force. The reason Android OS is immensely popular with smartphone makers is because of Google’s decision to make it an open-source OS. For those unfamiliar with what open-source software (OSS) is, it’s a software that’s distributed with its source code open for any modification. OSS includes a license for programmers to alter the software in any way they see fit.
Surprisingly, one of the founders of Android, Andy Rubin stated that Android was initially developed as an OS for digital cameras! Way back in 2004, Android pitched their OS as tech that would wirelessly connect cameras to computers. However, the market for digital cameras was slowing. Android then decided to make the switch and steer towards the direction of implementing its OS in smartphones. 2005 was an extremely important year for Android as that’s when Google bought them. The original founders continued to work on developing the OS and decided that Linux would be the base of Android OS.
Introduction: What is Android?
Before you learn how to make Android apps, let’ have a look at what Android actually is. Android is an open-source OS based on Linux with a Java programming interface. Android is primarily used in smartphones and tablets. The Android OS was developed by the Google lead Open Handset Alliance (OHA). The enormous OHA is an association of mobile operators, handset manufacturers, software companies, semiconductor manufacturers, and commercialization companies such as Samsung, LG, Intel, Accenture, T-Mobile, HTC and countless others. The OHA alliances provide various services and their products use the Android platform. Before we get into the nitty-gritty of how to learn Android App Development lets take a quick look at its history.
The Launch of 1.0
2007 was a landmark year that changed technology forever. The launch of the first Apple iPhone in January 2007 shook the world. From November 2007, Android gradually began to make its way out of the shadows with plans on how they planned to compete against Apple and other phone companies. Bigger than any singular Google phone, Android’s weapon for smartphone domination was the previously mentioned OHA.
Android dropped its first smartphone in October 2008. It was marketed as the T-Mobile G1 in the US and known as the HTC Dream everywhere else. Android took a different approach with the look than the touchscreen iPhone. They opted to have a Blackberry-style QWERTY pad because touchscreen tech was still incredibly new, and people were a little sceptical about it. Unlike the iPhone, the HTC Dream wasn’t well received. Neither did it have a particularly eye-catching design nor a headphone jack. I’m aware headphone jacks sound primitive in today’s time because everything is gradually making a shift towards Bluetooth connection, but they were very important back then. While its looks weren’t overly spectacular, Android 1.0 gave us a peek into Google’s future plans for the operating system. Android 1.0 housed Google products and services such as YouTube, Google Maps, and a pre-chrome web browser.
A good company logo is imperative because they are memorable, create strong first impressions, separate brands from competitors, and encourage customer loyalty. Android has one of the most recognizable logos. The little green robot-bug looks futuristic and inspires creativity. Android’s logo also reminds me of R.A.L.P.H, Juni Cortez’s little bug spy tech from the Spy Kids movie. The famous robot-bug was created by Irina Blok while she worked at Google. Interestingly, Irina was inspired by male and female bathroom logos as they created a sense of familiarity.
Traditionally, companies race and pay hefty stacks of cash to copyright their logos. Google, on the other hand, decided to take an alternative route. Both Irina and Google decided to stay true to Android’s open-source theme and decided to make the Android robot-bug an open source project too. Google permits modifications to the logo under the Creative Commons 3.0 Attribution license. Many companies have taken advantage of Google’s generosity and modified the logo to fit their own purpose.
Decoding the Sweet Codenames of Android
We’ve all grown to love the dessert names that Android assigns to its OS updates. It’s impossible to hate on dessert names! Have you ever caught yourself saying “I absolutely hate Ice Cream”? It just doesn’t sound right. Unfortunately, Android 1.0 didn’t have an internal or external codename. An Android engineer also confirmed that while Android 1.1 didn’t have a public codename, it was nicknamed “petit four” internally. Petit four is a French dessert and thus began the sweet codenames.
Android 1.5 was the first OS update to have a public codename, which was Cupcake. The important responsibility of choosing these sweet names was assigned to Ryan Gibson, project manager at Google. At first, Android’s motive towards naming their OS updated after sweets and desserts was an unknown secret. Finally, in 2013, Google released an official statement about the reason behind the OSs’ peculiar names which stated that since these devices make our lives so sweet, each Android version is named after a dessert.
Besides naming their OS updates after desserts, Google also builds styrofoam statues of its famous robot-bug for each of the updates. The statues are placed outside the Google visitor centre in California.
Android System’s Architecture
If you want to become an Android Developer and make an Android App, then you need to understand the architecture of the Android system. Android OS is a stack of software components which are divided into five different sections. The sections are stacked in the following order:
2. Application Framework
4. Android Run Time
5. Linux Kernel
Let’s delve into the different sections of the Android software stack.
Like The Professor in Money Heist, Linux Kernel is the foundation of the entire Android platform. Similar to how The Professor planned the heist, Android was created on the open-source kernel of Linux. The kernel handles input and output requests from the software. The kernel directly interacts with the shell, various programs, and the hardware devices on the system. However, it does not interact with the user.
The primary reason behind opting for the Linux kernel as the heart of the OS was that it provided certain core features:
1. Security: The kernel controls the security between the application and the system.
2. Memory: Manages memory with a high level of efficiency, thus providing the freedom to develop great apps.
3. Process Management: Appropriately delegates resources to processes whenever required.
4. Network Stack: Handles all the network communication.
5. Driver Model: Makes sure that the application works. Hardware manufacturers can build drivers into the Linux build.
Runs on top of the kernel, this Android framework was developed with a variety of features. Consists of a range of open-source tools such as the following:
1. Webkit: This is an open-source web browser. Its role is to administer the functionality required to display web content.
2. The Android Runtime: Consists of core libraries of JAVA and ART (the Android RunTime).
3. Media Frameworks: Play and record both audio and video.
4. Open GL (Graphics Library): Cross-platform and cross-language application program interface (API). It’s utilized to produce 2D and 3D computer graphics.
5. Secure Socket Layer (SSL): Responsible for internet security.
Android libraries are Java-based libraries which are specific to Android development. Examples include the application framework libraries as well as those that facilitate user interface building and graphics drawing. Some of the key Android libraries available to the Android developer are:
1. android.app − Provides access to the application model and is the cornerstone of all Android applications.
2. android.content − Facilitates content access, publishing, and messaging between applications and application components.
3. android.database − Used to access data published by content providers and includes SQLite database management classes.
4. android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
5. android.os − Provides applications with access to standard operating system services including messages, system services and inter-process communication.
6. android.text − Used to render and manipulate text on a device display.
7. android.view − The fundamental building blocks of application user interfaces.
8. android.widget − A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
9. android.webkit − A set of classes intended to allow web-browsing capabilities to be built into applications.
Android Runtime is section no. three of Android’s architecture. It caters to a fundamental component known as Dalvik Virtual Machine. Dalvik Virtual Machine is a Java Virtual machine, specifically designed for Android. Android uses this custom-designed VM to ensure that multiple instances run smoothly on a singular device. The Dalvik VM utilises Linux core features such as memory management and multithreading. Dalvik VM allows every application to run its process independently.
Android Framework/Java API Framework
The Application Framework layer provides many higher-level services to applications. The higher-level services are in the form of Java classes. Android App developers are allowed to use these services in their apps. Services Include:
1. Content Providers: Allows apps to publish and share data with other apps.
2. Notifications Manager: Allows apps to display alerts and notifications to the user.
3. Activity Manager: Controls the elements of the applications lifecycle and activity stack.
4. Resource Manager: Provides access to non-code embedded elements such as strings, colour settings, and user interface layouts.
5. View System: Set of views used to create application user interfaces.
Last but not least we have the star players of the game, the applications. The applications are the topmost layer. All applications are designed and written on this topmost layer.
Android boasts a crazy amount of great features. Here are a few of them:
1. Android is open-source and developers can customize the OS based on requirements.
2. Supports connectivity for GSM, CDMA, WIFI, NFC, Bluetooth, etc. for telephony or data transfer. It will allow us to make or receive calls / SMS messages and we can send or retrieve data across mobile networks.
3. Pair with other devices through WiFi.
4. Android has multiple APIs to support location-based services such as GPS.
5. We can perform all data storage related activities by using lightweight database SQLite.
6. It has a wide range of media supports like AVI, MKV, FLV, MPEG4, etc. to play or record a variety of audio/video and various image formats like JPEG, PNG, GIF, BMP, MP3, etc.
7. It has extensive support for multimedia hardware control to perform playback or recording using camera and microphone.
8. It has an integrated open-source WebKit layout based web browser to support HTML5, CSS3.
9. Supports multitasking, we can move from one task window to another, and multiple applications can run simultaneously.
10. It allows you to reuse the application components and the replacement of native applications.
11. We can access the hardware components like camera, GPS, and accelerometer.
12. It has support for 2D/3D Graphics.
This article just scratched the surface of Android app development, and there’s still so much more to it. If you’re interested in making Android apps or learning how to be an Android developer, keep your eyes peeled for the next article in our Android App Development series.
That’s all you need to know to no longer be a newbie in the realm of Android App Development. If you want to continue your learning, then you can check out Internshala’s Android app development training and begin your own app development journey!
Image credits: computerworld.com, 1000logos.com, pintrest.com, pintrest.com, giphy.com