"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
Android Operating System
1. Under the Guidance of Prof. Y. S. KALE Submitted By: SUNIL MAURYA B-TECH SEM VIII, COMP-II, Roll No. 22 DEPARTMENT OF COMPUTER ENGINEERING BHARTI VIDYAPEETH COLLEGE OF ENGINEERING, PUNE
2. Outlines 1. Introduction 2. Platform 3. Process Scheduling 4. Software development & SDK 5. Overall evaluation SUNIL MAURYA COMP-II Roll No 22 2
3. What is Android? A complete software stack for mobile devices. Android is A first joined project of the Open Handset Alliance (OHA). It’s a First open, complete and free platform Its Software stack is open-sourced and licensed under Apache 2.0 In Android Source code will be available to everyone and anyone will have the capability to built an image The Android platform includes an operating system, a middleware and some applications. Android is very Lightweight and fully featured Developers can extend and replace existing components A generous development environment A SDK is available to build, compile, test and debug user applications. Applications are developed using Java programming language No difference between the built-in applications and the user ones SUNIL MAURYA COMP-II Roll No 22 3
4. Introduction What is the Open Handset Alliance (OHA)? ->It's a consortium of several companies SUNIL MAURYA COMP-II Roll No 22 4
5.
6. Develop technologies that will significantly lower the cost of developing and distributing mobile devices and servicesSUNIL MAURYA COMP-II Roll No 22 5
8. SUNIL MAURYA COMP-II Roll No 22 7 Versions The most recent released versions of Android are: 2.0/2.1 (Eclair), which revamped the user interface and introduced HTML5 and Exchange ActiveSync 2.5 support 2.2 (Froyo), which introduced speed improvements with JIT optimization and the Chrome V8 JavaScript engine 2.3 (Gingerbread), which refined the user interface, improved the soft keyboard and copy/paste features, and added support for Near Field Communication 3.0 (Honeycomb), a tablet-orientedrelease which supports larger screen devices and introduces many new user interface features, and supports multicore processors and hardware acceleration for graphics.[The upcoming version of Android is: Ice Cream Sandwich,[a combination of Gingerbread and Honeycomb into a "cohesive whole,"with a possible release in mid-2011.
16. Android applications have common structure Views such as lists, grids, text boxes, buttons, and even an embeddable web browser An Activity Manager that manages the life cycle of applications and provides a common navigation backstack A Notification Manager that enables all apps to display custom alerts in the status bar Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files SUNIL MAURYA COMP-II Roll No 22 12
17. Android applications have common structure Broadcast receivers can trigger intents that start an application Activity is the presentation layer of your app: there will be one per screen, and the Views provide the UI to the activity Data storage provide data for your apps, and can be shared between apps – database, file, and shared preferences (hash map) used by group of applications Intents specify what specific action should be performed Services run in the background and have no UI for the user – they will update data, and trigger events SUNIL MAURYA COMP-II Roll No 22 13
18. There is a common file structure for applications code Autogenerated resource list files images UI layouts constants SUNIL MAURYA COMP-II Roll No 22 14
19. Intent provides late running binding to other apps It can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed. Written as action/data pairs such as: VIEW_ACTION/ACTION content://contacts/1 SUNIL MAURYA COMP-II Roll No 22 15
20. Services declared in the manifest and provide support Services run in the background: Music player providing the music playing in an audio application Intensive background apps, might need to spawn their own thread so as to not block the application SUNIL MAURYA COMP-II Roll No 22 16
21. Notifications let you know of background events This way you know that an SMS arrived, or that your phone is ringing, and the MP3 player should pause SUNIL MAURYA COMP-II Roll No 22 17
22. Content Providers share data You need one if your application shares data with other applications This way you can share the contact list with the IM application If you don’t need to share data, then you can use SQLlite database SUNIL MAURYA COMP-II Roll No 22 18
23. UI layouts are in Java and XML setContentView(R.layout.hello_activity); //will load the XML UI file SUNIL MAURYA COMP-II Roll No 22 19
24. Security in Android follows standard Linux guidelines Each application runs in its own process Process permissions are enforced at user and group IDs assigned to processes Finer grained permissions are then granted (revoked) per operations <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.app.myapp" > <uses-permission id="android.permission.RECEIVE_SMS" /> </manifest> SUNIL MAURYA COMP-II Roll No 22 20
28. Priorities: Android 2.2 Scheduling • Static priority The maximum size of the time slice a process should be allowed before being forced to allow other processes to compete for the CPU. • Dynamic priority The amount of time remaining in this time slice; declines with time as long as the process has the CPU. When its dynamic priority falls to 0, the process is marked for rescheduling. • Real-time priority Only real-time processes have the real-time priority. Higher real-time values always beat lower values Android – process priority is dynamic. Scheduler increases/decreases the priority. SUNIL MAURYA COMP-II Roll No 22 24
29. Android Scheduling Process Selection A process’s scheduling class defines which algorithm to apply most deserving process is selected by the scheduler real time processes are given higher priority than ordinary processes when several processes have the same priority, the one nearest the front of the run queue is chosen when a new process is created the number of ticks left to the parent is split in two halves, one for the parent and one for the child priority and counter fields are used both to implement time-sharing and to compute the process dynamic priority SUNIL MAURYA COMP-II Roll No 22 25
30. Android makes mobile Java easier Well, sort of… SUNIL MAURYA COMP-II Roll No 22 26
31. Android applications are written in Java package com.google.android.helloactivity; import android.app.Activity; import android.os.Bundle; public class HelloActivity extends Activity { public HelloActivity() { } @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.hello_activity); } } SUNIL MAURYA COMP-II Roll No 22 27
32. Android applications are compiled to Dalvik bytecode Linux OS Loaded into Dalvik VM Write app in Java Compiled in Java Transformed to Dalvik bytecode SUNIL MAURYA COMP-II Roll No 22 28
33. Android has a working emulator SUNIL MAURYA COMP-II Roll No 22 29
48. The consumer will benefit from having a wide range of mobile applications to choose from since the monopoly will be broken by Google Android
49. We will be able to customize a mobile phones using Google Android platform like never before
50. Features like weather details, opening screen, live RSS feeds and even the icons on the opening screen will be able to be customized
51. In addition the entertainment functionalities will be taken a notch higher by Google Android being able to offer online real time multiplayer games SUNIL MAURYA COMP-II Roll No 22 32
56. Wireless keyboards But it'll work with Bluetooth headsets, but that's about it Firefox Mobile isn't coming to Android Apps in Android Market need to be programmed with a custom form of Java -> Mozilla and the Fennec won't have that SUNIL MAURYA COMP-II Roll No 22 33
57.
58. The OHA is committed to make their vision a reality: to deploy the Android platform for every mobile operator, handset manufacturers and developers to build innovative devices
59. Intel doesn’t want to lose ownership of the netbook market, so they need to prepare for anything, including Android
60. Fujitsu launched an initiative to offer consulting and engineering expertise to help run Android on embedded hardware, which aside from cellphones, mobile internet devices, and portable media players, could include GPS devices, thin-client computers and set-top boxes.
61. More Android devices are coming and some will push the envelope even further SUNIL MAURYA COMP-II Roll No 22 34
62. Conclusion We can only hope that the next versions of Android have overcome the actual limitations and that the future possibilities became a reality There are lots of sources of information The sdk comes with the API references, sample applications and lots of docs Blog http://android-developers.blogspot.com/ which has lots of useful examples, details There is http://www.anddev.org SUNIL MAURYA COMP-II Roll No 22 35