What Is Android?: Linux Kernel
What Is Android?: Linux Kernel
What Is Android?: Linux Kernel
Android is an operating system and programming platform developed by Google for mobile
phones and other mobile devices, such as tablets. It can run on many different devices from
many different manufacturers. Android includes a software development kit (SDK) that helps
you write original code and assemble software modules to create apps for Android users.
Android also provides a marketplace to distribute apps. All together, Android represents
an ecosystem for mobile apps.
Developers create apps for a variety of reasons. They may need to address business
requirements or build new services or businesses, or they may want to offer games and other
types of content for users. Developers choose to develop for Android in order to reach the
majority of mobile device users.
3. Feature of Android:
It is open source
Anyone can customize the android platform.
There are many application available for different services for the users.
4. Android Architecture
The android is an operating system and is a stack of software components which is divided
into five sections and four main layers that is
Linux kernel
Libraries
Android runtime
Application Framework
Applications
Linux Kernel
The android uses the powerful Linux kernel and it supports a wide range of
hardware drivers. The kernel is the heart of the operating system that
manages input and output requests from the software. This provides basic
system functionalities like process management, memory management,
device management like camera, keypad, display, etc the kernel handles all
the things.
Libraries
The on top of a Linux kennel there is a set of libraries including open-source
web browsers such as WebKit, library libc. These libraries are used to play
and record audio and video. The SQLite is a database that is useful for the
storage and sharing of application data. The SSL libraries are responsible for
internet security etc.
Android libraries:
These libraries includes those java based libraries that are specific for
android development.
Android.app
Android.content
Andrid.view
Android.text
Android Runtime
The android runtime provides a key component called Dalvik Virtual Machine
which is a kind of java virtual machine. It is specially designed and optimized
for android. The Dalvik VM is the process virtual machine in the android
operating system. It is software that runs apps on android devices. The Dalvik
VM enables every Android application to run its own process. The Dalvik VM
executes the files in the .dex format.
Application Framework
The application framework layer provides many higher-level services to
applications such as windows manager, view system, package manager,
resource manager, etc. The application developers are allowed to make use
of these services in their applications.
Applications
You will find all the android applications at the top layer and you will write your
application and install it on this layer. Examples of such applications are
contacts, books, browsers, services, etc. Each application performs a different
role in the overall applications.
Android Emulator
The Emulator is a new application in the Android operating system. The
emulator is a new prototype that is used to develop and test android
applications without using any physical device.
The android emulator has all of the hardware and software features like
mobile devices except phone calls. It provides a variety of navigation and
control keys. It also provides a screen to display your application. The
emulators utilize the android virtual device configurations. Once your
application is running on it, it can use services of the android platform to help
other applications, access the network, play audio, video, store, and retrieve
the data.
Advantages
The advantages of the Android operating system include the following.
Android is a Linux based open-source operating system, it can be
developed by anyone
Easy access to android apps
You can replace the battery and mass storage, disk drive, and UDB
option
Its supports all Google services
The operating system is able to inform you of a new SMS and Emails or
the latest updates.
It supports Multitasking
Android phone can also function as a router to share the internet
It’s free to customize
Can install a modified ROM
Its supports 2D and 3D graphics
We can install Millions of apps-
Backup and restore of apps can be possible
It supports Third-party apps
Addition & removal of unwanted features:-
High job demands for Android developers
Notifications can be displayed very clearly
Huge community support
The Internet can be shared from device to device
It is an Open source
Different types of mobile models you can select
Add/ Remove Unwanted
Internal memory is Expandable
Cloud storage
It supports big screens at a reasonable price
Foldable Android devices
Different apps can run at the same time
Several widgets on display
The disadvantages of the Android operating system include the following.
Apps work in the background
Battery discharges easily due to a lot of processes within the
background.
Requires Google account
Less security, so fake apps can be easily installed to steal your data
from strange resources
Mobiles with low specification run very slow
Generally, you require additional code on Java language as compared
to Objective-C.
Android developers have a critical time
Difficult layouts & animations are tough to code within Android.
Protection of Virus is required
For developers of the app, Google is strict
Several ads within apps
Some apps quality is not good
For elders, it is not friendly
To develop apps using the SDK, you use the Java programming language to develop
the app and Extensible Markup Language (XML) files to describe data resources. By
writing the code in Java and creating a single app binary, you create an app that can
run on both phone and tablet form factors. You can declare your UI in lightweight sets
of XML resources. For example, create one set for parts of the UI that are common to
all form factors, and other sets for features specific to phones or tablets. At runtime,
Android applies the correct resource sets based on the device's screen size, screen
density, locale, and so on.
To help you develop your apps efficiently, Google offers an integrated development
environment (IDE) called Android Studio . It offers advanced features for developing,
debugging, and packaging Android apps. Using Android Studio, you can develop for
any Android-powered device, or create virtual devices that emulate any hardware
configuration.
What is HAL?
an Android Hardware Abstraction Layer (HAL) that allows the Android
Application framework to communicate with hardware-specific device drivers.
It acts as an interface for hardware vendors to implement. An android
application uses HAL APIs to get commands from different hardware devices.
An activity represents a single screen in your app with an interface the user can
interact with. For example, an email app might have one activity that shows a list of
new emails, another activity to compose an email, and another activity for reading
individual messages. Your app is probably a collection of activities that you create
yourself, or that you reuse from other apps.
Although the activities in your app work with each other to form a cohesive user
experience, each activity is independent of the others. This enables your app to start
an activity in another app, and it enables other apps to start activities in your app (if
your app allows this). For example, a messaging app could start an activity in a
camera app to take a picture, then start an activity in an email app to let the user
share the picture in email.
When an activity is stopped because a new activity starts, the first activity is
notified by way of the activity lifecycle callback methods. The activity
lifecycle is the set of states an Activity can be in: when the activity is first
created, when it's stopped or resumed, and when the system destroys it.
Services
1. Foreground Services:
Services that notify the user about its ongoing operations are termed as
Foreground Services. Users can interact with the service by the notifications
provided about the ongoing task. Such as in downloading a file, the user can
keep track of the progress in downloading and can also pause and resume the
process
2. Background Services:
Background services do not require any user intervention. These services do
not notify the user about ongoing background tasks and users also cannot
access them. The process like schedule syncing of data or storing of data fall
under this service.
3. Bound Services:
This type of android service allows the components of the application like
activity to bound themselves with it. Bound services perform their task as long
as any application component is bound to it. More than one component is
allowed to bind themselves with a service at a time
content provider