ANDROIDPlatform Architecture & Development Options
• A robust, free, open-source operating system for mobile devices. • Linux-based operating system designedWHAT IS primarily for touchscreen mobileANDROID OS? devices such as smartphones and tablets computers, developed by Google in conjunction with Open Handset Alliance. • Google releases the Android code as open source under the Apache license as Android Open Source Project (AOSP), led by a team at Google led by Andy Rubin. • open customizable nature. • Android applications are written in java and run in virtual machines. For this purpose Android features the Dalvik virtual machine which executes its own byte code.
INTERFACE & • Interface VERSION • Version History HISTORY Version Release date Features4.1.x Jelly Bean July 9, 2012 Audio chaining, Enhanced accessibility, Expandable notifications, Improved voice search, Google Wallet, Multichannel audio, USB audio4.0.x Ice Cream October 19, 2011 Face Unlock, Improved camera app with zero shutter lag, Built-in photo editor, AndroidSandwich Beam, Stability improvements3.x.x Honeycomb February 22, 2011 UI refinements, Connectivity for USB accessories, Ability to encrypt all user data2.3.x Gingerbread December 6, 2010 UI updates, Improved battery efficiency, Support for NFC, Native support for SIP VoIP internet telephony2.2 Froyo May 20, 2010 Performance optimizations, just in time compiler, tethering and Wi-Fi hotspot capability, Adobe Flash support, enhanced Microsoft Exchange support, OpenGL ES 2.0 support2.0, 2.1 Eclair October 26, 2009 Major UI update, Bluetooth 2.1 (new OPP and PBAP profiles), media framework improvements, Microsoft Exchange support1.6 Donut September 15, 2009 Gesture support, support for higher screen resolutions (WVGA), text-to-speech engine, Virtual Private Network1.5 Cupcake April 30, 2009 UI updates, on-screen keypad, video recording and playback, Bluetooth, accelerometer based application rotation1.1 Initial Release February 2009 Initial release
DISTRIBUTION DistributionOF ANDROID Version Release date API level (October 2, 2012)VERSIONS 4.1.x, 4.2 Jelly Bean July 9, 2012 16 1.8% 4.0.x Ice Cream October 19, 14-15 23.7% Sandwich 2011 3.x.x Honeycomb February 22, 11-13 1.9% 2011 2.3.x Gingerbread December 6, 9-10 55.8% 2010 2.2 Froyo May 20, 2010 8 12.9% 2.0, 2.1 Eclair October 26, 7 3.4% 2009 1.6 Donut September 15, 4 0.4% 2009 1.5 Cupcake April 30, 2009 3 0.1%
SECURITY & • Applications run in a sandboxPRIVACY • Permission system for applications for installation • Security software apps
NATIVELIBRARIES • Includes – Surface Manager – Media framework – SQLite – Webkit – OpenGL – Free Type – SGL – SSL – libc
ANDROIDRUNTIME • Dalvik Virtual Machine – A type of JVM used in android devices to run apps – Register based VM – Dalvik Executable (.dex) – DX tool • Core Java libraries – These are different from Java SE and Java ME libraries. However, these libraries provide most of the functionalities defined in the Java SE libraries.
APPLICATIONS • Applications are the top layer in the Android architecture and this is where our applications are going to fit. • Several standard applications come pre- installed with every device, such as: » SMS client app » Dialer » Web browser » Contact manager » Calendar » Maps
• Activities – Activity is an individual user interface screen where view can be placed. – The widget in an activity can be created by either pure java code or by adding XML code. – Activity class. – Life cycle – Active/Running State – Paused State – Stopped State – Destroyed/Dead State
• Services – Android application component that runs in background and has no visual UI. – can be started by another Android application component such as an activity or other services . – services are less likely to be destroyed by Android system to free resources, than Activities. – Service class. – Types – Unbound services – Bound services
• Content Providers – provide a flexible way to make data available across applications. – through content providers other applications are able to query access or even modify the data you’ve created, as long as your content provider allows it. – ContentProvider class.• Broadcast Receivers – used to receive messages that are broadcasted by the Android system or other Android applications. – Examples » Warning that the battery is getting low » Screen turned off » Change of time zone » The camera has been used to take a picture
• Intents – component activating mechanism in Android. – constitutes the core message system in Android and defines a message to activate a particular component. – Types: • Explicit Intents • Implicit Intents
• Design Requirements • Design Overview – Every Android application runs in itsDALVIK VM own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool. – The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management. • .dex file format • Zygote • Register-based Architecture • Security