[Samsung Galaxy Grand Quattro] Arinio:
Before We Begin

WHO MANAGED ANDROID?

Android is very different from other mobile platforms currently available. It is not

managed by a single organization, but by a group of companies named the “Open

Handset Alliance,” which is committed to providing a mobile OS that is free, complete,

and open source.

WHY THIS CREATES COMPLEXITY?

1.Multiple screen sizes

Android devices come in a multitude of different screen sizes. Success of your app

can hinge upon how your app looks across devices.

2.Fragmentation

It is up to the carrier and manufacturer to update their devices when a new version

of the OS and runtime are released, which doesn’t always happen in a timely manner.

It is therefore necessary to support older versions of the OS and runtime.

3.Different hardware capabilities

Android phones come in all shapes, sizes, and capabilities. It is necessary to ensure

that you degrade unsupported features gracefully when the hardware is limited.

Another important consideration is the particular hardware components on which

you can or cannot rely (for instance, some devices don’t have cameras, GPS sensors,

or keyboards).

4.Resource limitations

Developing applications targeted to the mobile environment is different from developing

for the desktop. CPU speed and memory are limited compared to desktops

or servers. Mobile device users don’t put up with apps that tie up their devices

(blocking the UI), consume too many resources, or crash their devices.

DEVELOPEMENT PROCESS FOR ANDRIOD DEVELOPER TOOLS

Google manages ADT (Android Developer Tools) development, as well as the standard Android platform.

However,the two products are managed very differently, particularly in regards to the opensource

nature of the products. The ADT project is developed by a different group from

the one that manages the main platform. The tools are released separately from the

standard SDK and follow their own release cycle, which is frequently (but not always)

tied to the platform release.

The standard OS is developed behind closed doors—contributions are not accepted to

the current code base. The source code is released to the public at some point after the

group releases it to manufacturers and other insiders.

ANDROID SOFTWARE DEVELOPEMENT KIT

This bundle consists of:

• The Eclipse IDE, including the ADT plug-ins, and all the required extensions

• The SDK Tools

• The Platform Tools

• The latest Android Platform

• A CPU image compatible with the latest platform

CONFIGURING A DEVICE FOR DEVELOPEMENT

The simplest way to test your applications is often by using an Android device. You can

use almost any Android device for development, as long as you make a few changes in

order to enable communication with the development tools.

1. Configuring a Physical Device for Development.

2. Change phone settings.

Launch the Settings app on your phone, then select Applications → Development

→ USB-Debugging. Check the box next to “USB debugging” to enable this functionality.

3. Download the ADB driver.

In order to connect an Android-powered device for testing on Windows machines,

it is necessary to install the appropriate USB driver. This is not necessary on Mac

OS X or Linux.

You can find drivers at the website of the manufacturer of your phone. You may be

able to find a driver through the Android Document website, which contains a list

of links to software for many original equipment manufacturers (OEMs).

4. Validate debugging on the phone.

Connect your device to your computer. If everything went well, you will see a notification

from your operating system, indicating that the device is installed and ready to use.

WHAT IS ADB?

Andriod Debug Bridge (ADB) is the main tool that allows you to interact with your emulator or a

connected device. The ADB process is actually a client/server program. The server component

communicates with a variety of clients (such as the command line or DDMS). The

daemon process on the device facilitates communication of activities such as:

• Push/pull of data or apps

• Issuing shell commands

• Restarting the device

• Reading system logs