 Hello everyone. Welcome back to the course. I am Sumit Kalwab from Indian Institute of Technology Kanpur and this lecture is about introduction to Android platform. So in this lecture we will be talking about what is Android, what makes it so special for running on mobile devices and then what all features it is having, what is the security model, what is the app model. So let's begin. So what is operating system? It allows to manage hardware resources, share them between different hardware. So we have been seeing lots of operating systems running on desktop laptop which includes Windows 7, Mac and Ubuntu. But for mobile devices we have additional sensors like we have touch screen, we have cellular functionality like calling SMS, so we have location management such as global positioning system and then we have more communication protocols like near field communication, Bluetooth and then we have sensors. These sensors vary from microphone to camera to accelerometer and lot more. So mobile operating system needs to support all these additional devices. So Android is such kind of operating system which runs on mobile devices and it supports all these additional drivers. So what is Android? It's a software stack and main components are operating system, middle wear and key applications. So operating system is Linux kernel which supports the hardware libraries which allows us to interface with hardware and communicate with them and then in middle wear we have application framework which allows to develop applications and then there is a runtime environment which allows to execute those applications. Then we have applications running on these framework and operating system which includes phone, contacts, browsers and many more. Little bit about Android history. So open handset alliance. It's founded in 2007 out of 47 companies. Currently this consortium have 84 companies. So goal is to develop open handset for mobile devices. What do you mean by open handset? So we have multiple mobile devices with varying capability. So goal is to develop a common operating system which can support all these variable devices capabilities. So in this consortium we have various companies, mobile operators, Vodafone, we have semiconductor companies like Intel, ARM and media. We have software companies like eBay, Google. We have handset manufacturers like Samsung, LG, Toshiba and there are many more commercial companies like Nozare. So goal is to have open philosophy for developing a common platform to run on all these variable mobile devices. So why Android? So if we look at current market of Android, there are more than 1 billion active devices and the rate is increasing with more than 1 million daily activations of new devices. So idea behind open philosophies to have open access to all the features of Android. So Android is open source. So it means we can download Android code, modify it and recompile it, use it. Then from user perspective also we have final control over their experience. So user can control their experience and they can install any number of applications and uninstall them. So they can extend the functionality of basic Android platform as per their need. Then from developer perspective also we do not need any permission and license for developing and delivering the applications. So Android founded in 2007 and since then we have till now many versions. So it started from Android 1.0 to Android 5.0 and if we look at the then versions names like Android, then beta came, then cupcake, donut, eclair, froyo, gingerbread, honey comp, ice cream sandwich, jelly bean, Kit Kat and lollipop. Interesting thing about all these version names are that they are named after some desert and they are in alphabetically ordered. So lollipop is the latest version. Having all these various versions, what is the update process from previous version to next version? Google releases the Android version and these versions are ready to use for flagship devices of Google. Comes under the tag Google Nexus and for other manufacturers like Samsung, Toshiba, LG, they need to configure the newer version for their devices and for their manufacturer applications. So for older devices manufacturer may not give the updates very soon because the priority for manufacturer is the releasing new devices not supporting the older devices. Why it is necessary to know update process of Android? Because if we want to have access of latest features of Android, we should go for flagship devices. So let's look at Android architecture which is layered. Bottom layer is Linus kernel which provides access to hardware drivers like Wi-Fi drivers, camera, display and many more. Then we have libraries which are general purpose like SSL secure socket layer. Then we have SQLite database, we have WebKit, open source web browser, Inzen. We have Android runtime, Dalvik virtual machine which provides the runtime environment for the applications. So Android runtime is the enhanced version of Dalvik virtual machine. In newer Android versions, Android runtime replaces Dalvik virtual machines. Then we have application framework, consists of activity manager which is responsible for handling life cycle of activities like opening them, closing them. Then we have window manager which is responsible for transition between windows, animation and what to display and how to display. And then we have location manager which is responsible for providing services related to locations and updates. Then we have applications which runs on application framework like contacts, browser, phone and many more. From the programming language perspectives, bottom most layer is written in C, libraries are written in C, C++, application framework written in Java and applications are also written in Java. So applications are varying from contacts to browsers to phone. So let's look at the applications in more detail. Android applications mainly known as apps, we can compare the application model with the web. In web model, we do not need to install any applications on our operating system. We just use the web browser and run those applications. Example is Microsoft Office versus Google Docs. Google Docs is a web browser application. We do not need to install anything to use the Google Docs, but using Microsoft Office, we first need to install the Microsoft Office on an operating system. Similarly, with apps, we need to install them on our operating system. And there are more than 1.4 million apps and these apps vary from different fields like gaming, Angry Birds, educational applications like Duolingo for learning languages. Then we have social networking applications like Facebook, Twitter and some utilities like Maps. All apps are equal and they run in sandbox environment. So these applications do not interfere with each other. So they cannot impact the performance of each other. So it separates out the concern of security from having interference from other applications. Where do we get all these applications? So we have some online repositories of applications like Google Play, Amazon App Store for Android and third party repositories like Android Payton, Gadger. These repositories vary in sense. They have different review process. Some repositories provide application support for different operating system not only for Android like Apple iOS and Windows mobiles. The largest repository is the Google Play which consists of 1.4 million apps. And till now we have more than 50 billion downloads. So now we will look at the security aspect of Android. So if you look at our current smartphone devices we have sensitive information like we have files on our device, we have call data, we have contacts, we have our location history and we have pictures and many other private documents. So there are 100 plus permissions provided by Android and these permissions are need to be granted explicitly from the user for any applications to use them. They are sensitive information. So in summary we have looked at the Android, how it's different from the traditional operating system and what is the architecture of Android, what all the main components and what is the update process of various versions of Android and what is the application model and security model. Thank you.