In this article, we will give a brief Android Studio Introduction 2020. Also, present the history of the Android operating system. We will also cover features, frameworks and the platform used to build android apps. Furthermore, we’ll describe Android versions, Android architecture components, Android Runtime and Android application components.
Android Studio Introduction, What is Android?
Android is an open source operating system built on the Linux kernel and developed specifically for cell phones. We can also use android in smartphones, smartwatches, TVs and vehicles. Therefore, the Android platform allows developers to build professional and user friendly software. Also,We can develop android apps with Java and Kotlin.
Furthermore, android was invented in 2003 by Andy Rubin, Rich Miner, Nick Sears and Chris White. Google purchased Android Inc in 2005. Finally, in 2008, Google launched a commercial version of Android, known as Android 1.0.
Besides, numeric names, Google has assigned code names to all Android versions. The following Table depicts all the versions and their code names.
Why to Learn Android App Development?
In general, learning is time and effort consuming. So that statistics should select your direction. The following graph shows the market share of the global mobile operating system from January 2010 to July 2020. We note that until July 2020 android operating system represents 74% of the market share, while iOS represents 24% of the market share. So, we can see that Android is leading the world market.
Android technology isn’t restricted to cell phones alone. Nowadays it is distribution that uses it as their operating system through many devices in the market. Android is also open source and has broader community and developer reach. So it has lowered learning costs and higher success ratio as well as a rich environment for development.
Android Software Stack
It include an operating system, middleware and key applications.
Linux Kernel has important functions as memory management because it allocate a memory to a new file and free it when a specific file is deleted. Also,Linux Kernel has important function power management. Moreover, it provides power to various devices like Bluetooth and camera. Another function is Resource management, while it provides resources to each process, thus it provides the ability to do multiple operations at the same time. i.e. surfing Internet and Listing songs.
Hardware Abstraction Layer (HAL)
This layer provides standard for communication between the Linux Kernel and software APIs. Moreover, It abstracts the different implementations by different vendors and provides a consistent API for the upper layers. HAL consists of specific C/C++ implementations of multiple library modules ( .so file) each accessing specific type of hardware component. Such as, the camera, Bluetooth etc. Thus when a framework makes a call to access device hardware, the Android system loads the library module for that hardware component.
Native C/C++ Libraries
Android uses native C/C++ libraries to interact with Linux kernel via HAL. Moreover, android APIs are actually wrappers around a set of C/C++ based libraries. For example, android.opengl library uses OPENGL ES a C++ library. Normally, android APIs and Native Development Toolkit can access C/C++ libraries.
It comprises of Dalvic Virtual Machine (now replaced with ART) and Core Libraries. Further more, android uses DVM to optimize battery life, memory and performance. Moreover, the byte code that generated by the Java compiler has to be converted to .dex file by DVM, as it has its own byte code.
Java API Framework
The Android’s Java API Framework is a set of API’s that allow developer to quickly and easily write apps for android devices. For example, the sate of wifi, rather than writing huge amounts of code for processing wifi, it is possible to just include a called wifi manager which would look upon all the tasks related to wifi. Thus simply saying, the application framework layer provides many higher level services to applications in the form of Java classes. The application framework consists of following key services:
- Activity Manager: The method in this class uses testing and debugging methods.
- Content provider: It provides data from application to other layers.
- Resource Manager: It provides access to non-code resources.
- Notification Manager: The users get notification about all the actions happening in the background.
- View System: It acts as a base class for widgets and is responsible for event handling.
This is the top most layer of Android Architecture. Further more, all applications using android framework uses android runtime and libraries. While android runtime and native libraries are using Linux Kernel via HAL.
Android Application Components
There are four main components of an android application and will discuss them as following:
An activity represents a single screen with which a user can interact with. An application can have more than one Activity and each one can operates independently. Moreover, it can be linked to one another and each activity you create can must be defined in your application’s manifest file. Further more, each activity extends Activity Class defined in Android SDK. Thus, public class “MainActivity” extends Activity class.
The service is long running background process without any need of user interaction. For example, the service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity. Each service in android will be a subclass of Service class defined in android SDK. Thus, public class MyService extends Service.
They handle the communication between Android OS and Applications. For example, the notification that the device battery is low, the sign of earphone as soon as you plug the headset. Although broadcast receivers do not display a user interface, they may create a status bar notification to alarm the user when broadcast event occurs.
Content Providers are use to share data between the applications. In android the data can not be shared directly between two applications.
This is a brief Android Studio Introduction. The next article we will learn how to install android studio and system requirements also know the structure of Android Studio IDE.