Revolution in Mobile Technology - Android: Karuna K. Patil, Jahanvi V. Karjinni
Revolution in Mobile Technology - Android: Karuna K. Patil, Jahanvi V. Karjinni
PCH NO. 96, Third Semester, Dept. of CSE, GIT, Belgaum, INDIA Ph no.7760933842 [email protected]
PCH NO. 90, Third Semester, Dept. of ECE, GIT, Belgaum, INDIA Ph no.8762225699 [email protected]
Abstract The Android is the revolution in the mobile technology. It is very popularly used because of Open Handset Alliances (OHA) so anyone can use this operating system. It has many exciting features which makes it distinct from others. It is very easy to use. It has different versions. Froyo, Eclair, Dounut, Gingerbread, Honeycomb these are released versions of Android and Ice Cream Sandwich is the future released version. Keywords Android, Open Handset Alliance (OHA), Linux Kernel, Froyo, clair, Dounut, Gingerbread, Honeycomb, Ice Cream Sandwich
the best-selling smartphone platform worldwide in Q4 2010 by Canalys. II. ANDROID It is a software platform and operating system for mobile devices like smartphones and tablets. It is based on the Linux kernel. It is developed by Google and later it is the Open Handset Alliance (OHA).It allows the writing managed code in the Java language. It is possibility to write applications in other languages such as c/c++ and compiling it to ARM native code but it is not supported by Google. A. Foundation Android, Inc. was founded in Palo Alto, California, United States in October, 2003 by Andy Rubin (co-founder of Danger), Rich Miner(co-founder of Wildfire Communications, Inc.),Nick Sears (once VP at T-Mobile), and Chris White (headed design and interface development at WebTV) to develop, in Rubin's words "...smarter mobile devices that are more aware of its owner's location and preferences". Despite the obvious past accomplishments of the founders and early employees, Android Inc. operated secretively, revealing only that it was working on software for mobile phones. B. Acquisition
I. INTRODUCTION Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language Android is an operating system for mobile devices such as Smartphone and tablet computers. It is developed by the Open Handset Alliance led by Google. Google purchased the initial developer of the software, Android Inc., in 2005. The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 84 hardware, software, and telecommunication companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software license. The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android. Android consists of a kernel based on the Linux kernel, with middleware, libraries and APIs written in C and application software running on an application framework which includes Java-compatible libraries based on Apache Harmony. Android uses the Dalvik virtual machine with just-in-time compilation to run compiled Java code. Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. Developers write primarily in a customized version of Java. There are currently more than 250,000 apps available for Android. Apps can be downloaded from third-party sites or through online stores such as Android Market, the app store run by Google. Android was listed as
1) Acquisition by Google: Google acquired Android Inc. in August 2005, making Android Inc. a wholly owned subsidiary of Google Inc. Not much was known about Android Inc. at the time of the acquisition, but many assumed that Google was planning to enter the mobile phone market with this move. 2) Post-acquisition development: At Google, the team led by Rubin developed a mobile device platform powered by the Linux kernel. Google marketed the platform to handset makers and carriers on the premise of providing a flexible, upgradable system. Google had lined up a series of hardware component and software partners and signaled to carriers that it was open to various degrees of cooperation on their part.
Speculation about Google's intention to enter the mobile communications market continued to build through December 2006. Reports from the BBC and The Wall Street Journal noted that Google wanted its search and applications on mobile phones and it was working hard to deliver that. Print
and online media outlets soon reported rumors that Google was developing a Google-branded handset. Some speculated that as Google was defining technical specifications, it was showing prototypes to cell phone manufacturers and network operators. In September 2007, InformationWeek covered an Evalueserve study reporting that Google had filed several patent applications in the area of mobile telephony
production of the Motorola Xoom, and they did not want third parties creating a "really bad user experience" by attempting to put onto smartphones a version of Android intended for tablets. Google later confirmed that the Honeycomb source code would not be released until after it was merged with the Gingerbread release in Ice Cream Sandwich III. ANROID ARCHITECTURE
3) Open Handset Alliance: On November 5, 2007, the Open Handset Alliance, a consortium of several companies which include Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidi, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile and Texas Instruments unveiled itself. The goal of the Open Handset Alliance is to develop open standards for mobile devices. On the same day, the Open Handset Alliance also unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6.
On December 9, 2008, 14 new members joined, including ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Huawei Technologies, PacketVideo, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group Plc.
4) License: With the exception of brief update periods, Android has been available under a free and open source software license since October 21, 2008 until March 2011. Google published the entire source code (including network and telephony stacks) under an Apache License. Google also keeps the reviewed issues list publicly open for anyone to see and comment.
Even though the software is open source, device manufacturers cannot use Google's Android trademark unless Google certifies that the device complies with their Compatibility Definition Document (CDD). Devices must also meet this definition to be eligible to license Google's closed-source applications, including the Android Market. In September 2010, Skyhook Wireless filed a lawsuit against Google in which they alleged that Google had used the compatibility document to block Skyhook's mobile positioning service (XPS) from Motorola's Android mobile devices. In December 2010 a judge denied Skyhook's motion for preliminary injunction, saying that Google had not closed off the possibility of accepting a revised version of Skyhook's XPS service, and that Motorola had terminated their contract with Skyhook because Skyhook wanted to disable Google's location data collection functions on Motorola's devices, which would have violated Motorola's obligations to Google and its carriers. In early 2011, Google chose to withhold the Android source code to the tablet-only Honeycomb release, creating a controversy over Google's commitment to open source with Android. The reason, according to Andy Rubin in an official Android blog post, was because Honeycomb was rushed for
Fig. 1 The above diagram shows the major components of the Android operating system.
A. Applications Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language. B. Application framework By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more. Developers have full access to the same framework APIs used by the core applications. The application architecture is designed to simplify the reuse of components; any application can publish its capabilities and any other application may then make use of those capabilities (subject to security constraints enforced by the framework). This same mechanism allows components to be replaced by the user.
1) Open: Android was built from the ground-up to enable developers to create compelling mobile applications that take full advantage of all a handset has to offer. It was built to be truly open. For example, an application can call upon any of the phones core functionality such as making calls, sending text messages, or using the camera, allowing developers to create richer and more cohesive experiences for users. Android is built on the open Linux Kernel. Furthermore, it utilizes a custom virtual machine that was designed to optimize memory and hardware resources in a mobile environment. Android is open source; it can be liberally extended to incorporate new cutting edge technologies as they emerge. The platform will continue to evolve as the developer community works together to build innovative mobile applications. 2) All applications are created equal: Android does not differentiate between the phones core applications and thirdparty applications. They can all be built to have equal access to a phones capabilities providing users with a broad spectrum of applications and services. With devices built on the Android Platform, users are able to fully tailor the phone to their interests. They can swap out the phone's homescreen, the style of the dialer, or any of the applications. They can even instruct their phones to use their favourite photo viewing application to handle the viewing of all photos. 3) Breaking down application boundaries: Android breaks down the barriers to building new and innovative applications. For example, a developer can combine information from the web with data on an individuals mobile phone such as the users contacts, calendar, or geographic location to provide a more relevant user experience. With Android, a developer can build an application that enables users to view the location of their friends and be alerted when they are in the vicinity giving them a chance to connect. 4) Fast & easy application development: Android provides
access to a wide range of useful libraries and tools that can be used to build rich applications. For example, Android enables developers to obtain the location of the device, and allows devices to communicate with one another enabling rich peer topeer social applications. In addition, Android includes a full set of tools that have been built from the ground up alongside the platform providing developers with high productivity and deep insight into their applications. C. Operating system Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view SGL - the underlying 2D graphics engine 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer FreeType - bitmap and vector font rendering SQLite - a powerful and lightweight relational database engine available to all applications D. Android runtime Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language. Every Android application runs in its 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. E. Linux kernel Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack. Android's kernel is derived from the Linux kernel. Google contributed code to the Linux kernel as part of their Android effort, but certain features, notably a power management feature called wakelocks, were rejected by mainline kernel developers, so the Android kernel is now a separate version or fork of the Linux kernel. In September 2010 Linux developer Rafael J. Wysocki added a patch that improved the mainline Linux wakeup events framework. He said that Android device drivers that use wakelocks can now be easily merged into mainline Linux, but that Android's opportunistic suspend
features should not be included in the mainline kernel. In 2011 Linus Torvalds said that "eventually Android and Linux would come back to a common kernel, but it will probably not be for four to five years." Google announced in April 2010 that they would hire two employees to work with the Linux kernel community. Greg Kroah-Hartman, the current Linux kernel maintainer for the -stable branch, said in December 2010 that he was concerned that Google was no longer trying to get their code changes included in mainstream Linux. Some Google Android developers hinted that "the Android team was getting fed up with the process", because they were a small team and had more urgent work to do on Android. Android does not have a native X Window System nor does it support the full set of standard GNU libraries, and this makes it difficult to port existing Linux applications or libraries to Android. F. Hardware Android is not a single piece of hardware; it's a complete, end-to-end software platform that can be adapted to work on any number of hardware configurations. Everything is there, from the bootloader all the way up to the applications. The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional Smartphone layouts. The Handset layouts are as below 1) Storage: SQLite, a lightweight relational database, is used for data storage purposes. 2) Connectivity: Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi, LTE, NFC and WiMAX. 3) Messaging :SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud To Device Messaging Framework (C2DM) is also a part of Android Push Messaging service. 4) Multiple language support: Android supports multiple human languages. The number of languages more than doubled for the platform 2.3 Gingerbread. 5) Web browser: The web browser available in Android is based on the open-source WebKit layout engine, coupled with Chrome's V8 JavaScript engine. The browser scores a 93/100 on the Acid3 Test. 6) Java support: While most Android applications are written in Java, there is no Java Virtual Machine in the platform and Java byte code is not executed. Java classes are compiled into Dalvik executables and run on Dalvik, a specialized virtual machine designed specifically for Android and optimized for battery-powered mobile devices with limited memory and CPU. J2ME support can be provided via third-party applications.
7) Media support: Android supports the following audio/video/still media formats: WebM, H.263, H.264 (in 3GP or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC (in MP4 or 3GP container), MP3, MIDI, Ogg Vorbis, FLAC, WAV, JPEG, PNG, GIF, BMP. Streaming media support. RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 <video> tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by the Flash plugin. Apple HTTP Live Streaming is supported by RealPlayer for Mobile, and by the operating system in Android 3.0 (Honeycomb). 8) Additional hardware support: Android can use video/still cameras, touch screens, GPS, accelerometers, gyroscopes, magnetometers, dedicated gaming controls, proximity and pressure sensors, thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics. 9) Multi-touch: Android has native support for multitouch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level (possibly to avoid infringing Apple's patents on touch-screen technology at the time).Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively. 10) Bluetooth: Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) support is available in Android 3.1+, and in earlier versions through manufacturer customizations and third-party applications. 11) Video calling: Android does not support native video calling, but some handsets have a customized version of the operating system that supports it, either via the UMTS network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 and later. Gingerbread allows Nexus S to place Internet calls with a SIP account. This allows for enhanced VoIP dialing to other SIP accounts and even phone numbers. Skype 2.1 offers video calling in Android 2.3, including front camera support. 12) Multitasking: available. Multitasking of applications is
13) Voice based features: Google search through voice has been available since initial release. Voice actions for calling, texting, navigation, etc. are supported on Android 2.2 onwards. 14) Tethering: Android supports tethering, which allows a phone to be used as a wireless/wired Wi-Fi hotspot. Before Android 2.2 this was supported by third-party applications or manufacturer customizations. 15) Screen capture: Android does not support screenshot capture as of 2011. This is supported by manufacturer and third-party customizations. Screen Capture is available through a PC connection using the DDMS developer's tool.
1) Security: Android is a multi-process system, in which each application (and parts of the system) runs in its own process. Most security between applications and the system is enforced at the process level through standard Linux facilities, such as user and group IDs that are assigned to applications.
Additional finer-grained security features are provided through a "permission" mechanism that enforces restrictions on the specific operations that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.
Android's purpose is to establish an open platform for developers to build innovative mobile apps. Three key components work together to realize this platform. The Android Compatibility Program defines the technical details of Android platform and provides tools used by OEMs to ensure that developers apps run on a variety of devices. The Android SDK provides built-in tools that Developers use to clearly state the device features their apps require. And Android Market shows apps only to those devices that can properly run them. These pages describe the Android Compatibility Program and how to get access to compatibility information and tools. The latest version of the Android source code and compatibility program is 2.3, which corresponded to the Gingerbread branch. Why build compatible Android devices?
2) Privacy: Android smartphones have the ability to report the location of Wi-Fi access points it encounters as phone users move around to build vast databases containing physical locations of hundreds of millions of such access points. These databases form electronic maps to locate smartphones, allowing them to run apps like Foursquare and companies like Google to deliver location-based ads.
One design issue is that average users have no feasible ability to monitor how downloaded applications access and use private and sensitive data (e.g. location and hardware ID numbers). Even during installation, permission checks do not often indicate to the user how critical services and data will be used or misused. To identify how such information may be exfiltrated there is a need for third party monitoring software, such as TaintDroid (an academic research-funded project). Installing such low-level monitoring tools requires programming skills, reflashing the ROM, and voids the warranty. Users can also be notified of an application's behavior via a license agreement that is usually (not always, due to lack of enforcement), displayed on first use of the application but it is generally accepted that majority of the users do not read or understand the legal fine print in license agreements and often just skip and accept them.
1) Users want a customizable device: A mobile phone is a highly personal, always-on, always-present gateway to the Internet. We haven't met a user yet who didn't want to customize it by extending its functionality. That's why Android was designed as a robust platform for running aftermarket applications. 2) Developers outnumber us all: No device manufacturer can hope to write all the software that a person could conceivably need. We need third-party developers to write the apps users want, so the Android Open Source Project aims to make it as easy and open as possible for developers to build apps. 3) Everyone needs a common ecosystem: Every line of code developers write to work around a particular phone's bug is a line of code that didn't add a new feature. The more compatible phones there are, the more apps there will be. By building a fully compatible Android device, you benefit from the huge pool of apps written for Android, while increasing the incentive for developers to build more of those apps. 4) Android compatibility is free, and it's easy: If you are building a mobile device, you can follow these steps to make sure your device is compatible with Android. For more details about the Android compatibility program in general, see the program overview.
Building a compatible device is a three-step process:
Obtain the Android software source code. This is the source code for the Android platform that you port to your hardware.
Fig. 2 Performance of anroid
H. Compatibility
Comply with Android Compatibility Definition Document (CDD). The CDD enumerates the software and hardware requirements of a compatible Android device. Pass the Compatibility Test Suite (CTS). You can use the CTS (included in the Android source code) as an ongoing aid to compatibility during the development process
IV. VERSION HISTORY Android has seen a number of updates since its original release, each fixing bugs and adding new features. Each version is named, in alphabetical order, after a dessert. A. Recent releases
performance, support for native code development, power management and application control, along with the increased video quality and support for multiple cameras, are the major features that are included in Gingerbread. 3.0 Honeycomb: It was a tablet-oriented release which supports larger screen devices and introduces many new user interface features, and supports multicore processors and hardware acceleration for graphics. The Honeycomb SDK has been released and the first device featuring this version, the Motorola Xoom tablet, went on sale in February 2011. Android Honeycomb is the latest Android version, 3.0, and its SDK has been released recently. It is a tablet-only release and would be concentrating mainly on tablets. It would include support for multi-core processors and would mainly concentrate on multi-tasking and a decent browsing experience. 3.1 Honeycomb: It was announced at the 2011 Google I/O on 10 May 2011. One feature focuses on allowing Honeycomb devices to directly transfer content from USB devices. 3.2 Honeycomb: It is "an incremental release that adds several new capabilities for users and developers". Highlights include optimization for a broader range of screen sizes; new "zoom-to-fill" screen compatibility mode; capability to load media files directly from the SD card; and an extended screen support API, providing developers with more precise control over the UI. B. Future releases Ice Cream Sandwich: It is said to be a combination of Gingerbread and Honeycomb into a "cohesive whole". C. Current Distribution The following pie chart and table is based on the number of Android devices that have accessed Android Market within a 14-day period ending on the data collection date noted below.
1.5 Cupcake: Starting from the first popular version, 1.5 or Cupcake, Android got the basic functionalities for a phone, like recording and watching videos, Bluetooth, keyboards with text prediction and other main functions. 1.6 Dounut: The next version was the Donut or 1.6. Donut brought improvement in the Camera department, with synced gallery features and increased speed while performing Camera related functions. Updated search experience also allowed you to search almost everything on your phone and the internet. 2.0 clair: It included a new web browser, with a new user interface and support for HTML5 and the W3C Geolocation API. It also included an enhanced camera app with features like digital zoom, flash, color effects, and more. 2.1 Eclair: It included support for voice controls throughout the entire OS. It also included a new launcher, with 5 homescreens instead of 3, animated backgrounds, and a button to open the menu (instead of a slider). It also included a new weather app, and improved functionality in the Email and Phonebook apps.
The 2.1, or clair, was the major version which improved almost everything from Bluetooth file transfers to digital zoom, from improved keyboards to new browser UI. Till now, Android had become fairly popular and extremely user friendly 2.2 Froyo: It introduced speed improvements with JIT optimization and the Chrome V8 JavaScript engine, and added Wi-Fi hotspot tethering and Adobe Flash support Froyo brought major changes in the way the Android operating system worked. Almost everything was revamped in this update and Android became a powerful and user friendly OS. Froyo increased general speed of the Android devices by revamping the UI response time and the hardware interaction. USB tethering, Adobe Flash support and installing applications on removable media were the major upgrades over the clair. Currently, this is the most popular Android version that can be found on most phones 2.3 Gingerbread: It refined the user interface, improved the soft keyboard and copy/paste features, SIP support (VoIP calls), and added support for Near Field Communication The latest Android OS version, which was released on 6 December 2010, is 2.3 or Gingerbread. This version brings in a lot of high profile features which will slowly transform the Android Operating system over time. The increase in
th
D. Historical Distribution The following stacked line graph provides a history of the relative number of active Android devices running different
versions of the Android platform. It also provides a valuable perspective of how many devices your application is compatible with, based on the platform version. Notice that the platform versions are stacked on top of each other with the oldest active version at the top. This format indicates the total percent of active devices that are compatible with a given version of Android. For example, if you develop your application for the version that is at the very top of the chart, then your application is compatible with 100% of active devices (and all future versions), because all Android APIs are forward compatible. Or, if you develop your application for a version lower on the chart, then it is currently compatible with the percentage of devices indicated on the yaxis, where the line for that version meets the y-axis on the right. Each dataset in the timeline is based on the number of Android devices that accessed Android Market within a 14day period ending on the date indicated on the x-axis.
be taken a notch higher by Google Android being able to offer online real time multiplayer games B. Limitations Bluetooth limitations: Android doesn't support 1) Bluetooth stereo 2) Contacts exchange 3) Modem pairing 4) Wireless keyboards
VI. CONCLUSIONS We can only hope that the next versions of Android have overcome the actual limitations and that the future possibilities became a reality ACKNOWLEDGMENT The authors are thankful to the Principal, Heads of Dept. of ECE and Dept. of CSE, KLSs Gogte Institute of Belgaum for giving permission and necessary support in preparing this paper. REFERENCES
[1] [2] [3] [4] [5] http://www.wikipedia.com http://www.anroid.com http://android-developers.blogspot.com/ http://www.anddev.org http://www.google.co.in
Fig. 4 Last hystorical collected during a 14-day period ending on Septmber 2, 2011
V. ADVANTAGES AND LIMITATIONS A. Advantages There are a host of advantages that Googles Android will derive from being an open source software. Some of the advantages include:
1) The ability for anyone to customize the Google Android platform. 2) The consumer will benefit from having a wide range of mobile applications to choose from since the monopoly will be broken by Google Android. 3) Men will be able to customize a mobile phones using Google Android platform like never before. 4) Features like weather details, opening screen, live RSS feeds and even the icons on the opening screen will be able to be customized.
As a result of many mobile phones carrying Google Android, companies will come up with such innovative products like the location. In addition the entertainment functionalities will