Anda di halaman 1dari 61

Android Application

Development Tutorial
By Chau Ngo

EEL 6788- Advanced Topics in Wireless Networks


Objectives
Android application development overview
Getting started
Outline
Background information
Creating development environment
“Hello, Android” tutorial/demo
Install/Debug application on Android phone device
“Sensors” API sample demo
What is Android?
Android is a software stack for mobile devices that includes an operating system,
middleware, and key applications.

Android Software Development Kit (SDK)


 Provides the tools and APIs necessary to begin developing applications on the Android
platform using the Java programming language.

 Includes a debugger, libraries, a handset emulator (based on QEMU), documentation,


sample code, and tutorials

Android Market is an 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 third-party developers,
hosted on Android Market

 As of December 2010, the Android Market had over 200,000 applications


History
Android mobile operating system initially developed by Android Inc,
based in Palo Alto, CA.
Android's co-founders
 Andy Rubin (co-founder of Danger),
 Rich Miner (co-founder of Wildfire Communications, Inc.)
 Nick Sears (once VP at T-Mobile)
 Chris White (headed design and interface development at WebTV)
Android was bought by Google in 2005.
 Its co-founders went to work for Google
Google and other members of the Open Handset Alliance
collaborated on Android's development and release
Android has been available under a free software / open source
license since October ,2008
Meet Android
Co-Founders
Rick Miner Andy Rubin Nick Sears

Chris White picture not yet found


Operating System Overview
Powered by the Linux kernel
Consists of 12 million lines of code including:
 3 million lines of XML
 2.8 million lines of C
 2.1 million lines of Java
 1.75 million lines of C++

http://en.wikipedia.org/wiki/Android_(operating_system)
Current API Distribution
Version 1.0 was released on 23rd September 2008
Newest version, 3.0, was release on 26th January
2011.
Distribution as of 01/04/11
Android Architecture
 5 major components: Applications, Application Frameworks, Libraries,
Android Runtime, and Linux Kernel
Platform Architecture Videos
Presenter: Mike Cleron, Android development team
member.
Video 1 of 3 (13 minute): architecture overview +
replacing and reusing components example
Application Components
An activity presents a visual user interface
 Present a list of menu items users can choose
 Display photographs along with their captions
 Activities work together to form a cohesive user
interface, however each activity is independent of the
others.
Service doesn't have a visual user interface, runs in the
background for an indefinite period of time
 Media player’s music playback service
Application Components
(Cont.)
 Broadcast receiver: is a component that receives and reacts to
broadcast announcements
 let other applications know that some data has been downloaded
to the device and is available for use.

 Content provider :
 Makes a specific set of the application's data available to other
applications
 Enables other applications to retrieve and store data of the type it
controls

http://developer.android.com/guide/topics/fundamentals.html
Activity Life Cycle

http://developer.android.com/guide/topics/fundamentals.html
Android Features
Part 1
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


Custom 2D graphics library;
3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration
optional)

SQLite for structured data storage

http://developer.android.com/guide/basics/what-is-android.html
Android Features
Part 2
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 plug-in for the Eclipse
IDE

http://developer.android.com/guide/basics/what-is-android.html
Application Fundamentals
Written in the Java programming language.
Code along with any required data and resource files are
compiled into an Android package, .apk file.
Installed on mobile devices
Runs in its own Linux process
Has its own virtual machine (VM),
Is assigned a unique Linux user ID
 Permissions are set so that the application's files are visible
only to that user and only to the application itself

http://developer.android.com/guide/topics/fundamentals.
html
Android Central Feature
 Replace and Reuse
 One application can make use of elements of other applications provided
those applications permit it.
 One application doesn't incorporate the code of the other application or
link to it. Rather, it simply starts up that piece of the other application
when the need arises.
 For this to work, the system must be able to start an application process
when any part of it is needed, and instantiate the Java objects for that part.
 Unlike applications on most other systems, Android applications don't have
a single entry point for everything in the application (no main() function, for
example).
 Rather, they have essential components that the system can instantiate and
run as needed.
http://developer.android.com/guide/topics/fundamentals.html
Intents
Is the 5th key class
Objects that hold the content of the message
Activities, services, and broadcast receivers — are activated by
intents
 For activities and services, it names the action being requested
and specifies the URI of the data to act on, among other things
 Request for an activity to present an image to the user or let the user
edit some text
 For broadcast receivers, it names the action being announced
 Announce to interested parties that the camera button has been pressed

http://developer.android.com/guide/topics/fundamentals.html
Manifest file
Before Android can start an application component, it must
learn that the component exists.
Applications must declare their components in a manifest file
Is a structured XML file, named AndroidManifest.xml for all
applications.
Declares the application's components
Names any libraries the application needs to be linked against
(besides the default Android library)
Identifies any permissions the application expects to be granted

http://developer.android.com/guide/topics/fundamentals.html
Manifest File Example
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.helloandroidtoo"
 android:versionCode="1"
 android:versionName="1.0">
 <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
 <activity android:name=".HelloAndroid"
 android:label="@string/app_name">
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 android:debuggable="true"

 </application>
 <uses-sdk android:minSdkVersion="8" />

</manifest>
http://developer.android.com/guide/topics/fundamentals.html
Supported Operating Systems
 Windows XP (32-bit), Vista (32- or 64-bit), or
Windows 7 (32- or 64-bit)
 Mac OS X 10.5.8 or later (x86 only)
 Linux (tested on Ubuntu Linux, Lucid Lynx)
 GNU C Library (glibc) 2.7 or later is required.
 On Ubuntu Linux, version 8.04 or later is required.
 64-bit distributions must be capable of running 32-bit
applications
Supported Development
Environments
Recommended: Eclipse
 Eclipse IDE 3.4 (Ganymede) or greater
 Eclipse IDE for Java Developers
 Eclipse Classic (versions 3.5.1 and higher)
 Eclipse IDE for Java EE Developers
 Eclipse JDT plug-in (included in most Eclipse IDE packages)
 JDK 5 or JDK 6 (JRE alone is not sufficient)
 Android Development Tools plug-in (recommended)

Other development environments or IDEs


 JDK 5 or JDK 6 (JRE alone is not sufficient)
 Apache Ant 1.8 or later

Not compatible with Gnu Compiler for Java (gcj)


Set up Development
Environment
Review system requirements
Installing Java SDK
Download Eclipse IDE
Install Android SDK
Installing ADT plug-in for Eclipse
Adding Platforms and Components

http://developer.android.com/sdk/installing.html
Installing Java SDK
Website:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Takes about 5 minutes
Latest version: 1.6.23
Select the standard edition
Select platform
Check license agreement
Select file in the “Available Files”
Select “Run” to start installing
Accept all default settings unless you want to customize.
Don’t need immediate registration
Java SDK will be installed on C drive by default
 For example: C:\Program Files\Java\jdk1.6.0_23
Java SDK Directory
Download Eclipse
http://www.eclipse.org/downloads/
Takes about 3 Minutes
Select package
Select zip file for your OS
Click on “Download”
On “File Download” dialog, select “Save” to save the .zip file
After zip file is completely downloaded, unzip it.
Eclipse application is located under “eclipse” folder
For example: C:\Users\chau\Desktop\eclipse-SDK-3.6.1-
win32\eclipse\
Eclipse Directory
Notes on Eclipse Tutorial
Instructions written based on older version
Missing steps
HelloWorld tutorial: check on “Create public static
main ….”
First time “Run as  Java application” is not available

Other note: by default, Eclipse project is configured


to “Build Automatically” (Project->Build
Automatically)
Install Android SDK
Website: http://developer.android.com/sdk/index.html
Takes 10-15 minutes
Installer will verify if Java has been installed and stop
installing if Java SDK is missing
Accept most defaults
Accept license agreement
Optionally, install additional packages when Android SDK
and Android Virtual Device (AVD) Manager dialog open.
 Select “Available Packages” and select package (s) to install
● AndroidSDKInstallation.pptx
Install ADT Plugin
For Eclipse
Go to Android SDK Installing website for
instructions.
2 main steps.
Use Eclipse to download
 Download ADT Plugin.pptx
Configure
 Configure ADT Plugin.pptx
Android Emulator
 Virtual mobile device that runs on computer.
 Can be used to prototype, develop, and test Android applications
without using a physical device.
 http://developer.android.com/guide/developing/tools/emulator.html
Create Android
Virtual Device (AVD)
An Android Virtual Device (AVD) is a device configuration
for the emulator that allows you to model real world devices.
In order to run an instance of the emulator, you must create
an AVD.
On Eclipse, select Window -> Android SDK and AVD
Manager
Click New to create a new AVD.
Fill in the details for the AVD. Give it a name, a platform
target, an SD card size (512), and a skin (HVGA is default).
Click Create AVD.
Launch an emulator with the AVD by clicking Start
Hello Android Tutorial
Step 1
Create New Android Project
From Eclipse IDE: Select File -> New ->
Project to open “New File” dialog
 On “New File” dialog: expand “Android”
folder, then select “Android Project”, then
click on “Next” button

 http://developer.android.com/guide/tutorials/hello-w
orld.html
Create Project
Select Android Project
Hello Android Tutorial
Step 2
Specify project properties
 Project name: HelloAndroid
Build target: 2.2
 Might need to create the target first (See Create AVD)
Application name: Hello, Android
Package name: com.example.HelloAndroid
Select “Create Activity” with “HelloAndroid” as name
Min SDK Version: 8
Click on “Finish” button.

 http://developer.android.com/guide/tutorials/hello-world.html
Hello Android Tutorial
Step 3
Edit/Add code in the “onCreate” method
 Comment out the following line
//setContentView(R.layout.main);
 Add the following lines
TextView tv = new TextView(this);
tv.setText("Hello, Android!!!\nWhat's up urban?");
setContentView(tv);
Save the file , then Build the project if needed

*** Might need to import 2 new packages by clicking on the


red cross on the left hand side of that line
Project Files

Project Files Newly added code


Hello Android Tutorial
Step 4
Run application using emulator
 Click “Run As” to open “Run As” dialog
Might need to create an Android Virtual device.
Select “Android Application
Click on “OK”
2 command prompts pop up and go away
Emulator pop ups, then go through a few stages and displays.
Wait for a few minutes for Activity Manager to complete launching the activity. Console
displays message below.
 “Activity Manager: Starting: Intent { act=an ….}”, click on “Menu” to see the “Hello World
Message”
After Emulator “locked” screen appear.
Click on “Menu” button, “Hello Android” message will display.
Click “Home” button on emulator
Click on “…” on screen, “Hello, Android” application icon display on screen.
Double click on app icon to display the app message
“Run As” Dialog
Emulator Initializing
Console Messages
Emulator Startup Screen
Hello Android Running
Emulator Home
Applications Screen
Run On Device
Must set up device, Android environment, and
driver first (see next slide)
Connect USB cable from phone to PC
Run
Eclipse automatically install the application, .apk file,
and run it
Developing on a Device
Declare your application as "debug-able" in your Android Manifest.
Turn on "USB Debugging" on your device.
Install USB driver
If using Android Developer Phone (ADP): Nexus One, or Nexus S, install
Google Windows USB Driver
Otherwise, find a link to the appropriate OEM driver in the OEM USB Drivers
document
Install HTC Sync
 Make sure generic/incomparable driver has been removed
 Take about 5 minutes
 Choose “Complete” Set up type.
 Install HTC Sync.pptx
● Connect phone as “Disk Drive”, not “Charge Only” or “USB Tethering”
http://developer.android.com/guide/developing/device.html
Install APK File
via Android Market
Copy the APK file to your Android’s memory card
and insert the card into your phone.
Download and install the Apps Installer application
from the Android Market
Once installed, run Apps Installer , browse to the
APK file on the memory card.
Click and install your APK file.
Install APK File
Using Android SDK
Android Debug Bridge is a tool that allows manage
the state of an emulator instance or Android-
powered device
Install appropriate driver
Connect phone to PC via USB data cable
Run command line from SDK's platform-tools/
directory :
adb -d install
C:\Users\chau\workspace\HelloFormStuffs\bin\Hell
oFormStuffs.apk
Install APK File Result
Create Project From Existing
Source
For example: platform ApiDemos
Create a new project from existing source
Browse to and select ApiDemos folder
Select Build Target
Click on “Finish”
Create ApiDemos Project
Android Phone Sensors
Accelerometer
 Senses changes in orientation allowing the device to know when it is tilted
on its side
Proximity sensor
 Deactivates the display and touch screen when the device is brought near
the face during a call
Ambient light sensor
 Adjusts the display brightness which in turn saves battery power
E-compass
 Provides orientation with respect to Earth's magnetic field
Camera
GPS
Microphone
Sensing Related Packages
Media
http://developer.android.com/reference/android/me
dia/package-summary.html
Location
http://developer.android.com/reference/android/loca
tion/package-summary.html
Hardware
http://developer.android.com/reference/android/har
dware/Sensor.html
Sensor API Demo
Package: com.example.android.apis.os;
Displays the values of the acceleration sensor graphically.
Get sensor manager
 mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

Register listener for 4 sensor types


 mSensorManager.registerListener(mGraphView,

SensorManager.SENSOR_ACCELEROMETER |
SensorManager.SENSOR_MAGNETIC_FIELD |
SensorManager.SENSOR_ORIENTATION,
SensorManager.SENSOR_DELAY_FASTEST);

 Override onSensorChanged(…) to display the changed value


Questions/Answers
Additional
Hardware Package Summary
Android SDK Disk Storage

Anda mungkin juga menyukai