SlideShare a Scribd company logo
Ilias ahmed
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/fundamental
s.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 FilesJavajdk1.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:UserschauDesktopeclipse-SDK-3.6.1-
win32eclipse
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-
world.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
Android development-tutorial
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
Newly added codeProject Files
Project Files
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:UserschauworkspaceHelloFormStuffsbinHell
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/med
ia/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

More Related Content

What's hot (20)

PPTX
Intro session kotlin
MohammedMehdiPatel
 
PPTX
Study Jam Session 2
Boston Android
 
PPTX
Android study jams 1
DSCBVRITH
 
PPTX
Vit bhopal android study jams 2.0 session 1
ishik1
 
PPTX
Android Study Jam - Info Session
AITIKDANDAPAT
 
PPTX
Android Study Jams Session 01
DSC BIT Mesra
 
PPTX
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
GDSCBVCOENM
 
PPTX
Android study jams 2021 [collab] [master]
GDSCIIITBbsr
 
PPTX
Info session on android study jams
ArjavDesai3
 
PPTX
Google I/O 2019 - what's new in Android Q and Jetpack
Sunita Singh
 
PDF
Android Workshop Part 1
NAILBITER
 
PPTX
ASJ Workshop - Introduction
Amsavarthan Lv
 
PPTX
Android – As a tool of innovation
Pallab Sarkar
 
PDF
Android Studio vs. ADT
Dominik Helleberg
 
PDF
Android studio
Željko Plesac
 
PPTX
Comparison between Eclipse and Android Studio for Android Development
Willow Cheng
 
PPTX
Exploring Android Studio
Akshay Chordiya
 
PPT
Monkey Talk
Jignesh Bhadani
 
PPTX
How to configure monkey talk android agent
Dasun Eranthika
 
PPT
Webinar on Google Android SDK
Schogini Systems Pvt Ltd
 
Intro session kotlin
MohammedMehdiPatel
 
Study Jam Session 2
Boston Android
 
Android study jams 1
DSCBVRITH
 
Vit bhopal android study jams 2.0 session 1
ishik1
 
Android Study Jam - Info Session
AITIKDANDAPAT
 
Android Study Jams Session 01
DSC BIT Mesra
 
Android Study Jam 1 Day 1 | December 2021 | GDSC BVCOENM
GDSCBVCOENM
 
Android study jams 2021 [collab] [master]
GDSCIIITBbsr
 
Info session on android study jams
ArjavDesai3
 
Google I/O 2019 - what's new in Android Q and Jetpack
Sunita Singh
 
Android Workshop Part 1
NAILBITER
 
ASJ Workshop - Introduction
Amsavarthan Lv
 
Android – As a tool of innovation
Pallab Sarkar
 
Android Studio vs. ADT
Dominik Helleberg
 
Android studio
Željko Plesac
 
Comparison between Eclipse and Android Studio for Android Development
Willow Cheng
 
Exploring Android Studio
Akshay Chordiya
 
Monkey Talk
Jignesh Bhadani
 
How to configure monkey talk android agent
Dasun Eranthika
 
Webinar on Google Android SDK
Schogini Systems Pvt Ltd
 

Similar to Android development-tutorial (20)

PPT
Chapter 1 Introduction to android.ppt pl
ENBAKOMZAWUGA
 
PPTX
Introduction to android
zeelpatel0504
 
PDF
Android fundamentals and tutorial for beginners
Boom Shukla
 
PDF
Android and its feature
Shubham Kumar
 
PDF
First Steps with Android - An Exciting Introduction
Cesar Augusto Nogueira
 
PPT
Mobile appliaction w android week 1 by osama
Osama Ghandour Geris
 
PDF
Android Introduction by Kajal
Kajal Kucheriya Jain
 
PPTX
UNIT5newpart1pptx__2024_11_13_09_51_59 (1).pptx
LeeroyMugadza
 
PPTX
Android 1-intro n architecture
Dilip Singh
 
PPTX
Introduction to Android Development Part 1
Kainda Kiniel Daka
 
DOC
Google android white paper
Sravan Reddy
 
PPTX
Android workshop
SubashiniRathinavel
 
PPTX
Getting started with android
amitgb
 
PPTX
Android quick talk
SenthilKumar Selvaraj
 
PPT
Android development tutorial
nazzf
 
PPTX
Android by LAlitha
Lally Lalitha
 
PPTX
Android development tutorial
Mohammad Taj
 
PDF
20IT601PE - Mobile Application Development PPT.pdf
vani15332
 
PPTX
Android
Nirav Ranpara
 
PPTX
Android Basic
Nirav Ranpara
 
Chapter 1 Introduction to android.ppt pl
ENBAKOMZAWUGA
 
Introduction to android
zeelpatel0504
 
Android fundamentals and tutorial for beginners
Boom Shukla
 
Android and its feature
Shubham Kumar
 
First Steps with Android - An Exciting Introduction
Cesar Augusto Nogueira
 
Mobile appliaction w android week 1 by osama
Osama Ghandour Geris
 
Android Introduction by Kajal
Kajal Kucheriya Jain
 
UNIT5newpart1pptx__2024_11_13_09_51_59 (1).pptx
LeeroyMugadza
 
Android 1-intro n architecture
Dilip Singh
 
Introduction to Android Development Part 1
Kainda Kiniel Daka
 
Google android white paper
Sravan Reddy
 
Android workshop
SubashiniRathinavel
 
Getting started with android
amitgb
 
Android quick talk
SenthilKumar Selvaraj
 
Android development tutorial
nazzf
 
Android by LAlitha
Lally Lalitha
 
Android development tutorial
Mohammad Taj
 
20IT601PE - Mobile Application Development PPT.pdf
vani15332
 
Android
Nirav Ranpara
 
Android Basic
Nirav Ranpara
 
Ad

More from ilias ahmed (20)

DOCX
We need parallel or series connections of n mos and pmos with a nmos source t...
ilias ahmed
 
PPSX
Signle assignmentforbciit
ilias ahmed
 
PPTX
Compiler design lab
ilias ahmed
 
PPTX
Labreportofai
ilias ahmed
 
DOCX
Ailabreport
ilias ahmed
 
PPT
artificial intelligence
ilias ahmed
 
PPSX
Compiler designs presentation final
ilias ahmed
 
PPSX
Compiler designs presentation by group 2 final final
ilias ahmed
 
PPT
Assmemble langauge for slideshare.net
ilias ahmed
 
DOCX
Phpfundamnetalfromtutplus
ilias ahmed
 
DOCX
Assignment complier design (GROUP1)
ilias ahmed
 
DOCX
Lisp programming
ilias ahmed
 
DOCX
Lispprograaming excercise
ilias ahmed
 
PPTX
Assembly lab up to 6 up (1)
ilias ahmed
 
PDF
Event design
ilias ahmed
 
PPT
Vlan
ilias ahmed
 
PPT
Data communications
ilias ahmed
 
PPSX
Microprocessor projec ts
ilias ahmed
 
PPSX
Oop features java presentationshow
ilias ahmed
 
RTF
Sql functions
ilias ahmed
 
We need parallel or series connections of n mos and pmos with a nmos source t...
ilias ahmed
 
Signle assignmentforbciit
ilias ahmed
 
Compiler design lab
ilias ahmed
 
Labreportofai
ilias ahmed
 
Ailabreport
ilias ahmed
 
artificial intelligence
ilias ahmed
 
Compiler designs presentation final
ilias ahmed
 
Compiler designs presentation by group 2 final final
ilias ahmed
 
Assmemble langauge for slideshare.net
ilias ahmed
 
Phpfundamnetalfromtutplus
ilias ahmed
 
Assignment complier design (GROUP1)
ilias ahmed
 
Lisp programming
ilias ahmed
 
Lispprograaming excercise
ilias ahmed
 
Assembly lab up to 6 up (1)
ilias ahmed
 
Event design
ilias ahmed
 
Data communications
ilias ahmed
 
Microprocessor projec ts
ilias ahmed
 
Oop features java presentationshow
ilias ahmed
 
Sql functions
ilias ahmed
 
Ad

Recently uploaded (20)

PDF
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
PDF
AI-Powered-Visual-Storytelling-for-Nonprofits.pdf
TechSoup
 
PDF
Aprendendo Arquitetura Framework Salesforce - Dia 03
Mauricio Alexandre Silva
 
PDF
STATEMENT-BY-THE-HON.-MINISTER-FOR-HEALTH-ON-THE-COVID-19-OUTBREAK-AT-UG_revi...
nservice241
 
PDF
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
PPTX
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
PPTX
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
PPTX
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
PPTX
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
PDF
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
PDF
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
PPTX
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
PDF
Horarios de distribución de agua en julio
pegazohn1978
 
PPTX
Introduction to Indian Writing in English
Trushali Dodiya
 
PDF
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
PDF
Council of Chalcedon Re-Examined
Smiling Lungs
 
PDF
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
PPTX
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
PDF
Knee Extensor Mechanism Injuries - Orthopedic Radiologic Imaging
Sean M. Fox
 
PPTX
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 
Mahidol_Change_Agent_Note_2025-06-27-29_MUSEF
Tassanee Lerksuthirat
 
AI-Powered-Visual-Storytelling-for-Nonprofits.pdf
TechSoup
 
Aprendendo Arquitetura Framework Salesforce - Dia 03
Mauricio Alexandre Silva
 
STATEMENT-BY-THE-HON.-MINISTER-FOR-HEALTH-ON-THE-COVID-19-OUTBREAK-AT-UG_revi...
nservice241
 
Stokey: A Jewish Village by Rachel Kolsky
History of Stoke Newington
 
CATEGORIES OF NURSING PERSONNEL: HOSPITAL & COLLEGE
PRADEEP ABOTHU
 
Post Dated Cheque(PDC) Management in Odoo 18
Celine George
 
Identifying elements in the story. Arrange the events in the story
geraldineamahido2
 
How to Configure Re-Ordering From Portal in Odoo 18 Website
Celine George
 
Characteristics, Strengths and Weaknesses of Quantitative Research.pdf
Thelma Villaflores
 
Biological Bilingual Glossary Hindi and English Medium
World of Wisdom
 
care of patient with elimination needs.pptx
Rekhanjali Gupta
 
Horarios de distribución de agua en julio
pegazohn1978
 
Introduction to Indian Writing in English
Trushali Dodiya
 
Governor Josh Stein letter to NC delegation of U.S. House
Mebane Rash
 
Council of Chalcedon Re-Examined
Smiling Lungs
 
Women's Health: Essential Tips for Every Stage.pdf
Iftikhar Ahmed
 
How to Manage Allocation Report for Manufacturing Orders in Odoo 18
Celine George
 
Knee Extensor Mechanism Injuries - Orthopedic Radiologic Imaging
Sean M. Fox
 
Cultivation practice of Litchi in Nepal.pptx
UmeshTimilsina1
 

Android development-tutorial

  • 1. Ilias ahmed EEL 6788- Advanced Topics in Wireless Networks
  • 2. Objectives  Android application development overview  Getting started
  • 3. Outline  Background information  Creating development environment  “Hello, Android” tutorial/demo  Install/Debug application on Android phone device  “Sensors” API sample demo
  • 4. 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
  • 5. 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
  • 6. Meet Android Co-Founders  Rick Miner Andy Rubin Nick Sears  Chris White picture not yet found
  • 7. 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)
  • 8. 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
  • 9. Android Architecture  5 major components: Applications, Application Frameworks, Libraries, Android Runtime, and Linux Kernel
  • 10. Platform Architecture Videos  Presenter: Mike Cleron, Android development team member.  Video 1 of 3 (13 minute): architecture overview + replacing and reusing components example
  • 11. 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
  • 12. 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
  • 14. 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
  • 15. 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
  • 16. 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/fundamental s.html
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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)
  • 23. 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
  • 24. 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 FilesJavajdk1.6.0_23
  • 26. 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:UserschauDesktopeclipse-SDK-3.6.1- win32eclipse
  • 28. 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)
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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- world.html
  • 36. 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
  • 38. 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
  • 39. Newly added codeProject Files Project Files
  • 40. 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
  • 48. 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
  • 49. 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
  • 50. 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.
  • 51. 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:UserschauworkspaceHelloFormStuffsbinHell oFormStuffs.apk
  • 53. 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”
  • 55. 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
  • 56. Sensing Related Packages  Media  http://developer.android.com/reference/android/med ia/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
  • 57. 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
  • 61. Android SDK Disk Storage

Editor's Notes

  • #8: Most code: XML, least code: C++
  • #11: Video 2 of 3 (8 minutes): application life cycle + example Video 3 of 3 (7 minutes): major API including Location Manager, Notification Manager, and Views. Good info
  • #12: While connected, you can communicate with the service through an interface that the service exposes. For the music service, this interface might allow users to pause, rewind, stop, and restart the playback.
  • #14: A text messaging application might have: 1. one activity that shows a list of contacts to send messages to, 2. second activity to write the message to the chosen contact, 3. other activities to review old messages or change settings.
  • #17: Android starts the process when any of the application's code needs to be executed, and shuts down the process when it's no longer needed and system resources are required by other applications. Application code runs in isolation from the code of all other applications.
  • #33: Note: Be sure to define a target for your AVD that satisfies your application's build target (the AVD platform target must have an API Level equal to or greater than the API Level that your application compiles against).
  • #53: Error: device not found, already installed, etc.