Android Introduction World is contracting with the growth of mobile phone technology. As the number of users is increasing day by day, facilities are also increasing. Starting with simple regular handsets which were used just for making phone calls, mobiles have changed our lives and have become part of it. Now they are not used just for making calls but they have innumerable uses and can be used as a Camera , Music player, Tablet PC, T.V. , Web browser etc . And with the new technologies, new software and operating systems are required. @2015 Dr Faisal Nafie 1 What is Android One of the most widely used mobile OS these days is ANDROID. Android is a software bunch comprising not only operating system but also middleware and key applications. Android Inc was founded in Palo Alto of California, U.S. by Andy Rubin, Rich miner, Nick sears and Chris White in 2003. Later Android Inc. was acquired by Google in 2005. After original release there have been number of updates in the original version of Android @2011 Mihail L. Sichitiu 2 Continue Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies. Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android. The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008. @2011 Mihail L. Sichitiu 3 Continue On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user interface, both in terms of functionality and performance. The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2. @2011 Mihail L. Sichitiu 4 Continue @2011 Mihail L. Sichitiu 5 Features of Android Android is a powerful operating system competing with Apple 4GS and supports great features. Few of them are listed below: Feature Description Beautiful UI Android OS basic screen provides a beautiful and intuitive user interface Connectivity GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX. Storage SQLite, a lightweight relational database, is used for data storage purposes. 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 Messaging SMS and MMS @2011 Mihail L. Sichitiu 6 Continue Feature Description Web browser Based on the open-source Web Kit layout engine, coupled with Chrome's V8 JavaScript engine supporting HTML5 and CSS3. Multi-touch Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero Multi-tasking User can jump from one task to another and same time various application can run simultaneously. Resizable widgets Widgets are resizable, so users can expand them to show more content or shrink them to save space @2011 Mihail L. Sichitiu 7 Continue Feature Description Multi-Language Supports single direction and bi-directional text. 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. Wi-Fi Direct A technology that lets apps discover and pair directly, over a high-bandwidth peer-to-peer connection Android Beam A popular NFC-based technology that lets users instantly share, just by touching two NFCenabled phones together. @2011 Mihail L. Sichitiu 8 Features & Specifications Android is a powerful Operating System supporting a large number of applications in Smart Phones. These applications make life more comfortable and advanced for the users. Hardware's that support Android are mainly based on ARM architecture platform. Some of the current features and specifications of android are: @2011 Mihail L. Sichitiu 9 Continue @2011 Mihail L. Sichitiu 10 Continue Android comes with an Android market which is an online software store. It was developed by Google. It allows Android users to select, and download applications developed by third party developers and use them. There are around 2.0 lack+ games, application and widgets available on the market for users. Android applications are written in java programming language. Android is available as open source for developers to develop applications which can be further used for selling in android market. There are around 200000 applications developed for android with over 3 billion+ downloads. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. For software development, Android provides Android SDK (Software development kit). Read more about open source software. @2011 Mihail L. Sichitiu 11 Applications These are the basics of Android applications: Android applications are composed of one or more application components (activities, services, content providers, and broadcast receivers) Each component performs a different role in the overall application behavior, and each one can be activated individually (even by other applications) The manifest file must declare all components in the application and should also declare all application requirements, such as the minimum version of Android required and any hardware configurations required Non-code application resources (images, strings, layout files, etc.) should include alternatives for different device configurations (such as different strings for different languages). @2011 Mihail L. Sichitiu 12 Continue Google, for software development and application development, had launched two competitions ADC1 and ADC2(Android Developer Challenge) for the most innovative applications for Android. It offered prizes of USD 10 million combined in ADC1 and 2. ADC1 was launched in January 2008 and ADC 2 was launched in May 2009. These competitions helped Google a lot in making Android better, more user friendly, advanced and interactive. @2011 Mihail L. Sichitiu 13 The Android Platform Android is an operating system and a software platform upon which applications are developed. A core set of applications for everyday tasks, such as Web browsing and email, are included on Android handsets. As a product of the Open Handset Alliance’s vision for a robust and open source development environment for wireless, Android is an emerging mobile development platform. The platform was designed for the sole purpose of encouraging a free and open market that all mobile applications phone users might want to have and software developers might want to develop. @2011 Mihail L. Sichitiu 14 Android Platform Differences Android is hailed as “the first complete, open, and free mobile platform.” Complete: The designers took a comprehensive approach when they developed the Android platform. They began with a secure operating system and built robust software framework on top that allows for rich application development opportunities. Open: The Android platform is provided through open source licensing. Developers have unprecedented access to the handset features when developing. @2011 Mihail L. Sichitiu 15 Continue Open: The Android platform is provided through open source licensing. Developers have unprecedented access to the handset features when developing applications. Free: Android applications are free to develop. There are no licensing or royalty fees to develop on the platform. No required membership fees. No required testing fees. No required signing or certification fees. Android applications can be distributed and commercialized in a variety of ways. @2011 Mihail L. Sichitiu 16 Android’s Underlying Architecture The Android platform is designed to be more fault-tolerant than many of its predecessors. The handset runs a Linux operating system, upon which Android applications are executed in a secure fashion. Each Android application runs in its own virtual machine (Figure 1).Android applications are managed code; therefore, they are much less likely to cause the phone to crash, leading to fewer instances of device corruption (also called "bricking” the phone, or rendering it useless). @2011 Mihail L. Sichitiu 17 Diagram of the Android platform architecture Figure 1 @2011 Mihail L. Sichitiu 18 The Linux Operating System The Linux 2.6 kernel handles core system services and acts as a hardware abstraction layer (HAL) between the physical hardware of the handset and the Android software stack. Some of the core functions the kernel handles include: Enforcement of application permissions and security Low-level memory management Process management and threading The network stack Display, keypad input,camera,WiFi, Flash memory, audio, and binder (IPC) driver access @2011 Mihail L. Sichitiu 19 Android Application Runtime Environment Each Android application runs in a separate process, with its own instance of the Dalvik virtual machine (VM). Based on the Java VM, the Dalvik design has been optimized for mobile devices. The Dalvik VM has a small memory footprint and multiple instances of the Dalvik VM can run concurrently on the handset. Dalvik is a process virtual machine (VM) in Google's Android operating system that executes applications written for Android Security and Permissions: The integrity of the Android platform is maintained through a variety of security measures. @2011 Mihail L. Sichitiu 20 Continue Applications as Operating System Users When an application is installed, the operating system creates a new user profile associated with the application. Each application runs as a different user, with its own private files on the file system, a user ID, and a secure operating environment. The application executes in its own process with its own instance of the Dalvik VM and under its own user ID on the operating system. @2011 Mihail L. Sichitiu 21 Continue Explicitly Defined Application Permissions: To access shared resources on the system, Android applications register for the specific privileges they require. Some of these privileges enable the application to use phone functionality to make calls, access the network, and control the camera and other hardware sensors. Applications also require permission to access shared data containing private and personal information such as user preferences, user’s location, and contact information. Applications might also enforce their own permissions by @2011 Mihail L. Sichitiu 22 Continue declaring them for other applications to use. The application can declare any number of different permission types, such as readonly or read-write permissions, for finer control over the application. Android Application Framework: The Android application framework provides everything necessary to implement your average application. The Android application lifecycle involves the following key components: @2011 Mihail L. Sichitiu 23 Continue Activities are functions the application performs. Groups of views define the application’s layout. Intents inform the system about an application’s plans. Services allow for background processing without user interaction. Notifications alert the user when something interesting happens. @2011 Mihail L. Sichitiu 24 Continue Mobile software development has evolved over time. Android has emerged as a new mobile development platform, building on past successes and avoiding past failures of other platforms. Android was designed to empower the developer to write innovative applications. The platform is open source, with no up-front fees, and developers enjoy many benefits over other competing platforms. Now it’s time to dive deeper and start writing Android code, so you can evaluate what Android can do for you. In the next chapter, we configure the Android development environment and take a brief walk through the Android SDK. @2011 Mihail L. Sichitiu 25