What Is Android?: Linux Kernel

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 7

1. What is android?

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.

2. OPEN HANDSET ALLIANCE:


The Open Handset Alliance (OHA) is a association of several mobile companies whose goal
is to develop open standards for mobile devices, promote innovation in mobile phones and
provide a better experience for consumers at a lower cost.

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

The challenges of Android app development


While the Android platform provides rich functionality for app development, there are
still a number of challenges you need to address, such as:

 Building for a multiscreen world


 Getting performance right
 Keeping your code and your users more secure
 Making sure your app is compatible with older platform versions
 Understanding the market and the user

It's easy to develop apps


To develop apps that take advantage of the Android operating system and UI, use the
Android software development kit (SDK). The SDK includes software libraries of
prewritten code, a debugger, a device emulator, documentation, sample code, and
tutorials. Use the SDK to create apps that look great and take advantage of the
hardware capabilities available on each Android-powered device.

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.

5. Components of Android Application:


Activity

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.

Typically, one Activity in an app is specified as the "main" activity, for


example MainActivity. The user sees the main activity when they launch the app for
the first time. Each activity can start other activities to perform different actions.
Each time a new activity starts, the previous activity is stopped, but the system
preserves the activity in a stack (the "back stack"). When the user is done with the
current activity and presses the Back button, the activity is popped from the stack and
destroyed, and the previous activity resumes.

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

Services in Android are a special component that facilitates an application to


run in the background in order to perform long-running operation tasks. The
prime aim of a service is to ensure that the application remains active in the
background so that the user can operate multiple applications at the same time.

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

Content Provider is a component that allows applications to share


data among multiple applications. It hides the details of the
database and can be used to read and write private data of the
application which is not shared. It would be a mess to access data
from other applications without content providers.
broadcaster reciever

Broadcast receiver is an Android component which allows you to


send or receive Android system or application events. All the
registered application are notified by the Android runtime once
event happens.
For example, applications can register for various system events
like boot complete or battery low, and Android system sends
broadcast when specific event occur. Any application can also
create its own custom broadcasts.

You might also like