The first-generation Android
phones were released in October 2008. According to Gartner, North
American sales of Android-based phones increased 707% in the first
quarter of 2010 over the previous year.
By March 2011, a Nielsen study showed that Android had 37% of the U.S.
smartphone market share, compared to 27% for Apple’s iPhone and 22% for
Blackberry.
In August 2010, more than 200,000 Android smartphones were being
activated each day, up from 100,000 per day only two months earlier.
As of May 2011, more than 400,000 Android devices were being activated
daily. There are now over 300 different Android devices worldwide.
The Android operating
system was developed by Android, Inc., which was acquired by Google in
July 2005. In November 2007, the Open Handset Alliance™—a consortium of
34 companies initially and 81 now (Fig. 1)—was
formed to develop Android, driving innovation in mobile technology and
improving the user experience while reducing costs. Android is used in
numerous smartphones, e-reader devices and tablet computers.
Open Handset Alliance Members |
---|
Mobile Operators | | |
Bouygues Telecom
China Mobile Communications Corporation | China Telecommunications Corporation
China United Network Communications | KDDI Corporation
NTT Docomo, Inc.
Softbank Mobile Corp.
Sprint Nextel |
T-Mobile
Telecom Italia | Telefónica
Telus | Vodafone |
Semiconductor Companies |
AKM Semiconductor Inc.
Audience
ARM
Atheros Communications
Broadcom Corporation
CSR Plc.
Cypress Semiconductor Corporation | Freescale Semiconductor
Gemalto
Intel Corporation
Marvell Semiconductor, Inc.
MediaTek, Inc.
MIPS Technologies, Inc.
NVIDIA Corporation | Qualcomm Inc.
Renesas Electronics Corporation
ST-Ericsson
Synaptics, Inc.
Texas Instruments
Via Telecom |
Handset Manufacturers |
Acer Inc.
Alcatel mobile phones
ASUSTeK Computer Inc.
CCI
Dell
Foxconn International Holdings Limited
Garmin International, Inc. | Haier Telecom (Qingdao) Co., Ltd.
HTC Corporation
Huawei Technologies
Kyocera
Lenovo Mobile Communication Technology Ltd.
LG Electronics, Inc. | Motorola, Inc.
NEC Corporation
Samsung Electronics
Sharp Corporation
Sony Ericsson
Toshiba Corporation
ZTE Corporation |
Software Companies |
Access Co., Ltd.
Ascender Corp.
Cooliris, Inc.
eBay Inc.
Google Inc.
LivingImage Ltd. | Myriad
Motoya Co., Ltd.
Nuance Communications, Inc.
NXP Software
OMRON Software Co., Ltd. | PacketVideo (PV)
SkyPop
SONiVOX
SVOX
VisualOn Inc. |
Commercialization Companies |
Accenture
Aplix Corporation
Borqs
L&T Infotech
Noser Engineering Inc. | Sasken Communication Technologies Limited
SQLStar International Inc.
TAT—The Astonishing Tribe AB | Teleca AB
Wind River
Wipro Technologies |
Openness and Open Source
One benefit of developing Android apps is the openness of the platform. The operating system is open source
and free. This allows you to view Android’s source code and see how its
features are implemented. You can also contribute to Android by
reporting bugs (see source.android.com/source/report-bugs.html) or by participating in the Open Source Project discussion groups (source.android.com/community/index.html). Numerous open-source Android apps from Google and others are available on the Internet (Fig. 2). Figure 3
shows you where you can get the Android source code, learn about the
philosophy behind the open-source operating system and get licensing
information.
Java
Android apps are
developed with Java—the world’s most widely used programming language.
Java—the world’s most widely used programming language—was a logical
choice for the Android platform, because it’s powerful, free and open
source. Java is used to develop large-scale enterprise applications, to
enhance the functionality of web servers, to provide applications for
consumer devices (e.g., cell phones, pagers and personal digital
assistants) and for many other purposes.
Java enables you to develop
apps that will run on a variety of devices without any platform-specific
code. Experienced Java programmers can quickly dive into Android
development, using the Android APIs (Application Programming Interfaces)
and others available from third parties.
The openness of the
platform spurs rapid innovation. Android is available on devices from
dozens of original equipment manufacturers (OEMs) in 48 countries
through 59 carriers. The intense competition among OEMs and carriers benefits customers.
Java is object oriented and
has access to powerful class libraries that help you develop apps
quickly. GUI programming in Java is event driven, you’ll
write apps that respond to various user-initiated events such as screen
touches and keystrokes. In addition to directly programming portions of
your apps, you’ll also use Eclipse to conveniently drag and drop
predefined objects such as buttons and textboxes into place on your
screen, and label and resize them. Using Eclipse with the Android
Development Tools (ADT) Plugin, you can create, run, test and debug
Android apps quickly and conveniently, and you can visually design your
user interfaces.
Multitouch Screen
Many Android smartphones
wrap the functionality of a mobile phone, Internet client, MP3 player,
gaming console, digital camera and more into a handheld device with
full-color multitouch screens. These allow you to control the device with gestures involving one touch or multiple simultaneous touches (Fig. 4).
Fig. 4. Android gestures.
Gesture name | Physical action | Used to |
---|
Touch | Tap the screen once. | Open an app, “press” a button or a menu item. |
Double tap | Tap the screen twice. | Zoom in and then back out on pictures, Google Maps and web pages. |
Long press | Touch the screen and hold finger in position. | Open a context menu or grab app icons or objects to move by dragging. |
Drag | Touch and drag your finger across the screen. | Move objects or icons, or scroll precisely on a web page or list. |
Fling | Touch and quickly flick your finger across the screen in the direction you’d like to move. | Scroll through a List View (e.g., Contacts) or a DatePicker View and TimePicker View (e.g., dates and times in the Calendar). |
Pinch zoom | Using two fingers, touch and pinch your fingers together, or spread them apart. | Zoom in and then back out on the screen (e.g., enlarging text and pictures). |
Using the multitouch screen,
you can navigate easily between your phone, apps, music library, web
browsing, and so on. The screen can display a keyboard for typing
e-mails and text messages and entering data in apps (some Android
devices also have hard keyboards). Using two fingers, you can zoom in
(moving your fingers apart) and out (pinching your fingers together) on
photos, videos and web pages. You can scroll up and down or side to side
by just swiping your finger across the screen.
Built-in Apps
Android devices come with several built-in apps, which may vary depending on the device. These typically include Phone, Contacts, Mail, Browser and more (Fig. 5).
Many manufacturers customize the default apps; we’ll show you how to
interact with the apps regardless of how they’ve been changed.
Feature | Description |
---|
Improved memory and performance | Upgrades include:
Dalvik Virtual Machine enhancements made it two to five times faster than in Android 2.1. Chrome V8 engine quickly loads JavaScript web pages. Kernel memory-management boost improves device performance.
|
Auto-discovery | Allows Exchange users to enter a username and password to quickly sync their Exchange accounts with their Android devices. |
Calendar | Users can sync their Exchange Calendar with the Calendar app. |
Global Address Lists (GAL) look-up | Accesses
addresses for e-mail users and distribution lists in the user’s
Microsoft Exchange e-mail system, enabling auto-complete of recipients’
contact names when creating a new e-mail. |
Passwords | Users
can add alphanumeric passwords to unlock a device. This enhances data
security by preventing anyone from accessing information on the locked
device. |
Remote Wipe | If
you’re unable to find your Android device, the Remote Wipe feature
restores it to the factory settings (removing all personal data), thus
protecting the privacy of your information. Once you Remote Wipe the
phone, any data that you haven’t backed up will be lost. [Note:
Availability of Remote Wipe varies by manufacturer and device policy
managers.] |
Contacts and accounts | The Quick Contact
for Android gives users easy access to contact information and modes
for communicating with their contacts, such as e-mail, SMS or phone. A
user can tap a contact’s photo (e.g., in the contacts list, image
gallery, e-mail or calendar), bringing up the Quick Contact widget with the various communication modes. As a developer, you can incorporate Quick Contact into your apps. |
Camera | The
camera controls in Android 2.2 include camera flash support and digital
zoom. Users can adjust the camera settings to account for their
environment (e.g., night, sunset, action), add effects (e.g., sepia, red
tint, blue tint) and more. You can program the camera’s preview and
capture settings and retrieve and encode video. |
Android virtual keyboard | The
keyboard layout has been improved, making typing on the multitouch
screen easier, and ensuring that keyboard touches aren’t missed when
typing with two fingers. |
Improved dictionary | The more sophisticated dictionary learns from the user’s word usage and includes the user’s contacts in the suggestions. |
Browser | The
browser’s improved user interface features a new address bar that the
user can tap for search and navigation, and double-tap to zoom in and
back out on a web page. It also supports HTML5, which includes features
such as video playback and drag and drop that were previously available
only through third-party plugins, such as Adobe Flash. [Note: The Browser also supports Flash.] |
Multiple-languages keyboard | Users
can add keyboards in other languages and easily switch among them by
“flinging” from right to left across the space bar on the keyboard. To
add keyboards, either on a device or in the emulator, go to Settings > Language & keyboard > Android keyboard > Input languages. |
Media framework | Android’s Stagefright media framework
enables video playback and HTTP progressive streaming—i.e., sending
video over the Internet using the HyperText Transfer Protocol to a
browser and playing the video even while it’s still downloading. The
previous media framework, OpenCORE, is still supported in Android. |
Bluetooth | Users
can now wirelessly connect their Android devices to other
Bluetooth-enabled devices such as headsets and car docks (for connecting
the phone to the car’s hands-free phone system), share contact
information with Bluetooth-enabled phones and voice dial. |
Tethering and Wi-Fi hotspot support | Android
2.x included built-in tethering and Wi-Fi hotspot support, enabling
users to connect their phone to their Windows or Linux computer with a
USB cable to use the phone’s 3G service to connect to the Internet (www.engadget.com/2010/05/13/android-2-2-froyo-to-include-usb-tethering-wifi-hotspot-funct/). |
Android Naming Convention
Each new version of Android is named after a dessert, going in alphabetical order: