0% found this document useful (0 votes)
658 views

Android Application Development Tutorial: by Chau Ngo EEL 6788-Advanced Topics in Wireless Networks

Android application development overview and tutorials are presented. Key topics include the Android architecture, application components like activities and services, intents for communication between components, and the manifest file. Instructions are provided on setting up the development environment with Java, Eclipse, and the Android SDK. Sample code demonstrates basic "Hello World" apps and using device sensors.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
658 views

Android Application Development Tutorial: by Chau Ngo EEL 6788-Advanced Topics in Wireless Networks

Android application development overview and tutorials are presented. Key topics include the Android architecture, application components like activities and services, intents for communication between components, and the manifest file. Instructions are provided on setting up the development environment with Java, Eclipse, and the Android SDK. Sample code demonstrates basic "Hello World" apps and using device sensors.
Copyright
© Attribution Non-Commercial (BY-NC)
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 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

You might also like