1. Trang chủ
  2. » Công Nghệ Thông Tin

Android application development tutorial

67 374 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 67
Dung lượng 3,6 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

 Software platform from Google and the Open Handset Alliance  July 2005, Google acquired Android, Inc..  November 2007, Open Handset Alliance formed to develop open standards for mobi

Trang 1

Android Application Development Tutorial

Accessing Sensors and the Network Deepa Shinde and Cindy Atherton

Trang 3

Introduction to Android

A brief guide to the Android Application Development Environment

Trang 4

 Software platform from Google and the Open Handset Alliance

 July 2005, Google acquired Android, Inc.

 November 2007, Open Handset Alliance formed to develop open standards for mobile devices

 October 2008, Android available as open source

 December 2008, 14 new members joined Android project

Trang 5

Update History

 April 30, 2009: Official 1.5 Cupcake release

 September 15, 2009: 1.6 SDK Donut release

 October 26, 2009: 2.0 SDK Éclair release

◦ Updates to the Éclair release:

 2.0.1 on December 3, 2009

 2.1 on January 12, 2010

Trang 6

Platform Versions

Trang 7

Android and the Hardware

 Built-in Apps ≡ Apps created in SDK

 Leverage Linux kernel to interface with hardware

 Open source platform promotes development from global community

Trang 8

Android Features

 Reuse and replacement of components

 Dalvik virtual machine

 Bluetooth, EDGE, 3G, and WiFi

 Camera, GPS, compass, and accelerometer

 Rich development environment

Trang 9

Android Architecture

Trang 10

Application Fundamentals

 Apps are written in Java

 Bundled by Android Asset Packaging Tool

 Every App runs its own Linux process

 Each process has it’s own Java Virtual Machine

 Each App is assigned a unique Linux user ID

 Apps can share the same user ID to see each other’s files

Trang 11

◦ Run in the background for an indefinite period of time

◦ Example: calculate and provide the result to activities that need it

 Broadcast Receivers

◦ Receive and react to broadcast announcements

◦ Example: announcements that the time zone has changed

 Content Providers

◦ Store and retrieve data and make it accessible to all applications

◦ Example: Android ships with a number of content providers for common

data types (e.g., audio, video, images, personal contact

information, etc.)

 Intents

◦ Hold the content of a message

◦ Example: convey a request for an activity to present an image to the

user or let the user edit some text

Trang 12

 http://developer.android.com/sdk/installi ng.html

 Preparing your system and system requirements

 Downloading and Installing the SDK

 Installing ADT plug-in for Eclipse

 Adding Platforms and Components

 Exploring the SDK

 Completing tutorials

 Troubleshooting

Trang 13

Overview of Sensors

The Android Sensor Platform and how to use it

Trang 14

Open Source Platform

 Developer’s are able to access “goodies”

 Hardware capabilities made available

Trang 15

Hardware-oriented Features

Feature Description

Camera A class that enables your application to interact with the camera to snap a photo, acquire images for a preview screen, and modify parameters used to govern how the camera operates.Sensor Class representing a sensor Use getSensorList(int) to get the list of available Sensors

SensorManager A class that permits access to the sensors available within the Android platform

SensorEventListener An interface used for receiving notifications from the SensorManager when sensor values have changed An application implements this interface to monitor one or more sensors available in the

to compute the magnetic declination from true north

FaceDetector A class that permits basic recognition of a person's face as contained in a bitmap Using this as a device lock means no more passwords to remember — biometrics capability on a cell phone.

Trang 16

Sensor and SensorManager

◦ Orientation, accelerometer, light, magnetic

field, proximity, temperature, etc

◦ Fastest, game, normal, user interface

◦ When an application requests a specific

sampling rate, it is really only a hint, or suggestion, to the sensor subsystem There

is no guarantee of a particular rate being available

◦ High, low, medium, unreliable.

Trang 17

Programming Tutorial

Simulating an Android application that accesses positioning sensors

Trang 18

Preparing for the Tutorial

 Must have Eclipse IDE installed

 Must have Android SDK installed

 Must have knowledge of Java

 Must have the external Google Maps library installed in your SDK environment The Maps library is included with the Google APIs add-on, which you can

install using the Android SDK and AVD Manager.

Trang 19

Get a Google Maps API Key

 A Google Maps API key is required to integrate Google Maps into your Android application

 To apply for a key:

1 Locate the SDK debug certificate in the default folder of "C:\Documents

and Settings\<username>\Local Settings\Application Data\Android" The filename of the debug keystore is debug.keystore

2 Copy the debug.keystore file to a folder named C:\Android\

3 Open the command window and navigate to C:\Program

Files\Java\<JDK_version_number>\bin to locate the Keytool.exe.

4 Execute the following to extract the MD5 fingerprint:

keytool.exe -list -alias androiddebugkey -keystore "C:\Android\debug.keystore" -storepass

android -keypass android

5 Copy the MD5 certificate fingerprint and navigate your web browser to:

http://code.google.com/android/maps-api-signup.html

6 Follow the instructions on the page to complete the application and

obtain the Google Maps key

For more information on using Google Maps in Android application

development:

http://mobiforge.com/developing/story/using-google-maps-android

Trang 20

Create an Android Virtual Device (AVD)

 Defines the system image and device

settings used by the Emulator

 To create an AVD in Eclipse:

1 Select Window > Android SDK and AVD Manager.

The Android SDK and AVD Manager displays.

2 Make sure the entry for Virtual Devices is

selected and click New.

The Create new AVD window displays.

3 Enter a Name for the AVD.

4 Select Google APIs (API level 3) as the

Target.

5 Click Create AVD.

6 Close the Android SDK and AVD Manager.

Trang 21

Create the Android Project

 To create the project in Eclipse:

1 Select File > New > Project.

2 Select Android Project in the Android

folder and click Next.

3 Enter GPSSimulator as the Project Name.

4 Select Google APIs (Platform 1.5) as the

Build Target.

5 Enter GPSSimulator as the Application name.

6 Enter com.android.gpssimulator as the

Package name.

7 Enter GPSSimulator as the Activity name.

8 Click Finish.

Trang 22

The New Android Project

Trang 23

Modify the AndroidManifest.xml File

 Add permissions for GPS

 To modify the AndroidManifest.xml file:

project.

the GPSSimulator Manifest.

Trang 24

Add LocationManager to get

Updates

public class GPSSimulator extends Activity

{

private LocationManager lm;

private LocationListener locationListener;

// Called when the activity is first created.

}

Trang 25

public void onProviderDisabled(String provider) {

// TODO Auto-generated method stub

}

@Override

public void onProviderEnabled(String provider) {

// TODO Auto-generated method stub

Trang 26

Test the GPSSimulator

 To test in Eclipse:

1 Switch to DDMS view

2 Find the Location Controls in the Emulator Control tab

3 Click the GPX tab and click Load GPX

4 Locate and select the GPX file

5 Click Play to begin sending coordinates to the Emulator

Trang 27

Add ability to use Google Maps

 Update the Manifest with two lines.

Trang 28

Add MapView to main.xml

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"

Trang 29

Modify GPSSimulator to use Google Maps

private LocationManager lm;

private LocationListener locationListener;

private MapView mapView;

GeoPoint p = new GeoPoint(

(int) (loc.getLatitude() * 1E6),

(int) (loc.getLongitude() * 1E6));

Trang 30

View the Location on the Map

Trang 32

Client-Server Communication

 A server machine is identified on the

Internet by some IP address

 Daemons are the processes running in the

background which are listening all the time for connection requests from clients on a

particular port number

 Once a connection request comes into the

server on a given port, the corresponding

daemon can choose to accept it, and if so, a connection is established

 Then the application layer protocol is

typically used for the client to get or send data to the server.

Trang 33

Programming Tutorial 2

Accessing a website from the Android Emulator

Trang 34

Required Packages

Trang 35

Layout

Trang 36

Link Activity and View

Trang 37

Adding Event to View Object

Trang 38

Strings.xml

Trang 39

AndroidManifest.xml

Trang 40

Network Settings

 If you are using the emulator then there are limitations Each instance of the

emulator runs behind a virtual

router/firewall service that isolates it from your development machine's network interfaces and settings and from the

Trang 41

Behind Proxy Server

Trang 47

App to Download jpg file

Trang 48

App to Download jpg file

 Step 3 Writing OpenHttpConnection()

◦ To open a connection to a HTTP server using

OpenHttpConnection()

◦ We first create an instance of the URL class and initialize

it with the URL of the server

◦ When the connection is established, you pass this connection

to an URLConnection object To check if the connection

established is using a HTTP protocol.

◦ The URLConnection object is then cast into an

HttpURLConnection object and you set the various properties

of the HTTP connection.

◦ Next, you connect to the HTTP server and get a response from

the server If the response code is HTTP_OK, you then get the InputStream object from the connection so that you can begin to read incoming data from the server

◦ The function then returns the InputStream object obtained

Trang 49

App to Download jpg file

public class HttpDownload extends Activity {

/** Called when the activity is first

private InputStream OpenHttpConnection(String

urlString) throws IOException {

InputStream in = null;

int response = -1;

URL url = new URL(urlString);

URLConnection conn = url.openConnection();

if (!(conn instanceof HttpURLConnection))

httpConn.setAllowUserInteraction(false); httpConn.setInstanceFollowRedirects(true); httpConn.setRequestMethod("GET");

httpConn.connect();

response = httpConn.getResponseCode();

if (response == HttpURLConnection.HTTP_OK) {

in = httpConn.getInputStream();

} } catch (Exception ex) { throw new IOException("Error connecting");

} return in;

} }

Trang 50

App to Download jpg file

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical"

Trang 51

App to Download jpg file

 Step 5 writing

DownloadImage()

◦ The DownloadImage() function

takes in a string containing

the URL of the image to

download

◦ It then calls the

OpenHttpConnection()

function to obtain an

InputStream object for

reading the image data

◦ The InputStream object is

sent to the decodeStream()

method of the BitmapFactory

class

◦ The decodeStream() method

decodes an InputStream

object into a bitmap

◦ The decoded bitmap is then

} catch (IOException e1) { e1.printStackTrace();

} return bitmap;

}

Trang 52

 Step 6 T est the DownloadImage() function, modify the onCreate() event as follows

Trang 53

App to Download jpg file

 Step 7:Output

Trang 54

Programming Tutorial 3

Transmitting SMS messages across the network

Trang 55

Intent and IntentFilter

 Intents request for an action to be performed and supports interaction among the Android components.

◦ For an activity it conveys a request to present an image to the user

◦ For broadcast receivers, the Intent object names the action being announced.

 Intent Filter Registers Activities, Services and Broadcast Receivers(as being capable of performing an action on a set of data).

Trang 56

 STEP 2

◦ In the main.xml, add

Text view to display

"Enter the phone number

Trang 57

SMS Sending

• Step 3 Import Classes and Interfaces import android.app.Activity;

import android.app.PendingIntent; import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsManager; import android.view.View;

import android.widget.Button;

import android.widget.EditText;

import android.widget.Toast;

Trang 58

SMS Sending

 Step 4 Write the SMS class

public class SMS extends Activity {

btnSendSMS = (Button) findViewById(R.id.btnSendSMS);

txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo);

txtMessage = (EditText) findViewById(R.id.txtMessage);

btnSendSMS.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

String phoneNo = txtPhoneNo.getText().toString();

String message = txtMessage.getText().toString();

if (phoneNo.length()>0 && message.length()>0)

Trang 59

SMS Sending

 Step 5

◦ To send an SMS message, you use the SmsManager class And to instantiate this class call getDefault() static method

◦ The sendTextMessage() method sends the SMS message with a PendingIntent

◦ The PendingIntent object is used to identify a target to invoke at a later time.

private void sendSMS(String phoneNumber, String message) {

Trang 60

SMS Sending

Trang 61

Receiving SMS

 Step 1

Trang 62

Receiving SMS

 Step 2

element so that incoming SMS messages can be

intercepted by the SmsReceiver class.

Trang 63

Receiving SMS

 Step 3

import android.content.BroadcastReceiver; import android.content.Context;

import android.content.Intent;

import android.telephony.SmsMessage;

import android.widget.Toast;

Trang 64

Receiving SMS

 Step 4

public class SmsReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

// -get the SMS message passed

Bundle bundle = intent.getExtras();

SmsMessage[] msgs = null;

String str = "";

if (bundle != null){

// -retrieve the SMS message

Object[] pdus = (Object[]) bundle.get("pdus");

The messages are stored in a object array PDU format To extract each message, you use the static

createFromPdu() method from the SmsMessage class The SMS message is then displayed using the Toast class

Trang 65

Receiving SMS

Trang 66

 What is Android?

 What are the sensor and networking capabilities in Android?

 How to use location data and Google maps in Android?

 How to access websites?

 How to send SMS messages across the network?

 Questions/Comments?

Trang 67

 Ableson, Frank “Tapping into Android’s sensors.” www.ibm.com January 30,

2010

http://www.ibm.com/developerworks/opensource/library/os-android-sensor/index.h tml

 Ableson, Frank; Collins, Charlie; Sen, Robi Unlocking Android, A Developer’s Guide Greenwich: Manning Publications Co 2009.

 Android Development Guide January 30, 2010

 Open Handset Alliance, http://www.openhandsetalliance.com/

 Patterson, Don “Android Development Guide.” getsatisfaction.com January 30,

2010 http://getsatisfaction.com/luci/topics/android_development_guide

 www.androidcompetencycenter.com January 30, 2010

http://www.androidcompetencycenter.com/2009/06/accessing-device-sensors

 Xianhua Shu; Zhenjun Du; Rong Chen, "Research on Mobile Location Service

Design Based on Android," Wireless Communications, Networking and Mobile

Computing, 2009 WiCom '09 5th International Conference on , vol., no.,

pp.1-4, 24-26 Sept 2009

http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=5302615&isnumber=5300799

Ngày đăng: 24/10/2014, 10:35

TỪ KHÓA LIÊN QUAN