79
Maxop Engg. Pvt.ltd | MAXOP ENGG. PVT.LT D INDUSTRIAL TRAINING REPORT

Android (2)

Embed Size (px)

Citation preview

MAXOP ENGG. PVT.LTD

INDUSTRIAL TRAINING REPORT

Maxop Engg. Pvt.ltd |

ANDROID SOFTWAREA DISSERTATION Submitted to BPS MAHILA VISHWAVIDYALAYA, Sonipat

School of Science and Engineering In partial fulfillment of the requirement for the award of the degree of Bachelors of computer science Training Report

Submitted to: Mr.Ajit Singh HOD (CSE/IT)

Submitted by:Megha B1265 CSE

2

Preface

Practical knowledge means the visualization of the knowledge, which we readin our books. For this, we perform experiments and get observations.Practical knowledge is very important in every field. One must be familiar with the problems related to that field so that he may solve them and become a successful person.After achieving the proper goal in life, an engineer has to enter in professional life. According to this life, he has to serve an industry, may be public or private sector or self-own. For the efficient work in the field, he must be well aware of the practical knowledge as well as theoretical knowledge.To be a good engineer, one must be aware of the industrial environment and must know about management, working in the industry, labor problems etc. so he can tackle them successfully.Due to all the above reasons and to bridge the gap between theory and practical, our engineering curriculum provides a practical training of 30 days. During this period, a student works in the industry and gets all type of experience and knowledge about theworking and maintenance of various types of machinery.I have undergone my summer training (after 3rd yr.) at Maxop Engg. pvt. ltdThis report is based on the knowledge, which I acquiredduring my training period at the plan.

3

Acknowledgement

It is a great opportunity to express my sincere thanks to all the people, who have contributed to the successful completion of my project work through their support, encouragement and guidance.

I would like to thank Mr.Naresh.kumar (Assistant Manager - System Development)MaxopEngg. Pvt. Ltd. (Gurgaon) for granting permission to carry out this project. I would like to thank Mr.Neerajkumar,Senior Software Engineer MaxopEngg. Pvt. Ltd. (Gurgaon) for their encouragement and support at each step of the project.

I would like to thank Mr. Ajit Singh, HOD, Department of Computer Science for their help and cooperation and being remained interactive with me during the reviews of my project for the various designs and performance issues.

I would also like to thank my friends and fellow trainees for their support and cooperation for completion of the project. Other project team members have also been really helpful in every possible way to accomplish assigned tasks during the period of training.

4

INDEX1.0 OVERVIEW OF INDUSTRIAL TRAINING 1.1 Introduction 1.2 1.3 1.4 1.5 preface acknowledgment certificate introduction to company1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7

Quality police Company Vision Company Mission Company Objectives Classification of department Working of department Valuable costumers

2.0

Introduction to Android 2.1 Brief introduction 2.2 History 2.3 Versions 2.4 Features of Android 2.5 Platforms of Android 2.6 Architecture of Android 2.7 Applications 2.8 Software Development 2.9 Security 2.10 Privacy Concerns 2.11 Marketing 2.12 Advantages and disadvantages

3.0 4.0

Android application creation Bibliography

5

TRAINEE

Name Class Registration Number

Megha CSE-4TH YR TCP/SES/0148

INDUSTRIAL TRAINING

ORGANIZATION

for

Name / Title Branch Department Address(HEAD OFFICE)

MaxopEngg. Pvt.ltd Manesar I.T

S-337, Greater Kailash -II, New Delhi, Delhi - 110 048 (India) (11)-51637223 / 41637223 / 51637274

Telephone E-mail Turnover

[email protected]$ 1-10 Million (or Rs. 4-40 Crore approx.)2003

Year of Establishment:

Manufacturer, Exporter Nature of Business

ORGANIZATIONAL ADMINISTRATORS

GENERAL DIRECTOR Personnel Director Internal Administrator Relative Administrators MR.MARESH.KUMAR MR.NEERAJ KUMAR MR.SUMIT THAKAR

6

Introduction

Maxop Engineering Company Pvt., Ltd. provides aluminum die cast, machined, and assembled products in India. Its products include covers, cylinder heads, housings, fixing brackets, flange drives, cylinders, striker plates, base compressors, end shields, nut assemblies, clutch housings, pump bodies, and connectors. The company also offers brake drums, heat sinks, clutch/brake levers, engine housings, crank cases, brake shoes, wheel clutches, and hub clutches. Maxop Engineering Company Pvt., Ltd. is headquartered in New Delhi, India. The company offers a wide range of cars product across different segments.

QUALITY POLICY Achieve customer delight by exceeding their present and future requirements in terms of quality, cost and delivery. Ensure defect prevention with continuous improvement in process and systems in conformity to world class standards. We shall create learning and sharing environment to encourage all our employees and suppliers to generate competitive advantage and strive to excellence.

ENVIRONMENTAL POLICY We at Maxop Engg. Pvt. LtD, gurgoan engaged in stamping and welding of sheet metal components are committed to prevent, reduce pollution and to continuously improve environmental performance in our business processes and practices. To achieve this, we commit ourselves to: Institutionalize efficient resource utilization / minimize waste and reduce / prevent pollution. Enhance environmental awareness and committed to all personal associated with us and people working on our behalf. Comply with all environmental regulatory legislation and other requirements. This policy would be regularly reviewed and made available to any interested group or individual.

7

Classification of different departments in organization 1) Human resource department. 2) Account department. 3) Finance department. 4) Information technology department. 5) Excise department. 6) Purchase department. 7) Engineering department. 8) Production-planning and control department. 9) Production department. 10) Quality department. 11) Maintenance department. 12) Tool and die maintenance. 13) Store department. 14) Dispatch department.

Company Vision To make SUPREME one of the most competitive & productive work place in our chosen fields of activity by global standards. We will encourage our people to develop positive attitude, to take pride in their work & to discharge their duties, both at work place & to society, with integrity &honor.

Company Mission To be a World Leader in the Fabrication of Automotive Sheet Metal Components by satisfying Customers requirements and excelling in Product Quality, Cost and Delivery.

Company Goal To develop a Quality Culture that will encourage Continual Improvement, throughout the Company, by team efforts.

8

Company Objectives To bring about a substantial improvement in Productivity, Quality, cost & Delivery By: Increasing Average strokes/shift/machine Increasing Average strokes per minute Reducing Average Die Change Time Increasing Overall Equipment Efficiency (OEE) Reducing Rework/ Rejection PPM (Process ) Reducing Customer Complaints Reducing Rejection PPM at customer end Reducing No. of QPCR raised by Customer Reducing Consumption of Energy Unit / Stroke Reducing Consumable cost / Line stroke Reducing Manpower cost / Line stroke Reducing Line stoppages at customer end Reducing DI Defaults

Work performed by different departments1) Human resource department: In short it is also termed as HR department. Its works are classified as: To maintain discipline in organization or in enterprise. It maintains housekeeping. It makes personals available for recruitment in organization.

2) Finance department: This department provides money and other resources, funds etc. to complete the needs of organization .If money is required for some purpose in the organization then this department made available money at required time, in required amount. It takes loans from the banks and from other private or public sector firms. It also makes record of what has been provided for the organization, in what amount, on which date and for what time and at which rate of interest.9

3) Excise Department: This department looks after the taxes on organizations finished goods, income and also on export items. It makes calculations of the tax on the production of a certain goods within the country. It also observes the tax on the export goods from organization to the other country. 4) Information Technology: Today nothing can be done without the help of computers. Computer is an electronic device which takes data from input devices (i.e. keyboard, mouse etc.) Processes the information and displays it through output devices (monitor, printer etc.). In today fast growing world it is not easy to store data on papers; this consumes a lot of time. And to do this in a significant manner computers are necessary they store a large amount of data and we can make the required changes to them easily. To run an organization is not one man work. A single person can do nothing. It is a team work and communication is necessary between the members of the team. It is not possible that the informations are supplied on papers from one person to another by traveling to him. It will take a lot of time. So to avoid these difficulties computers are used to send information to team members via emails, to store data and to do processing on it. I.T. professionals are needed to run the systems properly and to make systems up to date and for removing any type of fault occurring in the systems.

6) Production-Planning-Control (PPC): This department of organization combines of three phases: 1) Production. 2) Planning. 3) Control. 1) Production: This phase includes transformation of raw material into finished goods. This is how production is achieved and products are produced. 1. Planning: It looks ahead, anticipates possible difficulties and decides in advance how production carried out in the best way. 2. Control: This phase makes sure that planned or programmed production is constantly maintained under each set of operating conditions. A production, planning and control system has many functions to perform, some before the arrival of raw materials and tools, and others while the raw material undergoes processing. 3. Forecasting: It means estimation of type, quantity and quality of future work e.g. sales etc.

10

a. A sales forecast should be accurate; simple; easy to understand and economical. b. Order writing: Giving authority to one or more persons to undertake a particular job. c. Product design: Collection of information regarding specifications, bill of material, drawings etc. d. Process planning and routing: Finding the most economical process of doing a work and then decides how and where the work will be done. e. Material control: It involves determining the requirements and control of material. f. Tool control: It involves determining the requirements and control of tools used. g. Loading: Assignment of work to manpower, machinery etc. h. Scheduling: It is the time phase of loading and determines when and in what sequence the work will be carried out. It fixes the starting as well as the finishing time for the job. 4. Dispatching: It is transition from planning to action phase. In this phase the worker is ordered to start the actual work. a. Progress reporting: b. Data regarding the job progress is collected. c. It is interpreted by comparison with the preset level of performance. 5. Expediting : It means taking action if progress reporting indicates a deviation of the plan from the originally set targets. 6. Replanning- Replanning of the whole affair becomes essential, in case expediting fails to bring the deviated plan to its actual path.

GAP Gap Analysis ProcessRisk Profiling Maxop begins the Policy Placement Process with a thorough GAP - Gap Analysis Process. We conduct a thorough risk profiling, which entails cataloguing and mapping your company's business processes and identifying areas of loss exposure. We then map these exposures against your existing insurance coverage to identify gaps where your existing coverage may not adequately protect all your risks. Policy Analysis As we analyse individual policies, we determine whether necessary clauses and the appropriate valuation methods that protect your interests fully have been correctly applied. Portfolio Rationalization Maxop demonstrates its technical expertise by rationalizing your insurance portfolio so that you can be adequately covered for all areas of risks. Our Market Intelligence expertise enables us to identify the most suitable insurance products and the most capable underwriter to protect your interests. If your business and risks are unique and present never-before underwritten risk, we have the technical competence to create a custom product for your requirements and get it rated by an underwriter. We head towards the next stage of Policy Placement - RFQ & Negotiation - armed11

with a comprehensive proposal on your company's transferable risk and an estimate of the rates you should pay. RFQ & Negotiation When we request for quotation from insurers, we do so because we have current market intelligence about each insurer's strengths in coverage and service. Thus, we solicit quotations only from the strongest insurance underwriters who will be able to deliver on their commitment to our clients. Maxop negotiates aggressively on behalf of its clients for comprehensive coverage and value-based rates. We have been able to negotiate innovative coverage for our clients using our technical skills, creativity, and negotiating power with insurance underwriters. Quotation Evaluation & Recommendation Maxop returns to the client equipped with several quotations and written evaluations and recommendations about which quotation makes sense for the client. The client can then consider the recommendation and make a final decision, always having the option of asking for another round of negotiation on terms and rates. Policy Placement When the decision is finally made to place the policy with an insurer, Maxop submits all relevant documents and the premium cheque on your behalf and follows up to ensure you receive the cover note and/or policy within a reasonable period of time. Policy Scrutiny Policy scrutiny is necessary to ensure that the policy issued to you adheres to the proposal form sent to the underwriter. Careless and unnoticed omissions- which can easily occur in a lengthy document- could jeopardize your right to claim indemnity. All our clients' policies are scrutinized against a comprehensive checklist to ensure that every detail is correct and every clause is included. Only then do we forward the policy to you. At Maxop, policy scrutiny is part of a rigorous system carefully designed to deliver exceptional and error-free service to our clients. Portfolio Management:It begins as soon as we have scrutinized and passed your policy. We assist you in claim settlements, administer all your endorsements and amendments, track your renewals and undertake the renewal process with equal rigor as that of the first placement. Managing a program effectively through the year is key to a successful program. Changes in your business need to be reflected onto your insurance policies, accounts need to be tallied, and claims need to be administered. India's insurance landscape has and continues to undergo major changes as we move from a controlled market to a free market and Maxop is ideally placed to help pilot your insurance program through these challenging times. Policy Administration From collecting your cheque and depositing it with the underwriter, to ensuring all endorsements are made on time, to tracking your renewal dates, we take care of all the administrative work so your staff can focus on running your business. Administrative services complimentary to all our clients Maintenance of all policies with various underwriters Tracking and notification of renewal dates Cheque collection and deposit with insurer Maintenance of claim history12

Hiring surveyor and submitting report to underwriter Assistance in making monthly declarations Assistance in getting endorsements and amendments Providing updates on regulatory changes and statutory requirements We are your single window with your insurers, relieving you of the timeconsuming paper chase and record keeping. Insurance Information Programs Maxop will depute a representative to your office to explain to your Departmental Teams and your employees the benefits and conditions enjoined in their insurance policies. We can discuss Property Covers with your Finance Department and Liability Insurance with your Officers and Directors; we can explain your company's Group Mediclaim, Group Personal Accident, Pension Plans and EDLI insurance to your HR personnel, managers and employees. Programs can be conducted after office hours for your convenience.

CLAIM Management At Maxop, CLAIM assistance is a 5-step process that begins prior to placing your insurance. We first understand and minimize the risks that lead to claim, because a claim is a threat to your business continuity. Events that result in claims may Interrupt your business; Cause delays which damage your credibility with your buyers; and Compromise your ability to renew your policy with your existing or a new insurer. Over a period of time, fewer and lower claims result in your premium costs effectively being reduced- either through a rate reduction or a no-claim bonus. Maxop follows the CLAIM process: Consult with your officers to analyse your entire claim history Localize the most frequently occurring events that result in a claim Analyse the root causes of those events and address each one systematically and rigorously Implement a risk reduction or elimination program and improve on it over time Manage and Monitor the program diligently. The proof of our proactive risk mitigation consultancy, sound underwriting principles and policy design skills lies in our ability to settle the claims of our clients promptly and fully. When our clients have a recognizable claim, we provide aggressive support to ensure they are compensated as per the terms of their insurance policy. At Maxop, CLAIM Management is an integral part of our total Risk Management solutions. Our Claim Management Team is one of the most competent in the industry. They adhere to a successful system to ensure You understand your allowable claim under the insurance contract Surveys are expedited Paperwork is completed correctly and submitted on time Communication between the client and the insurer is transparent and on-going13

The claim is paid promptly and fully.

Risk management: Risk management is a systematic process for the identification and evaluation of loss exposures faced by an organization or individual, and for the selection and administration of the most appropriate techniques for treating such exposures. Avoidance Retention Loss prevention Loss reduction Transfer contractually Maxop provides risk management solutions to help you identify and quantify your risks so that you can ultimately make critical decisions about dealing with them. We can then move to the next step of rationalizing your insurance portfolio to ensure your exposures are covered adequately. Risk management solutions can be provided on a long-term basis to ensure you are protected against losses as your business evolves and new risks emerge. We serve clients across diverse industries. We bring rigor to :- understanding their business - identifying their risk exposures - providing meaningful advice on coverage - marketing their risk to ensure they have competitive and sustainable premiums.Many of our clients have become multinational. We design global insurance programs that protect their global balance sheet as well as ensure they are legally compliant in all the countries in which they operate. We represent clients from the following industries BPO Software & Technology Financial Consultancy & Law Distilleries Chemicals Pharmaceutical Food Processing & Technology Educational Institutes Hospitality Housing Societies & Business Parks Construction & Infrastructure Industrial Engineering Industrial Packaging Shipping Merchant Importers & Exporters Garment Manufacturers

14

ABSTRACT

AbstractSince its official public release, Android has captured the interest from companies, developers and the general audience. From that time up to now, this software platform has been constantly improved either in terms of features or supported hardware and, at the same time, extended to newtypes of devices different from the originally intended mobile ones. However, there is a feature that has not been explored yet - its real-time capabilities. This paper intends to explore this gap and provide a basis for discussion on the suitability of Android in order to be usedin Open Real-Time environments. By analyzing the software platform, with the main focus on the virtual machine and its underlying operating system environments, we are able to point out its current limitations and, therefore, provide a hint on different perspectives of directions in order to make Android suitable for these environments. It is our position that Android may provide a suitable architecture for real-time embedded systems, but the real-time community should address its limitations in a joint effort at all of the platform layers. Keywords-Android, Open Real-Time Systems, Embedded Systems.

15

ANDROIDAndroid is an open source mobile operating system that combines and builds upon parts of many different open source projects. What does this mean to you as a developer? You have access to the source code of the platform that is running on the phone. This can help you better understand how interface controls and the various other pieces work. If you happen to find a bug, you can also submit a patch for the issue, though this is a more advanced practice. Google has also pulled together a large group of companies (called the Open Handset Alliance) that both contribute to and use the Android OS in their hardware devices. This means that there is industry-wide support for Googles OS, promising wide adoption across well-known vendors The BlackBerry and iPhone, which have appealing and high-volume mobile platforms, are addressing opposite ends of a spectrum. The BlackBerry is rock-solid for the enterprise business user. For a consumer device, it's hard to compete with the iPhone for ease of use and the "cool factor." Android, a young and yet-unproven platform, has the potential to play at both ends of the mobile-phone spectrum and perhaps even bridge the gulf between work and play. Today, many network-based or network-capable appliances run a flavor of the Linux kernel. It's a solid platform: cost-effective to deploy and support and readily accepted as a good design approach for deployment. The UI for such devices is often HTMLbased and viewable with a PC or Mac browser. But not every appliance needs to be controlled by a general computing device. Consider a conventional appliance, such as a stove, microwave or bread maker. What if your household appliances were controlled by Android and boasted a color touch screen? With an Android UI on the stove-top, the author might even be able to cook something. Android was made publicly available during the fall of 2008. Being considered a fairly new technology, due to the fact that it is still being substantially improved and upgraded either in terms of features or firmware, Android is gaining strength both in the mobile industry and in other industries with different hardware architectures (such as the ones presented in and). The increasing interest from the industry arises from two core aspects: its open-source nature and its architectural model. Another aspect that is important to consider when using Android is its own Virtual Machine (VM) environment. Android applications are Java-based and this factor entails the use of a VM environment, with both its advantages and known problems.

16

What is Android?Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Google Inc. purchased the initial developer of the software, Android Inc., in 2005. Android's mobile operating system is based on the Linux kernel. Google and other members of the Open Handset Alliance collaborated on Android's development and release. The Android Open Source Project (AOSP) is tasked with the maintenance and further development of Android. The Android operating system is the world's best-selling Smartphone platform. Android has a large community of developers writing applications ("apps") that extend the functionality of the devices. There are currently over 200,000 apps available for Android. Android Market is the online app store run by Google, though apps can also be downloaded from third-party sites. Developers write primarily in the Java language, controlling the device via Google-developed Java libraries. The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 80 hardware, software, and telecom companies devoted to advancing open standards for mobile devices. Google released most of the Android code under the Apache License, a free software and open source license. The Android open-source software stack consists of Java applications running on a Java-based, oriented application on top of Java core libraries running on a Dalvik virtual machine featuring JIT compilation. Libraries written in C include the surface manager, Open Core media framework, SQLite relational database management system, OpenGL ES 2.03D graphics API, WebKit layout engine, SGL graphics engine, SSL, and Bionic libc. The Android operating system, including the Linux kernel, consists of roughly 12 million lines of code including 3 million lines of XML, 2.8 million lines of C, 2.1 million lines of Java, and 1.75 million lines of C++

Why Android?There are many advantages to developing for the Android platform: Zero startup costs to begin development. The development tools for the platform are free to download, and Google only charges a small fee to distribute applications on the Android Market. Freedom to innovate. The Android OS is an open-source platform based on the Linux kernel and multiple open-source libraries. In addition to building applications to run on Android devices, developers are free to contribute to or extend the platform as well. Freedom to collaborate. Android developers are not required to sign an NDA and are encouraged to collaborate and share source code with each other. According to a survey by Black Duck Software, the number of open source mobile apps and libraries grew at a rate of 168% from 2008 to 2009, faster on Android than any other platform. This means more code that you can reuse in your own projects to bring them to market much faster.

17

Open distribution model. Very few restrictions are placed on the content or functionality allowed in Googles Android Market, and developers are free to distribute their applications through other distribution channels as well. Multi-platform support. There are a wide variety of hardware devices powered by the Android OS, including many different phones and tablet computers. Development for the platform can occur on Windows, Mac OS or Linux. Multi-carrier support. A large number of telecom carriers currently offer Android powered phones. Prerequisites before continuing with this article include:

History of AndroidThe Android platform is the product of the Open Handset Alliance, a group of organizations collaborating to build a better mobile phone. The group, led by Google, includes mobile operators, device handset manufacturers, component manufacturers, software solution and platform providers, and marketing companies. From a software development standpoint, Android sits smack in the middle of the open source world. The first Android-capable handset on the market was the G1 device manufactured by HTC and provisioned on T-Mobile. The device became available after almost a year of speculation, where the only software development tools available were some incrementally improving SDK releases. As the G1 release date neared, the Android team released SDK V1.0 and applications began surfacing for the new platform. To spur innovation, Google sponsored two rounds of "Android Developer Challenges," where millions of dollars were given to top contest submissions. A few months after the G1, the Android Market was released, allowing users to browse and download applications directly to their phones. Over about 18 months, a new mobile platform entered the public arena. Android Inc. founded in 2003 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, admitting only that it was working on software for mobile phones. Android Inc. acquired by Google Google acquired Android Inc. in August, 2005, making Android Inc. a wholly owned subsidiary of Google Inc. Key employees of Android Inc., including Andy Rubin, Rich Miner and Chris White, stayed at the company after the acquisition.

18

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. Development accelerates 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. 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, Nvidia, 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. Licensing With the exception of brief update periods, Android has been available under a free software/open source license since October, 21 2008. 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 can not 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.

19

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. Version history Android has seen a number of updates since its original release. These updates to the base operating system typically fix bugs and add new features. Generally, each new version of the Android operating system is developed under a code name based on a dessert item. Past updates included Cupcake and Donut. The code names are in alphabetical order (Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, and the upcoming Ice Cream Sandwich). The most recently 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 ChromeV8 JavaScript engine, and added Wi-Fi hotspot tethering and Adobe Flash support. 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/3.1 (Honeycomb), 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. Google has chosen to withhold the Honeycomb source code, which called into question the "open-ness" of this Android release.[51] Google's Andy Rubin stated that the latest Android source code would be released "when it is ready". The reason for the delay, according to Rubin in an official Android blog post, was because Honeycomb was rushed for production of the Motorola Xoom.] 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. The 3.1 update has been announced at the 2011 Google I/O on 10 May 2011. The upcoming version of Android is:

Ice Cream Sandwich, a combination of Gingerbread and Honeycomb into a "cohesive whole." It was announced on May 10, 2011 at Google I/O that it will be released in Q4 2011.20

Features: Application framework enabling reuse and replacement of components Dalvik virtual machine optimized for mobile devices Integrated browser based on the open source WebKit engine Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional) SQLite for structured data storage Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) GSM Telephony (hardware dependent) Bluetooth, EDGE, 3G, and WiFi (hardware dependent) Camera, GPS, compass, and accelerometer (hardware dependent) Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE.

SUITABILITY OF ANDROID FOR OPEN REAL-TIME SYSTEMSThis section discusses the suitability of Android foropen embedded real-time systems, analyses its architecture internals and points out its current limitations. Android was evaluated considering the following topics: its VMenvironment, the underlying Linux kernel, and its resource management capabilities.Dalvik VM is capable of running multiple independent processes, each one with a separate address space and memory. Therefore, each Android application is mapped to a Linux process and able to use an inter-process communication mechanism, based on Open-Binder [10], to communicate with other processes in the system. The ability of separating each process is provided by Androids architectural model. During the devices boot time, there is a process responsible for starting up the Androids runtime, which implies the startup of the VM itself. Inherent to this step, there is a VM process, the Zygote, responsible for thepre-initialisation and pre-loading of the common Androids classes that will be used by most of the applications. Afterwards, the Zygote opens a socket that accepts commands from the application framework whenever a new Android application is started. This will cause the Zygote to beforked and create a child process which will then become the target application. Zygote has its own heap and a set of libraries that are shared among all processes, whereas each process has its own set of libraries and classes that are independent from the other processes. This model is presented in Figure 2. The approach is beneficial for the system as, with it, it is possible to save RAM and to speedup each application startup process. Android applications provide the common synchronization mechanisms known to the Java community. Technically speaking, each VM instance has at least one main thread and may have several other threads running concurrently. The threads belonging to the same VM instance may interact and synchronize with each other by the means of shared objects and monitors. The API also allows the use of synchronized methods and the creation of thread groups in order to ease the manipulation of several thread operations. It is also possible to assign priorities to each thread. When a programmer modifies the priority of a thread, with only 10 priority levels being allowed, the VM21

maps each of the values to Linux nice values, where lower values indicate a higher priority. Dalvik follows the thread model where all the threads are treated as native pthreads. Internal VM threads belong to one thread group and all other application threads belong to another group. According to source code analysis, Android does Figure 2. Zygote Heap not provide any mechanisms to prevent priority inversion neither allows threads to use Linuxs real-time priorities within Dalvik. Threads may suspend themselves or be suspended either by the Garbage Collector (GC), debugger or the signal monitor thread. The VM controls all the threads through the use of a internal structure where all the created threads are mapped. The GC will only run when all the threads referring to a single process are suspended, in order to avoid inconsistent states. The GCs have the difficult task of handling dynamic memory management, as they are responsible for deallocating the memory allocated by objects that are no longer needed by the applications. Concerning Androids garbage collection process, as the processes run separately from other processes and each process has its own heap and a shared heap the Zygotes heap - Android runs separate instances of GCs in order to collect memory that is not being used anymore. Thus, each process heap is garbage collected independently, through the use of parallel mark bits that sign which objects shall be removed by the GC. This mechanism is particularly useful in Android due to the Zygotes shared heap, which in this case is kept untouched by the GC and allows a better use of the memory. Android uses the mark-sweep algorithm to perform garbage collection. The main advantage provided by the platform is that there will be a GC running per process, which wipes all the objects from the application heap of a specific process. This way, GCs belonging to other processes will not impact the GC running for a specific process. The main disadvantage arises from the algorithm used. As this algorithm implies the suspension of all the threads belonging to an application, this means that no predictability can be achieved as that specific process will be freezed while being garbage collected. Androids VM relies on the Linux kernel to perform all the scheduling operations. This means that all the threads running on top of the VM will be, by default, scheduled with SCHED _OTHER, and as such will be translated into the fair scheme provided by the kernel. Therefore, it is not possible to indicate that a particular task needs to be scheduled using a different scheduling scheme.

22

DETAILED OVERVIEW OF VARIOUS VERSIONS OF ANDROIDAndroid 1.5 PlatformThe Android 1.5 platform introduces many new features for users and developers. The list below provides an overview of the changes

User Interface Refinements Performance Improvements New Features

User Interface Refinements

System-wide: o Refinement of all core UI elements o Animated window transitions (off by default) o Accelerometer-based application rotations UI polish for: o In-call experience o Contacts, Call log, and Favorites o SMS & MMS o Browser o Gmail o Calendar o Email o Camera & Gallery o Application management Performance Improvements Faster Camera start-up and image capture Much faster acquisition of GPS location (powered by SUPL AGPS) Smoother page scrolling in Browser Speedier Gmail conversation list scrolling

New Features

On-screen soft keyboard o Works in both portrait and landscape orientation o Support for user installation of 3rd party keyboards o User dictionary for custom words Home screen o Widgets o Bundled home screen widgets include: analog clock, calendar, music player, picture frame, and search o Live folders Camera & Gallery o Video recording o Video playback (MPEG-4 & 3GP formats) Bluetooth23

Stereo Bluetooth support (A2DP and AVCRP profiles) Auto-pairing Improved handsfree experience Browser o Updated with latest Webkit browser & Squirrelfish Javascript engines o Copy 'n paste in browser o Search within a page o User-selectable text-encoding o UI changes include: Unified Go and Search box Tabbed bookmarks/history/most-visited screen System o New Linux kernel (version 2.6.27) o SD card filesystem auto-checking and repair o SIM Application Toolkit 1.0 Google applications (not available in the Android 1.5 System Image that is included in the Android SDK) o View Google Talk friends' status in Contacts, SMS, MMS, GMail, and Email applications o Batch actions such as archive, delete, and label on Gmail messages o Upload videos to Youtube o Upload photos on Picasa

o o o

Android 2.0 Platform HighlightsThe Android 2.0 platform introduces many new and exciting features for users and developers. This document provides a glimpse at some of the new features and technologies in Android 2.0.

New User Features New Platform Technologies

New User FeaturesContacts and accounts

Multiple accounts can be added to a device for email and contact synchronization, including Exchange accounts. (Handset manufacturers can choose whether to include Exchange support in their devices.) Developers can create sync adapters that provide synchronization with additional data sources. Quick Contact for Android provides instant access to a contact's information and communication modes. For example, a user can tap a contact photo and select to call, SMS, or email the person. Other applications such as Email, Messaging, and Calendar can also reveal the Quick Contact widget when you touch a contact photo or status icon.

24

Email

Exchange support. Combined inbox to browse email from multiple accounts in one page.

Messaging

Search functionality for all saved SMS and MMS messages. Auto delete the oldest messages in a conversation when a defined limit is reached.

Camera

Built-in flash support Digital zoom Scene mode White balance Color effect Macro focus

Android virtual keyboard

An improved keyboard layout to makes it easier to hit the correct characters and improve typing speed. The framework's multi-touch support ensures that key presses aren't missed while typing rapidly with two fingers. A smarter dictionary learns from word usage and automatically includes contact names as suggestions.

Browser

Refreshed UI with actionable browser URL bar enables users to directly tap the address bar for instant searches and navigation. Bookmarks with web page thumbnails. Support for double-tap zoom. Support for HTML5: o Database API support, for client-side databases using SQL. o Application cache support, for offline applications. o Geolocation API support, to provide location information about the device. o tag support in fullscreen mode.

New Platform TechnologiesMedia Framework Revamped graphics architecture for improved performance that enables better hardware acceleration.

25

Bluetooth

Bluetooth 2.1 New BT profiles: Object Push Profile (OPP) and Phone Book Access Profile (PBAP)

New Framework APIs Android 2.0 includes several new developer APIs.

Android 2.2 Platform HighlightsThe Android 2.2 platform introduces many new and exciting features for users and developers.

New User Features New Platform Technologies New Developer Services New Developer APIs

New User FeaturesHome

New Home screen tips widget assists new users on how to configure the home screen with shortcuts and widgets and how to make use of multiple home screens. The Phone, applications Launcher, and Browser now have dedicated shortcuts on the Home screen, making it easy to access them from any of the 5 home screen panels.

26

Exchange support Improved security with the addition of numeric pin or alpha-numeric password options to unlock device. Exchange administrators can enforce password policy across devices. Remote wipe: Exchange administrators can remotely reset the device to factory defaults to secure data in case device is lost or stolen. Exchange Calendars are now supported in the Calendar application. Auto-discovery: you just need to know your user-name and password to easily set up and sync an Exchange account (available for Exchange 2007 and higher). Global Address Lists look-up is now available in the Email application, enabling users to autocomplete recipient names from the directory.Camera and Gallery

Gallery allows you to peek into picture stacks using a zoom gesture. Camera onscreen buttons provide easy access to a new UI for controling zoom, flash, white balance, geo-tagging, focus and exposure. Camcorder also provides an easy way to set video size/quality for MMS and YouTube. With the LED flash now enabled for the Camcorder, videos can be shot at night or in low light settings.

27

Portable hotspotCertain devices like the Nexus One can be turned into a portable Wi-Fi hotspot that can be shared with up to 8 devices. You can use your Android-powered phone as a 3G connection for a Windows or Linux laptop by connecting their phone to the computer with a USB cable. The connection is then shared between the two devices.

Multiple keyboard languages

Multi-lingual users can add multiple languages to the keyboard and switch between multiple Latin-based input languages by swiping across the space bar. This changes the keys as well as the auto-suggest dictionary.

Improved performance

Performance of the browser has been enhanced using the V8 engine, which enables faster loading of JavaScript-heavy pages. Dalvik Performance Boost:2x-5x performance speedup for CPU-heavy code over Android 2.1 with Dalvik JIT. The graph to the right shows the performance speedup from Android 2.1 to Android 2.2 using various benchmark tests. For example, LinPack is now more than 5 times faster. Kernel Memory Management Boost: Improved memory reclaim by up to 20x, which results in faster app switching and smoother performance on memoryconstrained devices.

28

New Platform TechnologiesMedia framework

New media framework (Stagefright) that supports local file playback and HTTP progressive streaming Continued support for OpenCore in Android 2.2

Bluetooth

Voice dialing over Bluetooth Ability to share contacts with other phones Support for Bluetooth enabled car and desk docks Improved compatibility matrix with car kits and headsets

2.6.32 kernel upgrade

HIGHMEM support for RAM >256MB SDIO scheduling and BT improvements

New Developer ServicesAndroid Cloud to Device Messaging

Apps can utilize Android Cloud to Device Messaging to enable mobile alert, send to phone, and two-way push sync functionality.Android Application Error Reports

New bug reporting feature for Android Market apps enables developers to receive crash and freeze reports from their users. The reports will be available when they log into their publisher account.

New Developer APIsApps on external storage

Applications can now request installation on the shared external storage (such as an SD card).Media framework

Provides new APIs for audio focus, routing audio to SCO, and auto-scan of files to media database. Also provides APIs to let applications detect completion of sound loading and auto-pause and auto-resume audio playback.

29

Camera and Camcorder

New preview API doubles the frame rate from ~10FPS to ~20FPS. Camera now supports portrait orientation, zoom controls, access to exposure data, and a thumbnail utility. A new camcorder profile enables apps to determine device hardware capablities.Graphics

New APIs for OpenGL ES 2.0, working with YUV image format, and ETC1 for texture compression.Data backup

Apps can participate in data backup and restore, to ensure that users maintain their data after performing a factory reset or when switching devices.Device policy manager

New device policy management APIs allow developers to write "device administrator" applications that can control security features on the device, such as the minimum password strength, data wipe, and so on. Users can select the administrators that are enabled on their devices. UI framework New "car mode" and "night mode" controls and configurations allow applications to adjust their UI for these situations. A scale gesture detector API provides improved definition of multi-touch events. Applications can now customize the bottom strip of a TabWidget.

Android 3.0 Platform1. 2. 3. 4. API Overview API Level Built-in Applications Emulator Skins

For developers, the Android 3.0 platform is available as a downloadable component for the Android SDK. The downloadable platform includes an Android library and system image, as well as a set of emulator skins and more. The downloadable platform includes no external libraries. To get started developing or testing against Android 3.0, use the Android SDK Manager to download the platform into your SDK.

30

API OverviewThe sections below provide a technical overview of what's new for developers in Android 3.0, including new features and changes in the framework API since the previous version. Fragments A fragment is a new framework component that allows you to separate distinct elements of an activity into self-contained modules that define their own UI and lifecycle. To create a fragment, you must extend the Fragment class and implement several lifecycle You can then combine multiple fragments in a single activity to build a multi-pane UI in which each pane manages its own lifecycle and user inputs. To perform a transaction, such as add or remove a fragment, you must create a FragmentTransaction. You can then call methods such as add()remove(), or replace(). Action Bar The Action Bar is a replacement for the traditional title bar at the top of the activity window. It includes the application logo in the left corner and provides a new interface for items in the Options Menu. System clipboard Applications can now copy and paste data (beyond mere text) to and from the systemwide clipboard. Clipped data can be plain text, a URI, or an intent. By providing the system access to the data you want the user to copy, through a content provider, the user can copy complex content (such as an image or data structure) from your application and paste it into another application that supports that type of content. App widgets Android 3.0 supports several new widget classes for more interactive app widgets on the users Home screen, including: GridView, ListView, StackView, ViewFlipper, and AdapterViewFlipper. More importantly, you can use the new RemoteViewsService to create app widgets with collections, using widgets such as GridView, ListView, and StackView that are backed by remote data, such as from a content provider. The AppWidgetProviderInfo class (defined in XML with an element) also supports two new fields: autoAdvanceViewId and previewImage. The autoAdvanceViewId field lets you specify the view ID of the app widget subview that should be auto-advanced by the app widgets host. The previewImage field specifies a preview of what the app widget looks like and is shown to the user from the widget picker. If this field is not supplied, the app widget's icon is used for the preview.31

To help create a preview image for your app widget (to specify in the previewImage field), the Android emulator includes an application called "Widget Preview." To create a preview image, launch this application, select the app widget for your application and set it up how you'd like your preview image to appear, then save it and place it in your application's drawable resources. You can see an implementation of the new app widget features in the StackView App Widget and Weather List Widget applications. Animation framework An all new flexible animation framework allows you to animate arbitrary properties of any object (View, Drawable, Fragment, Object, or anything else). It allows you to define several aspects of an animation, such as:

Duration Repeat amount and behavior Type of time interpolation Animator sets to play animations together, sequentially, or after specified delays Frame refresh delay

Graphics

Hardware accelerated 2D graphics This flag helps applications by making them draw faster. This results in smoother animations, smoother scrolling, and overall better performance and response to user interaction.

View support for hardware and software layers A hardware layer is backed by a hardware specific texture (generally Frame Buffer Objects or FBO on OpenGL hardware) and causes the view to be rendered using Android's hardware rendering pipeline, but only if hardware acceleration is turned on for the view hierarchy. When hardware acceleration is turned off, hardware layers behave exactly as software layers. A software layer is backed by a bitmap and causes the view to be rendered using Android's software rendering pipeline, even if hardware acceleration is enabled. Software layers should be avoided when the affected view tree updates often. Every update will require to re-render the software layer, which can potentially be slow.

Keyboard support

Support for Control, Meta, Caps Lock, Num Lock and Scroll Lock modifiers. For more information,.

32

Support for full desktop-style keyboards, including support for keys such as Escape, Home, End, Delete and others TextView now supports keyboard-based cut, copy, paste, and select-all, using the key combinations Ctrl+X, Ctrl+C, Ctrl+V, and Ctrl+A. It also supports PageUp/PageDown, Home/End, and keyboard-based text selection. KeyEvent adds several new methods to make it easier to check the key modifier state correctly and consistently. Applications can implement custom keyboard shortcuts by subclassing KeyCharacterMap.VIRTUAL_KEYBOARD. The virtual keyboard has a desktop-style US key map which is useful for synthesizing key events for testing input.

Split touch events Previously, only a single view could accept touch events at one time. Android 3.0 adds support for splitting touch events across views and even windows, so different views can accept simultaneous touch events.New platform technologies

Storage o ext4 file system support to enable onboard eMMC storage. o FUSE file system to support MTP devices. o USB host mode support to support keyboards and USB hubs. o Support for MTP/PTP Linux Kernel o Upgraded to 2.6.36 Dalvik VM o New code to support and optimize for SMP o Various improvements to the JIT infrastructure o Garbage collector improvements: Tuned for SMP Support for larger heap sizes Unified handling for bitmaps and byte buffers Dalvik Core Libraries o New, much faster implementation of NIO (modern I/O library) o Improved exception messages o Correctness and performance fixes throughout

API LevelThe Android 3.0 platform delivers an updated version of the framework API. The Android 3.0 API is assigned an integer identifier 11 that is stored in the system itself. This identifier, called the "API Level", allows the system to correctly determine whether an application is compatible with the system, prior to installing the application.

Built-in ApplicationsThe system image included in the downloadable platform provides these built-in applications:33

API Demos Browser Calculator Camera Clock Contacts Custom Locale Dev Tools Downloads Email

Gallery Gestures Builder Messaging Music Search Settings Spare Parts Speech Recorder Widget Preview

Emulator SkinsThe downloadable platform includes the following emulator skin:

WXGA (1280x800, medium density, xlarge screen)

Android 3.1 Platform1. 2. 3. 4. API Overview API Level Built-in Applications Emulator Skins

For developers, the Android 3.1 platform is available as a downloadable component for the Android SDK. The downloadable platform includes an Android library and system image, as well as a set of emulator skins and more. The downloadable platform includes no external libraries. To get started developing or testing against Android 3.1, use the Android SDK Manager to download the platform into your SDK. For more information, see Adding SDK Components. If you are new to Android, download the SDK Starter Package first.

API OverviewThe sections below provide a technical overview of what's new for developers in Android 3.1, including new features and changes in the framework API since the previous version.USB APIs

Android 3.1 introduces powerful new APIs for integrating connected peripherals with applications running on the platform. The APIs are based on a USB (Universal Serial Bus) stack and services that are built into the platform, including support for both USB host and device interactions. Using the APIs, developers can create applications

34

that are able to discover, communicate with, and manage a variety of device types connected over USB. The stack and APIs distinguish two basic types of USB hardware, based on whether the Android-powered device is acting as host or the external hardware is acting as host:

A USB device is a piece of connected hardware that depends on the Androidpowered device to serve as host. For example, most input devices, mice, and joysticks are USB devices, as are many cameras, hubs, and so on. A USB accessory is a piece of connected hardware that has a USB host controller, provides power, and is designed to communicate with Androidpowered devices over USB, A variety of peripherals can connect as accessories, from robotics controllers to musical equipment, exercise bicycles, and more.

For both types USB devices and USB accessories the platform's USB APIs support discovery by intent broadcast when attached or detached, as well as standard interfaces, endpoints, and transfer modes (control, bulk, and interrupt).Support for new input devices and motion events

Android 3.1 extends the input subsystem to support new input devices and new types of motion events, across all views and windows. Developers can build on these capabilities to let users interact with their applications using mice, trackballs, joysticks, gamepads, and other devices, in addition to keyboards and touchscreens.Resizable app widgets

Starting in Android 3.1, developers can make their homescreen widgets resizeable horizontally, vertically, or on both axes. Users touch-hold a widget to show its resize handles, then drag the horizontal and/or vertical handles to change the size on the layout grid. Developers can make any Home screen widget resizeable by defining a resizeMode attribute in the widget's AppWidgetProviderInfo metadata. Values for the resizeMode attribute include "horizontal", "vertical", and "none". To declare a widget as resizeable horizontally and vertically, supply the value "horizontal|vertical".Graphics

Helpers for managing bitmaps o setHasAlpha(boolean) lets an app indicate that all of the pixels in a Bitmap are known to be opaque (false) or that some of the pixels may contain non-opaque alpha values (true). Note, for some configs (such as RGB_565) this call is ignored, since it does not support per-pixel alpha values. This is meant as a drawing hint, as in some cases a bitmap that is known to be opaque can take a faster drawing case than one that may have non-opaque per-pixel alpha values. o getByteCount() gets a Bitmap's size in bytes.35

o o

getGenerationId() lets an application find out whether a Bitmap has been modified, such as for caching. sameAs(android.graphics.Bitmap) determines whether a given Bitmap differs from the current Bitmap, in dimension, configuration, or pixel data.

API LevelThe Android 3.1 platform delivers an updated version of the framework API. The Android 3.1 API is assigned an integer identifier 12 that is stored in the system itself. This identifier, called the "API Level", allows the system to correctly determine whether an application is compatible with the system, prior to installing the application.

Built-in ApplicationsThe system image included in the downloadable platform provides these built-in applications:

API Demos Browser Calculator Camera Clock Contacts Custom Locale Dev Tools Downloads Email

Gallery Gestures Builder Messaging Music Search Settings Spare Parts Speech Recorder Widget Preview

Emulator SkinsThe downloadable platform includes the following emulator skin:

WXGA (1280x800, medium density, xlarge screen)

36

COMPARISON ANDROIDANDROID 3.1 HONEY COMB 10/05/2011 0.3% ANDROI D 3.0 HONEY COMB 22/02/20 11 0.3%

OF

VARIOUSANDROID 2.2 FROZEN YOGHURT 20/5/2010 64.6%

VERSIONSANDROI D 2.0/2.1 ECLAIR S 26/10/200 9 21.2%

OF

VERSIO N NAME RELEAS E DATE ANDROI D MARKE T SHARE FLASH SUPPOR T KEY FEATUR E ADDED

ANDROID 2.3 GINGER BREAD 10/06/2010 8.1%

ANDROID 1.5 CUP CAKE 30/04/2009 1.9%

YES

YES

YES

YES

NO

NO

UI improvem ents

Multi core support Better tablet Open Accessory support Updated API 3D UI USB host Google Talk API video chat Mice, joysticks, Google gamepads. eBooks .. support "Private Resizable browsin g Home screen widgetsMTP notification

Updated UI

Speed improvemen WebM video ts playback capability JIT implementat ion Improved copy/paste USB Tethering Social networking features Applications installation the Near Field to Communicat expandable memory ion support Native VoIP/SIP support

HTML Digital zoom Microsof t Exchang e support Bluetoot h 2.1 Live Wallpap ers

Bluetooth A2DP, AVRCP support Softkeyboard with textprediction Record/wat ch videos

Upload file Updated support in UI the browser

Video call Animated GIFs support

37

FEATURES OF ANDROID1. Handset layouts 2. The platform is adaptable to larger, VGA, 2D graphics library, 3D graphics library based on OpenGL ES 2.0 specifications, and traditional smartphone layouts. SQLite, a lightweight relational database, is used for data Storage storage purposes Android supports connectivity technologies including GSM/EDGE, IDEN, CDMA, EV-DO, UMTS, Bluetooth, Wi-Fi Connectivity (no connections through Proxy server and no Ad hoc wireless network), LTE, NFC and WiMAX. SMS and MMS are available forms of messaging, including threaded text messaging and now Android Cloud To Messaging Device Messaging Framework(C2DM) is also a part of Android Push Messaging service. Multiple languages are available on Android. The number of languages more than doubled for the platform 2.3 Multiple Gingerbread. Android lacks font rendering of several Language Support languages even after official announcements of added support (e.g. Hindi). The web browser available in Android is based on the open-source WebKit layout engine, coupled with Web browser Chrome'sV8 JavaScript engine. The browser scores a 93/100 on the Acid3 Test. 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 Dalvikexecutables and run on the Dalvik virtual machine. Java support Dalvik is 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. Android supports the following audio/video/still media formats: WebM, H.263, H.264 (in 3GP or MP4container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HEMedia support AAC (in MP4 or 3GP container), MP3, MIDI, OggVorbis, FLAC, WAV, JPEG, PNG, GIF (though earlier versions do not support animated GIFs, BMP. RTP/RTSP streaming (3GPP PSS, ISMA), HTML progressive download (HTML5 tag). Adobe Flash Streaming (RTMP) and HTTP Dynamic Streaming are supported by Streaming media the Flash plugin. Apple HTTP Live Streaming is supported support by RealPlayer for Mobile, and by the operating system in Android 3.0 (Honeycomb). Microsoft Smooth Streaming is planned to be supported through the awaited port of38

3.

4.

5.

6.

7.

8.

9.

Silverlight plugin to Android. Android can use video/still cameras, touchscreens, GPS, accelerometers, gyroscopes, magnetometers, dedicated 10. Additional gaming controls, proximity and pressure sensors, hardware support thermometers, accelerated 2D bit blits (with hardware orientation, scaling, pixel format conversion) and accelerated 3D graphics. Android has native support for multi-touch which was initially made available in handsets such as the HTC Hero. The feature was originally disabled at the kernel level 11. Multi-touch (possibly to avoid infringing Apple's patents on touchscreen technology at the time). Google has since released an update for the Nexus One and the Motorola Droid which enables multi-touch natively. Supports A2DP, AVRCP, sending files (OPP), accessing the phone book (PBAP), voice dialing and sending contacts between phones. Keyboard, mouse and joystick (HID) 12. Bluetooth support is available through manufacturer customizations and third-party applications. Full HID support is planned for Android 3.0 (Honeycomb). Android does not provide native video calling support, but some handsets have a customized version of the operating system that support it, either via the UMTS 13. Video calling network (like the Samsung Galaxy S) or over IP. Video calling through Google Talk is available in Android 2.3.4 and later. 14. Multitasking Multitasking of applications is available. Google search through voice has been available since 15. Voicebased initial release. Voice actions for calling, texting, features navigation, etc. are supported on Android 2.2 onwards. Android supports tethering, which allows a phone to be used as a wireless/wired hotspot. Prior to Android 2.2 this 16. Tethering was supported by third-party applications or manufacturer customizations.

THE ANDROID PLATFORMWith Android's breadth of capabilities, it would be easy to confuse it with a desktop operating system. Android is a layered environment built upon a foundation of the Linux kernel, and it includes rich functions. The UI subsystem includes: Windows Views Widgets for displaying common elements such as edit boxes, lists, and drop-down lists

39

Android includes an embeddable browser built upon WebKit, the same open source browser engine powering the iPhone's Mobile Safari browser. Android boasts a healthy array of connectivity options, including WiFi, Bluetooth, and wireless data over a cellular connection (for example, GPRS, EDGE, and 3G). A popular technique in Android applications is to link to Google Maps to display an address directly within an application. Support for location-based services (such as GPS) and accelerometers is also available in the Android software stack, though not all Android devices are equipped with the required hardware. There is also camera support. Historically, two areas where mobile applications have struggled to keep pace with their desktop counterparts are graphics/media, and data storage methods. Android addresses the graphics challenge with built-in support for 2-D and 3-D graphics, including the OpenGL library. The data-storage burden is eased because the Android platform includes the popular open source SQLite database. Figure 1 shows a simplified view of the Android software layers. Figure 1. Android software layers

Application architectureAndroid runs atop a Linux kernel. Android applications are written in the Java programming language, and they run within a virtual machine (VM). It's important to note that the VM is not a JVM as you might expect, but is the Dalvik Virtual Machine, an open source technology. Each Android application runs within an instance of the Dalvik VM, which in turn resides within a Linux-kernel managed process, as shown below.

40

Figure 2.Dalvik VM

An Android application consists of one or more of the following classifications:

ActivitiesAn application that has a visible UI is implemented with an activity. When a user selects an application from the home screen or application launcher, an activity is started.

ServicesA service should be used for any application that needs to persist for a long time, such as a network monitor or update-checking application.

Content providersYou can think of content providers as a database server. A content provider's job is to manage access to persisted data, such as a SQLite database. If your application is very simple, you might not necessarily create a content provider. If you're building a larger application, or one that makes data available to multiple activities or applications, a content provider is the means of accessing your data.

Broadcast receiversAn Android application may be launched to process a element of data or respond to an event, such as the receipt of a text message. An Android application, along with a file called AndroidManifest.xml, is deployed to a device. AndroidManifest.xml contains the necessary configuration information to properly install it to the device. It includes the required class names and types of events the application is able to process, and the required permissions the application41

needs to run. For example, if an application requires access to the network to download a file, for example this permission must be explicitly stated in the manifest file. Many applications may have this specific permission enabled. Such declarative security helps reduce the likelihood that a rogue application can cause damage on your device.

ApplicationsAndroid 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.

Application FrameworkDevelopers 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.Underlying all applications is a set of services and systems, including:A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser 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 A Notification Manager that enables all applications to display custom alerts in the status bar .An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack

LibrariesAndroid 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'sOpenCORE; the libraries supportplayback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNGSurface Manager - manages access to the display subsystem and seamlessly

composites 2D and 3D graphic layers from multiple applicationsLibWebCore - a modern web browser engine which powers both the Android browser

and an embeddable web view42

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 rasterizerFreeType- bitmap and vector font rendering SQLite- a powerful and lightweight relational database engine available to all

applicationsAndroid 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. 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.

Required toolsThe easiest way to start developing Android applications is to download the Android SDK and the Eclipse IDE (see Resources). Android development can take place on Microsoft Windows, Mac OS X, or Linux. This article assumes you are using the Eclipse IDE and the Android Developer Tools plug-in for Eclipse. Android applications are written in the Java language, but compiled and executed in the Dalvik VM (a non-Java virtual machine). Coding in the Java language within Eclipse is very intuitive; Eclipse provides a rich Java environment, including context-sensitive help and code suggestion hints. Once your Java code is compiled cleanly, the Android Developer Tools make sure the application is packaged properly, including the AndroidManifest.xml file. It's possible to develop Android applications without Eclipse and the Android Developer Tools plug-in, but you would need to know your way around the Android SDK.43

The Android SDK is distributed as a ZIP file that unpacks to a directory on your hard drive. Since there have been several SDK updates, it is recommended that you keep your development environment well organized so you can easily switch between SDK installations. The SDK includes: android.jar Java archive file containing all of the Android SDK classes necessary to build your application. documention.html and docs directory The SDK documentation is provided locally and on the Web. It's largely in the form of JavaDocs, making it easy to navigate the many packages in the SDK. The documentation also includes a high-level Development Guide and links to the broader Android community.

Samples directory The samples subdirectory contains full source code for a variety of applications, including ApiDemo, which exercises many APIs. The sample application is a great place to explore when starting Android application development. Tools directory Contains all of the command-line tools to build Android applications. The most commonly employed anduseful tool is the adb utility (Android Debug Bridge). usb_driver Directory containing the necessary drivers to connect the development environment to an Android-enabled device, such as the G1 or the Android Dev 1 unlocked development phone. These files are only required for developers using the Windows platform. Android applications may be run on a real device or on the Android Emulator, which ships with the Android SDK. Figure 3 shows the Android Emulator's home screen.

Android Debug BridgeThe adb utility supports several optional command-line arguments that provide powerful features, such as copying files to and from the device. The shell commandline argument lets you connect to the phone itself and issue rudimentary shell commands. Figure 4 shows the adb shell command against a real device connected to a Windows laptop with a USB cable. Within this shell environment, you can:44

Display the network configuration that shows multiple network connections. Note the multiple network connections: lo is the local or loopback connection. tiwlan0 is the WiFi connection with an address provisioned by a local DHCP server. Display the contents of the PATH environment variable. Execute the su command to become the super-user. Change the directory to /data/app, where user applications are stored. Do a directory listing where you see a single application. Android application files are actually archive files that are viewable with WinZip or equivalent. The extension is apk.

Issue a ping command to see if Google.com is available.

ApplicationsAndroid MarketAndroid Market is the online software store developed by Google for Android devices. An application program ("app") called "Market" is preinstalled on most Android devices and allows users to browse and download apps published by thirdparty developers, hosted on Android Market. As of December 2010 there were about 200,000 games, applications and widgets available on the Android Market. In April 2011 Google said there had been over 3 billion Android apps installed. Only devices that comply with Google's compatibility requirements are allowed to preinstall Google's closed-source Android Market app and access the Market. The Market filters the list of applications presented by the Market app to those that are compatible with the user's device, and developers may restrict their applications to particular carriers or countries for business reasons. Users can also install apps directly using APK files, or from alternative app markets. Unlike Apple, Google allows independent app stores to operate for Android. Google applications Google has also participated in the Android Market by offering several applications for its services. These applications include Google Voice for the Google Voice service, Sky Map for watching stars, Finance for their finance service, Maps Editor for their MyMaps service, Places Directory for their Local Search, Google Goggles that searches by image, Gesture Search for using finger-written letters and numbers to search the contents of the phone, Google Translate, Google Shopper, Listen for podcasts and My Tracks, a jogging application. In August 2010, Google launched "Voice Actions for Android," which allows users to search, write messages, and initiate calls by voice.

45

Software developmentApplications are usually developed in the Java language using the Android Software Development Kit, but other development tools are available, including a Native Development Kit for applications or extensions in C or C++, and Google App Inventor, a visual environment for novice programmers.

SecurityIn May 2011, researchers at University of Ulm publicized a security flaw, present in all Android devices running AndroidOS 2.3.3 and earlier versions (more than 99% of all Android devices worldwide), that affects all Google services using the ClientLogin authentication protocol (such as authentication tokens widely used by eBay and other online services) and allows hackers access any personal data available through Android's application programming interfaces (APIs), thus stealing the user's digital credentials over open wireless networks. In response, Google announced a fix that would be rolled out transparently to the user. In March 2011, Google pulled 58 malicious apps from the Android Market, but not before the 58 apps were downloaded to around 260,000 devices. These apps were malicious applications in the Android Market which contained trojans hidden in pirated versions of legitimate apps. The malware (called DroidDream) exploited a bug which was present in versions of Android older than 2.2.2. Android device manufacturers and carriers work in tandem to distribute Android based updates and had not uniformly issued patches to their customers for the DroidDream exploit, leaving users vulnerable. Google said the exploit allowed the apps to gather device specific information, as well as personal information. The exploit also allowed the apps to download additional code that could be run on the device. Within days, Google remotely wiped the apps from infected users and rolled out an update that would negate the exploits that allowed the apps to view information. They also announced that they would be resolving the issue to ensure that events like this did not occur again. Security firms such as AVG Technologies and Symantec have released antivirus software for Android devices. In August 2010, an SMS Trojan called Trojan-SMS.AndroidOS.FakePlayer.a infected a number of mobile devices, according to security firm Kaspersky Lab. Disguised as a harmless media player application, the trojan, once installed sends out SMS text messages without the users knowledge or consent. According to Denis Maslennikov, Senior Malware Researcher at Kaspersky Lab, there's not an exact number of infected devices available at present, but the outbreak is currently regional. For now, only Russian Android users can actually lose money after installing the Trojan, but anyone can be infected. Android users were advised not to use the Android web browser until Google issues a security patch. The Android Security Team responded and developed a fix on February 5 and patched Open Source Android two days later.

Privacy concernsIt is reported that Google uses Android smartphones to report the location of Wi-Fi access points it encounters as phone users move around to build vast databases46

containing physical location of hundreds million 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 andhardware 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 TaintDroidan academic research-funded project). Installing such low-level monitoring tools requires programming skills, reflashing the ROM and also 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. In 2010, Google admitted that vehicles, which it had used to gather photographs for its Street View service, had scooped up data from unsecured home and business Wi-Fi networks in the U.S. and other countries. According to a company executive, Google's decision to stop using Street View vehicles to map Wi-Fi networks after the privacy breach had made smartphone data all the more crucial to its location database. The company had used Street View vehicles and phone data to map Wi-Fi access points since 2007, and by 2010, it had logged the location of more than 300 million of them, enabling the company to pinpoint a smartphone user with an accuracy of within 98 feet. Location data is collected through Android phones when users give permission "[a]llow[ing] Google's location service to collect anonymous location data. Collection will occur even when no applications are running" when a new phone is set up.

MarketingThe Android logo was designed along with the Droid font family made by Ascender Corporation .Android Green is the color of the Android Robot that represents the Android operating system. The print color is PMS 376C and the RGB color value in hexadecimal is #A4C639, as specified by the Android Brand Guidelines. The custom typeface of Android is called Norad. It is only used in the text logo.

Market shareResearch company Canalys estimated in Q2 2009 that Android had a 2.8% share of worldwide smartphone shipments. By Q4 2010 this had grown to 33% of the market, becoming the top-selling smartphone platform. This estimate includes the Tapas and OMS variants of Android. In February 2010 ComScore said the Android platform had 9.0% of the U.S. smartphone market, as measured by current mobile subscribers. This figure was up47

from an earlier estimate of 5.2% in November 2009. By the end of Q3 2010 Android's U.S. market share had grown to 21.4 percent. In May 2010, Android's first quarter U.S. sales surpassed that of the rival iPhone platform. According to a report by the NPD group, Android achieved 25% smartphone sales in the US market, up 8% from the December quarter. In the second quarter, Apple's iOS was up by 11%, indicating that Android is taking market share mainly from RIM, and still has to compete with heavy consumer demand for new competitor offerings. Furthermore, analysts pointed to advantages that Android has as a multi-channel, multi-carrier OS, which allowed it to duplicate the quick success of Microsoft's Windows Mobile. As of May 2011 Google said that 400,000 new Android devices were being activated every dayup from 100,000 per day in May 2010and more than 100 million devices have been activated.

Usage shareVERSION 3.x.x Honeycomb 2.3.x Gingerbread 2.2.x Froyo 2.0.x/2.1.x Eclair 1.6 Donut 1.5 Cupcake API LEVEL 11 10 8 7 4 3 DISTRIBUTION 0.6 9.2 63.6 21.2 2.5 1.9

48

Advantages of AndroidThere are a host of advantages that Googles Android will derive from being open source software. Some of the advantages include: 1. The ability for anyone to customize the Google Android platform will open up the applications playing field to small and new players who lack the financial muscle to negotiate with wireless carriers like AT&T and Orange. The consumer will benefit from having a wide range of mobile applications to choose from since the monopoly will be broken by Google Android. 2. Although this will depend on the carrier, one will be able to customize a mobile phones using Google Android platform like never before, right down to the screen. Features like weather details, opening screen, live RSS feeds and even the icons on the opening screen will be able to be customized. 3. In addition, as a result of many mobile phones carrying Google Android, companies will come up with such innovative products like the location aware services that will provide users with any information they might be in need of. This information could include knowing the location of a nearby convenience store or filling station. In addition the entertainment functionalities will be taken a notch higher by Go