Uploaded by Ankit Singh

19BIT0419 VL2020210503464 DA02.pdf

advertisement
DIGITAL ASSIGNMENT - 2
NAME - ABHINAV KUMAR
REG. NO. - 19BIT0419
SLOT - B1/TB1
OS SELECTED - ANDROID
ABSTRACT
Android Operating System is developed for smart phones and tablets. It is a Open source
Software. Android is the most widely used mobile Operating System by the people nowadays.
Android Software Stack contains four Layers: application layer, application framework layer,
Libraries, Linux kernel. This Paper Describes about the Software Stack and versions of Android
Operating system.
FEATURES OF ANDROID
1) UI
Android OS basic screen provides a beautiful and intuitive user interface.
2) Connectivity
GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX.
3) Storage
SQLite, a lightweight relational database, is used for data storage purposes.
4) Media support
H.263, H.264, MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC, AAC 5.1, MP3, MIDI, Ogg
Vorbis, WAV, JPEG, PNG, GIF, and BMP.
5) Messaging
SMS and MMS
6) Web browser
Based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript
engine supporting HTML5 and CSS3.
7) Multi-touch
Android has native support for multi-touch which was initially made available in handsets
such as the HTC Hero.
8) Multi-tasking
User can jump from one task to another and same time various application can run \
simultaneously.
9) Resizable widgets
Widgets are resizable, so users can expand them to show more content or shrink them to save
space.
10) Multi-Language
Supports single direction and bi-directional text.
11) GCM
Google Cloud Messaging (GCM) is a service that lets developers send short message data to
their users on Android devices, without needing a proprietary sync solution.
12) Wi-Fi Direct
A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer
connection.
13) Android Beam
A popular NFC-based technology that lets users instantly share, just by touching two
NFC-enabled phones together.
ARCHITECTURE OF ANDROID
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.
Linux is really good at networking and it is not necessary to interface it to the peripheral
hardware. The kernel itself does not interact directly with the user but rather interacts with the
shell and other programs as well as with the hardware devices on the system.
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 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 makes use of Linux core features like memory management and multithreading
which is in java language. 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.
VERSIONS OF ANDROID
The different android versions from the beginning to the present are mentioned below
Android Versions from 1.0 – 1.1
The first Android version like 1.0 was released in the year 2008 but it didn’t have any codename.
Android Version – 1.5
In the year 2009, the 1.5 android version was released which is named Cupcake.
Android Version – 1.6
The Android version – 1.6 was released in the year 2009 which is called Donut. The ability of
this version is, it operates on different screen sizes as well as resolutions.
Android Versions from 2.0 – 2.1
Éclair 2.0 version was released after six weeks of the Donut version.
Android Version – 2.2
After four months of 2.1version invention, the Android 2.2 version was released which is called
Froyo.
Android Version 2.3
The first true visual identity of Android version 2.3 was released in the year 2010 namely
Gingerbread.
Android Version from 3.0 – 3.2
In the year 2011, the versions from 3.0 – 3.2 were released which is named Honeycomb
Android Version 4.0
Android 4.0 was released in the year 2011 which is called Ice Cream Sandwich.
Android Versions 4.1 – 4.3
Android Versions 4.1 to 4.3 were released between 2012 to 2013 which is called Jelly Bean.
Android Version 4.4
Android Version 4.4 was released in Late-2013’s which is called KitKat.
Android 5.0
The version of Android 5.0 was launched in the year 2014, Nov in the Nexus 6 device which is
called Lollipop
Android 5.1
This version of Android 5.1 was released in March 2015 called Lollipop
Android 6.0
Android 6.0 Version like Marshmallow was released in Oct 2015.
Android 7.0
Android 7.0 version was released by Google in Aug 2016 called Nougat.
Android 7.1, 7.1.1 & 7.1.2 Nougat
Android 7.1 version was released in Oct 2016, called Nougat
Android 8.0
Android 8.0 version was released in Aug 2017 called Oreo.
Android 8.1.0
Android 8.1.0 version was released in Dec 2017, called Oreo
Android Version 9 Pie
Android version 9 Pie was released in Aug 2018
Android Version 10
Android version 10 was launched in September 2019
Android Version 11
Android version 11 was released recently on September 8th, 2020
Android 11 is the latest version of android.
PROCESS MANAGEMENT IN ANDROID
Android process management is similar to that of Linux at a low level, but the Android Runtime
provides a layer of abstraction to help keep often used processes in memory as long as it can.
This is done using some memory management techniques that are not common.
Process management in a typical operating system involves many complex data structures and
algorithms, but doesn’t go much beyond the level managing the typical process data structure.
Android is similar in that at the base level the control structures look the same.
Android provides several means on different layers to compose, execute and manage
applications.
Process is an instance of a program that is being executed. In Android, there are five different
stages a process goes through in its lifecycle. The various types have different importance levels
which are strictly ordered.
Foreground Process: This is the app currently in use by the user. Other processes can be
considered foreground processes if theyre interacting with the process that’s currently in the
foreground. There are a few foreground processes at any given time
Visible Process: This is a process that isn’t in the foreground but is still affecting what is seen on
the screen. For example, a foreground process maybe a diaplog but the visible process is the app
in the background of the screen which triggered the dialog.
Service Process: This is a process that isn’t tied to any app on screen but is still doing something
in the background such as playing music or downloading files
Background Process: These are processes that are currently not visible to the user and therefore
do not have any impact on the user experience. These are apps that are paused and are kept in
memory for quick access in the future. They do not use valuable CPU time and other resources
apart from memory
Empty Process: This does not contain any app data anymore. They are kept around for caching
purposes to speed launch later but maybe killed by the system if necessary.
Usually only background and empty processes are killed by the system and so the user
experience stays unaffected. Android only kills apps when the memory usage goes too high but
usually Android does not kill apps.
Processes can contain multiple threads such as in Linux based systems. Most Android
applications implement thread to separate the UI from inout handling and I/O operations or long
running calculations.
Acivity Stack:
1) All the acivities in a system are placed in stack.
2) Whenever a new activity starts, i.e placed on top of stack.
3) whenever user press back button, activity on the top of stack would be removed.
Activity Lifecycle :
Service Lifecycle :
I/O MANAGEMENT IN ANDROID
One of the important jobs of an Operating System is to manage various I/O devices including
mouse, keyboards, touch pad, disk drives, display adapters, USB devices, Bit-mapped screen,
LED, Analog-to-digital converter, On/off switch, network connections, audio I/O, printers etc.
An I/O system is required to take an application I/O request and send it to the physical device,
then take whatever response comes back from the device and send it to the application. I/O
devices can be divided into two categories −
● Block devices − A block device is one with which the driver communicates by sending
entire blocks of data. For example, Hard disks, USB cameras, Disk-On-Key etc.
● Character devices − A character device is one with which the driver communicates by
sending and receiving single characters (bytes, octets). For example, serial ports, parallel
ports, sounds cards etc
FILE SYSTEM IN ANDROID
Android uses several partitions (like boot, system, recovery , data etc) to organize files and
folders on the device just like Windows OS, each of these partitions has it’s own functionality.
There are mainly 6 partitions in Android phones, tablets and other Android devices.
These partitions are :
1) /boot
2) /system
3) /recovery
4) /data
5) /cache
6) /misc
Also Below are the for SD Card Fie System Partitions.
1) /sdcard
2) /sd-ext
/boot
1) This is the boot partition of your Android device, as the name suggests.
2) It includes the android kernel and the ramdisk.
3) The device will not boot without this partition.
4) Wiping this partition from recovery should only be done if absolutely required and once
done, the device must NOT be rebooted before installing a new one, which can be done
by installing a ROM that includes a /boot partition.
/system
1) As the name suggests, this partition contains the entire Android OS.
2) This includes the Android GUI and all the system applications that come pre-installed on
the device.
3) Wiping this partition will remove Android from the device without rendering it
unbootable, and you will still be able to put the phone into recovery or bootloader mode
to install a new ROM.
/recovery
1) This is specially designed for backup.
2) The recovery partition can be considered as an alternative boot partition, that lets the
device boot into a recovery console for performing advanced recovery and maintenance
operations on it.
/data
1) It is called userdata partition.
2) This partition contains the user’s data like your contacts, sms, settings and all android
applications that you have installed.
3) While you are doing factory reset on your device, this partition will wipe out, Then your
device will be in the state, when you use for he first time, or the way it was after the last
official or custom ROM installation.
/cache
1) This is the partition where Android stores frequently accessed data and app components.
2) Wiping the cache doesn’t effect your personal data but simply gets rid of the existing data
there, which gets automatically rebuilt as you continue using the device.
/misc
1) This partition contains miscellaneous system settings in form of on/off switches.
2) These settings may include CID (Carrier or Region ID), USB configuration and certain
hardware settings etc.
3) This is an important partition and if it is corrupt or missing, several of the device’s
features will will not function normally.
/sdcard
1) This is not a partition on the internal memory of the device but rather the SD card.
2) In terms of usage, this is your storage space to use as you see fit, to store your media,
documents, ROMs etc. on it.
3) Wiping it is perfectly safe as long as you backup all the data you require from it, to your
computer first.
4) Though several user-installed apps save their data and settings on the SD card and wiping
this partition will make you lose all that data.
/sd-ext
1) This is not a standard Android partition, but has become popular in the custom ROM
scene.
2) It is basically an additional partition on your SD card that acts as the /data partition.
3) It is especially useful on devices with little internal memory allotted to the /data partition.
4) Thus, users who want to install more programs than the internal memory allows can
make this partition and use it for installing their apps
ADVANTAGES OF ANDROID
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
DISADVANTAGES OF ANDROID
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
---------------------------------------------------------------------------------------------------------------------
Related documents
Download