Android is an operating system (OS) which is widely used for touch-based mobile devices, such as smartphones and tablets. It is a Linux based operating system. It was founded in Palo Alto, California in the year 2003. Since its development, Android has seen tremendous updates.
This OS supports a lot of applications on smartphones. The hardware that actually supports the Android software is based on the ARM architecture platform. Based on the Android platform, a lot of applications are available which help the mobile device users to be more productive and communicative. Using these applications has made life easier for a lot of individuals who are using android based mobile devices.
In this article, you will get to read the following topics which will help you to enhance your knowledge on Android Operating System:
What is Android?
Android is a mobile-based operating system that is developed by Google.
- Several mobile phones are manufactured and configured based on the Android operating system. For example Samsung, Google Nexus, Sony Xperia, etc.
- The operating system is based on the Linux Kernel.
- Unlike other OS, i.e. Apple iOS, Android operating system is open source, i.e. developers can customize the OS according to the device needs. This is the primary reason where the share of Android mobile devices is high when compared to its competitors. The GUI is different based on the manufacturer.
- Developers can build super cool apps and customize the OS by installing the basic software development kit (SDK)
- All of the android devices are written in Java and are executed through the JVMs (Java Virtual Machines). Until Android 4.4, “Dalvik” JVM was used. Lately, from Android 5.0, Android Runtime ‘ART’ is used.
If you are not sure what sort of operating system that your current phone is running on then you can easily take a look at the information within ‘Settings’ menu and click on ‘About’.
[Related Page: Status Bar Notification In Android ]
Advantages of using Android Operating system
The advantages of using Android Operating system are listed below:
- Android is a Linux based operating system, i.e., anyone can contribute and customize accordingly.
- Accessing Android apps is really easy
- Supports Google services without any restriction
- It supports multitasking
- As it is open source, it’s free to customize
- Also, supports 2D and 3D graphics
[Related Page: Background Services In Android ]
Overview of Android
In this section of the article, we will discuss in detail regarding the evolution of Android operating system versions.
From the initial versions of Android 1.0 to Android P (Pie), there has been a lot of improvements acknowledged to the Android Operating system which made it easy for a lot of developers to build quality mobile applications that can run/execute on Android operating system.
The first version of Android OS was launched on November 7th, 2007 and has been really strong in terms of releasing updates on a regular basis. In reality, the Android operating system is not only supporting the mobile devices/ tablets but it is also supporting smart TV and smartwatches.
Origin of Android Operating System
In the year 2003, Android Inc. was formed by a group of individuals, i.e. Andy Rubin, Rich Miner, Nick Sears, and Chris White. The main intention was to build a robust operating system for the Camera usage, thus turning out the normal handheld devices to smart devices which are well aware of location and preferences.
Later on, the idea didn’t get much traction in the market so the focus has been shifted to smartphones. This sector was already dominated by other platforms like Windows and Symbian OS, so there was a tough competition.
[Related Page: Android Application & Activities ]
As the start was not concrete and funding became an issue, the company Android Inc. was sold to Google in the year 2005. Later on, the team was working on mobile device OS which is based on Linux Kernel. The logo, i.e. Android logo was designed by Irina Blok and a beta version was out for release on 5th November 2007.
Let’s understand the evolution of Android versions, the below table gives the version number and name associated with the operating system.
|Android Version||Name of the Operating System|
|Android 1.0||Android 1.0|
|Android 4.0||Ice Cream Sandwich|
|Android Auto||Android Auto|
- The first commercial Operating system that was launched was Android 1.0
- It was out in the market by September 23, 2008
- This OS had features like internet browser, Gmail synchronization, Gmail application, YouTube, Calendar synchronization, camera, etc.
- All these apps were available to download from the Android Market.
- Later on, the new Android versions were developed, Android 1.1 which was launched in the year 2009. This version was more related to bug fixes and user enhancements.
- A follow-up releases like Android 1.5 (Cupcake) and Android 1.6 were also released to stabilize the entire operating system and the focus was more on bug fixes.
[Related Page: Absolute Layout In Android]
- Android 2.0 was named as “Eclair”.
- It was released on October 26th, 2009.
- The main feature in this version was the email support for Microsoft Exchange. Also, the feature of going through all the emails of different accounts in the same inbox was a highlight.
- A lot of improvements was made to the text messages. This helped the customers to go through the older messages and also the MMS messages.
- Camera applications have received real-time updates like zoom modes, shading effects, flash support, focus mode, etc.
- Later on, Android 2.1 and Android 2.2 were released in frequent intervals which took care of the bug and minor enhancements.
- This version is named “Gingerbread”.
- It was out in the market by 6th December 2010.
- The focus for this version was to have a brand new UI and also focus was on to enhance speed and convenience.
- A new addition, NFC (Near Field Communication) was integrated into the devices and Download manager was also available which helped the users to go through their downloaded documents from the web in the form of a list.
- This version of the operating system was named “Honeycomb”.
- It was out in the market by February 2011, and it was compatible with the tablet-oriented version.
- It was all about the tablet going through the browsing modes, a new mode was developed which is nothing but “incognito” model.
- USB connectivity was available with certain widgets on the home screen.
- Android 3.2 was later on released which supported Google TV concept.
This version of the operating system was named “Ice Cream Sandwich”.
- It was out in the market by October 18th, 2011
- A fresh look was provided in terms of having Roboto as a standard font for Android devices.
- Video recording was emphasized in this version
- Chrome bookmarks were able to synchronize.
- Files, applications were accessible from the lock screen.
- This version of the operating system was named “Jelly Bean”.
- It was out in the market by July 9th, 2012.
- The purpose of this release was to make sure that there is an enhanced UI which resolved the feature and performance issues.
- New technology was integrated in such a way that 60 frames per second interface were handled which provided a smooth and responsive service.
- Third party apps were also provided which made it customizable.
[Related Page: Android Application Manifest]
- This version of the operating system is named “KitKat”.
- This version was groundbreaking and has attracted millions of users to the Android OS platform.
- It was launched on October 31st, 2013.
- The first device that was on Android 4.4 was the Nexus 5
- One of the highlighted features was “immersive mode”. Using this feature, the user was able to hide the buttons on the screen, and at the same time, status bar, when they are not necessary.
- This version of the Android Operating system is named “Lollipop”.
- It was out in the market by June 25th, 2015.
- With material design concept, it has got much appreciation.
- Notifications functionality was modified and the users were able to see the notifications on the lock screen.
- This version of the operating system was named “Android Auto”.
- A predominant feature was to access applications like Maps for navigation. Spotify for unlimited streaming of music albums.
[Related Page: Installation of Android]
- This version of the Android Operating system is named “Marshmallow”.
- It was launched in May 2015.
- New features were introduced which actually helped to manage the battery in a better way.
- Within this version, fingerprint unlocking process was involved.
- Internal storage was managed well, also Micro SD card was also looked into it.
Android 7 :
- This version of the Android operating system was named “Nougat”.
- The beta version of Android Nougat was launched in the month of March 2016, and a formal release was out in August 2016.
- They are no major differences between Android Nougat and Marshmallow in general, but the Nougat version of the operating system supported the split-screen mode for the very first time on Android gadgets.
- This version of the Android operating system is named “Oreo”.
- It was out in the market by August 2017.
- Also, with this release, a new UI was redesigned so that the newer devices were in line with the OS. A few devices were launched by Google, i.e. Pixel XL, Nexus 6P, etc.
- This version of the Android operating system is named as “Pie”.
- It is the latest version of Google's operating systems. This version is packed with a lot of features which are related to AI-powered efficiency.
- Adaptive brightness settings are observed within the version. This has resulted in an adaptive battery life.
[Related Page: Intents in Android]
Android vs Windows
The differences between Android OS and Windows OS are listed out in a tabular format below:
|Android OS||Windows OS|
|The operating system is an open source.||The Windows operating system is not an open source.|
|Developers can easily customize because the OS is an open source.||Developers cannot customize the OS because it is not open source.|
|Possibility of security threats.||Possibility of security threats are less compared to Android platform.|
|Developers can develop android applications.||Developers can develop supporting windows applications.|
|Can observe frequent lags. An android device with 2GB RAM will face lag issues. It is advisable to use RAM clearing applications.||No lags are observed. The phones with 512MB RAM can also support the OS and no lags are observed when it comes to the frequency.|
|Huge number of applications are available within the OS platform.||Compared to the Android platform, Windows platform apps are limited.|
|UI is pretty much similar to iOS platform.||UI is completely different and don’t have any resemblance to iOS platform.|
|File manager option is available within Android platform where user will be able to see all the files.||File manager option is available within Windows phones, and the user will be able to see the files.|
|It supports touch screen phones.||It supports touch screen phones.|
[Related Page: Toast Notifications in Android ]
Android vs iOS
The differences between Android OS and iOS are listed out in a tabular format below:
|It is an open source platform.||It is not an open source platform, but it has few open source components.|
|There is a possibility of customization in this platform.||There is no possibility of customization in this platform.|
|They are lot of widgets available to customize the home screen.||No widgets are available to customize the home screen. But, the notification center can be customized with few widgets.|
|File transfer is pretty easy and can be done via USB cable.||File transfer is pretty complex, the user has to copy the files only through connecting by iTunes.|
|Wireless transfer of files is possible with third party applications.||Wireless transfer is possible to build OS features, like AirDrop.|
|The OS is available on different phone manufactures like Sony, Google, Motorola, Samsung, etc.||The OS is available on Apple devices only.|
|Security aspect is not perfect in Android platform. At least, it is not the first priority.||Security is given highest priority when it comes to accessing the applications from the App store.|
|Android phones have an option to manage all the files via File Manager option.||No option for file manager within iOS.|
|It supports touch screen phones||It supports touch screen phones.|
[Related Page: Android Manifest File ]
Why Android has become the widely used Software Framework?
In this section of the article, we will discuss the reasons why Android has been widely used in Software Framework.
Android is considered to be one of the greatest mobile application platforms where a lot of mobile applications were developed so far. Within this development platform, the developers will be able to code mobile apps which support various devices, irrespective of their size. As it is an open source platform, they are a lot of popular development frameworks that are available. Few of the popular frameworks are listed below:
- Corona SDK: This development framework is used to develop games and apps. Using this framework, the developers will be able to accomplish the tasks easily. It is a cross-platform framework.
- Apps Builder: This framework is powered by HTML 5 and provides a coding-less UI where it helps the developers to build apps quickly. Using this framework, the apps can be directly integrated into Google Play.
- Ionic: It is one of the popular cross-platform development frameworks where a lot of mobile applications are built on. With the help of HTML, CSS and JS mobile apps can be developed easily.
- React Native: This development framework is widely used by big companies like Facebook, Instagram, Airbnb, and Walmart.
Subscribe to our youtube channel to get new updates..!
They are a lot of mobile development frameworks that are available but the above-listed frameworks are used predominantly.
[Related Page: RelativeLayout & TableLayout in Android ]
Android Environment setup
In this section of the article, we will discuss the step by step process flow of Android Environment setup.
The Android environment setup can be done on the following operating systems:
- Microsoft windows 10/8/7 etc. ( both on 32 bit and 64 bit)
- Mac OS 10.8.5 or higher
- GNOME or KDE desktop
The tools that are required to develop Android apps are open source so they can be directly downloaded from the web without any restrictions. The following list of softwares are needed to complete the entire Android environment setup.
- Java JDK5 or later version is needed
- JRE 6, Java Runtime Environment
- Android Studio
To begin with the installation process, the user has to click on Android Studio. exe file.
Click on the Android Studio icon will start the installation process and the user will be able to see the Android Studio Launchpad.
Click on the “Next” button to continue the process.
At this point of time, the user has to provide a JDK7 path in the Android studio installer process.
Click on “Browse” button to check the path.
Click on “OK” button to continue the process.
Now, in this screen, the user has to click on the following core components (i.e. Android SDK, Android Virtual Device, Performance (Intel chip)).
Click on “NEXT” button to continue the process.
In this step, the user has to check on the location path for Android studio and the Android SDK.
Click on “NEXT” button to continue to the next step.
Within this step, the user has to specify the RAM space for Android emulator and by default, the value would be 512MB (if it is a local machine RAM).
Click on “NEXT” button will continue to the process.
At this point, all of the Android SDK files are extracted on to the local machine and it will take about few minutes to complete the installation process.
After the installation process is completed, the user has to click on the “NEXT” button to complete the entire setup process. The user will be able to see “Welcome to Android Studio” screen.
By clicking on “Start new Android Studio Project”, the user will be able to start a new Android project.
To proceed further, they have to provide Application Name, Company Domain, and Project location details.
Click on the “NEXT” button to continue the process. At this point, the user has to key in details like the form factors for the application to run, like minimum SDK. For this demonstration, we have selected as API23: Android 6.0
Click on “NEXT” button to continue the installation process. At this point, the user has to select the default layout for the applications.
Click on “NEXT” button to complete the process.
This completes the installation process and the user will be able to see the development tool interface where they can write the code.
So, before actually writing the code to test the android applications, we need to have an android virtual device. This will help the developers to test their applications on the PC itself.
[Related Page: Android Services ]
Create an Android Virtual Device Process:
To create an Android virtual device, the user has to click on “Launch Android AVD Manager” button. The highlighted section in the below picture shows where the icon is available.
After clicking on the virtual device icon, all the virtual devices that are available within the SDK will be displayed. If the user wants to create another virtual device, then this can be achieved by using the “Create new Android Virtual Device” button.
This completes the entire installation process and also the environment is ready for Android application development. It is advised to restart your computer once the installation process gets completed.
In this section of the article, we will be discussing the different components that are available within the Android architecture.
The entire Android operating system is nothing but a set of software components which are classified into five sections, and they are:
- Application Framework
- Android Runtime
- Linux Kernel
[Related Page: Activity Lifecycle in Android]
Let’s discuss these five sections in detail to understand the Android Architecture:
- Linux Kernel: This layer is responsible for all the device hardware functionalities. For example camera, keypad, display, etc.
- Libraries: This is a layer on top of Linux kernel. Within this layer, a set of libraries are available which include an open source web browser, i.e. Webkit. It is a prominent library. Also, has a database SQLite which is used for data storage, and app data can be shared. Further, libraries that support both audio recording and play audio. Last but not least, we have libraries that will support SSL, i.e., security aspect for internet browsing.
- Android Libraries: All the java based libraries that are used for Android development are considered in this section. The libraries that are used for Android development are listed below in a tabular format.
|Library name||Functions associated with the Library|
|android.app||Using this library, the developer will be able to get access to the application model. This is an important aspect in android applications.|
|android.content||All the content related access and publishing the messages between applications and its components is taken care by this library.|
|android.database||Used as a repository of data and also provides access to the data pushed by content providers.|
|android.opengl||This is a java interface where the developer will be able to access OpenGL 3D graphics API.|
|android.os||Provides access to the operating system which includes messages, system related services.|
|android.text||Text manipulation can be done with the device display.|
|android.view||Provides the fundamentals of application user interfaces.|
|android.widget||External add-ons like buttons, labels, list views, etc.|
|android.webkit||Web browsing capabilities are to be built within the applications.|
Android Runtime: This is another component within the Android architecture. This is a really critical layer where all the core functionalities are taken into consideration. For example, multi-threading concept, memory management, etc.
With the use of Android runtime, the core libraries can be used where the android app developers can code by considering Java programming language.
The below-mentioned one is a list of application services that are used while developing an android application.
|Application Services||Associated Functionality|
|Activity Manager||Helps to control all the application lifecycle aspects and also has an activity stack.|
|Content Providers||Allows to share data and publish the data.|
|Resource Manager||Provides access to all non-code embedded resources. For example, color settings, user interface layouts, strings, etc.|
|Notifications Manager||Used for displaying alerts and also notifications to the mobile app user.|
|View System||Used to create application user interfaces.|
[Related Page: Android Menus Tutorial ]
This is another layer within android application development. Within this layer, the developer will be able to code applications like Contact Books, Games, Browsers, etc.
Components of an Android application:
In this section of the article, we will discuss the various components that are available within an Android Application.
For an Android application to work appropriately, they are a few components that they need to work intact with each other. All of these components are available within the application manifest file.
Further, the manifest file contains application Metadata, platform requirements, and available external libraries.
- Activities: This is a really important component within the android application. All of the presentation layers are represented by Activities. The UI of the application is actually built using one or more extensions of the Activity class.
- Services: They are considered as invisible workers of the applications. Most of these services are executed in the backend and update the data sources and the relevant activities.
- Content Providers: They are meant to connect with the SQL database and also fulfill data requests within the applications.
- Intents: This component is used for passing messages internally within the application. They are predominantly used in Android. For example, they are used to start and stop activities and services.
- Broadcast Receivers: They are known for listening to the messages that are sent across within the application.
- Widgets: They are tiny little components that will help to customize the home screen. Few of these components are interactive in nature and are widely used in Android phones.
- Notifications: Notifications are nothing but alert messages that help the user to understand the particular event that is triggered within an application. For example, Email popups, messenger popups, etc.
[Related Page: Adding buttons & adding a list in Android ]
Android Development Tools
With the help of Android development tools and integrated development environments (IDEs), a lot of Android applications have been developed so far. With the help of these development tools, developers are able to code new applications with ease and the turnaround time for development has also drastically decreased.
In this section of the article, we will discuss a few android development tools that are predominantly used within various organizations:
- ADB (Android Debug Bridge): ADB is a command line tool where it acts as a communication bridge and connects Android devices and computers. This bridge can be used to check the overall development and is also very helpful while debugging the application.
- AVD Manager: AVD stands for Android Virtual Device. Using this tool, the user will be able to create a virtual device and test the application code virtually from the computer itself. Using this will definitely help the developers to debug and it is suitable for all the Android devices, where they can check on responsiveness and the performance aspect.
- Fabric: The fabric is another development platform which is widely used in the application development arena. Within this platform, there are ready-made kits that are available which can be used to build Android applications.
- This platform has been extensively used by big companies like Uber, Spotify, Square, Groupon etc. In the year 2017, Google has purchased Fabric platform from Twitter.
- Flow Up: Flow Up is really helpful when it comes to tracking the performance of the production applications. With the help of dynamic dashboards, the developers will be able to check on the statistics and the metrics like disk usage, memory usage, etc.
It is a SAAS based solution, so be prepared for a monthly billing just in case if you have decided to use this service.
[Related Page: Creating an AlertDialog in Android]
A service is nothing but a component which runs in the background and it is designated to perform long operations without actually interacting with the user. Further, the service also has a capability to execute in the background even though the application is cleared from the “App Tray”.
A service actually has a life cycle of callback methods where the changes can be implemented. There are two types of services:
UN bounded service:
In this type of service, the frequency of events goes in linear and the functions go hand in hand. The same is depicted in the picture below:
- In the above scenario, the service is started by using startService() command.
- The services is executed in the background without any interactions with the system or the developer. By using the command onDestroy (), the service is destroyed and is shutdown.
[Related Page: How to Implement the Lifecycle Callbacks in Android ]
In this scenario, the service is created by bindService().
The service is executed in the background and interacts with the client on need basis.
With the on Bind () service, the system can interact with another component and if it wants to bind with service, it can be done by using bindService ().
If the service needs to be destroyed, then on Destroy () command should be used and the service is shut down.
Android User interface:
In this section of the article, we will discuss UI controls, UI Layouts, Event Handling, custom components, and themes.
We have a list of UI controls that are used within mobile application development, and they are:
|Text View||This control is used to display the text to the user.|
|Edit Text||The Edit Text is nothing a subclass of Text View. In this case, the user will be able to modify the content.|
|Auto Complete Text View||Based on the user keystroke, a list of suggestion texts are displayed for the user. This will help the users to type faster. This is a really helpful tool while actually writing emails.|
|Button||This is used for any Call-to-action areas. So, for any action to be performed at a section, the button symbol is used.|
|Checkbox||This is an on/off switch where the user will be able to toggle it based on the need.|
|Radio Button||Radio button has only two states to check, i.e., checked or unchecked.|
|Radio Group||This is nothing but a group of radio buttons used together|
|Spinner||A drop-down list of all available options is displayed.|
|Time Picker||Enables the user to pick a set time from the available options|
|Date Picker||Enables the user to pick a set date from the available options.|
[Related Page: Showing & Dismissing a dialog in Android ]
An event is nothing but an activity where a set of data is collected when there is a user interaction with the application components. For example, a button press, a screen touch, etc. According to the Android framework, the events are maintained based on FIFO structure, i.e., First in First out.
There are three concepts pertaining to Android Event Management:
- Event listeners: An event listener is nothing but an interface of View class which has a single call back method.
- Event Listeners Registered: Events registration is a full-fledged process where the event handlers are registered with an Event Listener.
- Event Handlers: As the name suggests, the event handler will handle the events.
[Related Page: Dialog Boxes of User Interface Components in Android ]
Applications of Android
With the use of Android operating systems, there are a lot of applications that are developed and are used in day to day life. Using these applications have definitely reduced the amount of work that we were used to doing manually.
In recent years, a lot has been developed and mobile applications for each and everything has been built so far. For example:
- Health Data: With the use of modern smartphones which are based on Android OS, the users are able to track the number of steps that they have walked, their health data like heartbeat rate, calories burnt, etc. All of this information is available for them to personally monitor and helps them to work towards a healthier lifestyle. Daily walk tracker is an example.
- On-Demand Video Streaming: This is another key area where a lot of mobile applications are built. Now, it is really easy to listen to your favorite music or videos, because there are many Android mobile applications that are providing this service for a nominal price, and also, few applications are offering this service for free as well. Apps like Netflix, Jio Prime, Amazon Prime Video, Hot Star, etc., are the examples.
- Business-related activities: We all know how important is business meetings are to discuss and take on demand decisions. So, to facilitate this, a lot of mobile applications are developed where the users will be able to schedule a time and discuss the action items virtually without visiting their respective places. This has drastically reduced the amount of time needed for travelling, and also helps the individual to be more productive. Apps like Zoom Conference, Go to Meeting, Cisco WebEx, etc., are the examples.
The current mobile application market is booming and we get to see new mobile applications available in the Google App store on a daily basis. Also, getting certified in specific areas is good for career growth. One such certification that is available within the current market is Associate Android Developer. With this certification, the developers will be able to showcase their talent by developing high standard android mobile applications.
The following are the benefits of having Android certifications:
- It will definitely help to stand out in the recruitment process.
- Adds confidence, as you will be familiar with all the functionalities of mobile app development.
- Will boost your salaries within the organization and also helps you get a promotion.
- Chance of getting additional certifications, like mobile web implementation expert (another certification within Google certified developer), and so on.
[Related Page: FrameLayout & LinearLayout in Android ]
Android Job Roles and Salary structure
There are a number of roles that are available within the mobile app development. The need for mobile app developers is booming right now, and if you are a mobile app developer with considerable experience, you can easily get a decent job with an average salary ranging between $70,000 USD and $110,145 USD. The salary definitely depends upon upon the individual’s experience, job location, and the organization.
Future of Android
With the ever-growing user base of smartphone users, the Android is definitely going to have a good future. So far, it has been more than a decade since its inception and we have seen a lot of versions that have come across to match the industry standards and the same will continue in the future as well. Most of the companies are now coming up with foldable phones, and so the applications should be scaled in such a way that they can support them.
In the current market, the Android operating system is including Machine Learning component, thus enabling AI into their operating system platform. This is an area where the entire industry is turned towards and by having this, Android is going to give tough competition to its competitors.
The Android operating system has definitely made its mark in the current market, and in the last 10 years, there have been quite a few milestones that it has achieved. The need for smartphones is increasing day by day and the same goes with mobile applications. So, with the help of technology advancements, this platform will definitely get into the next level and support a lot of upcoming mobile devices.