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 ---------------------------------------------------------------------------------------------------------------------