47
Android Programming Beomjoo Seo ([email protected]) Sep., 12 CS5248 Fall 2012

Android Programming

  • Upload
    mavis

  • View
    45

  • Download
    2

Embed Size (px)

DESCRIPTION

Android Programming. Beomjoo Seo ([email protected]) Sep., 12 CS5248 Fall 2012. Contents. Installation Example by a sample app, “Hello, CS5284” Create an Android Project Building and Running Debugging General Topics Fundamental Components - PowerPoint PPT Presentation

Citation preview

Page 1: Android Programming

Android Programming

Beomjoo Seo ([email protected])Sep., 12

CS5248 Fall 2012

Page 2: Android Programming

Contents• Installation• Example by a sample app, “Hello, CS5284”

– Create an Android Project– Building and Running– Debugging

• General Topics– Fundamental Components

• Activity, Service, Content Providers, and Broadcast Receiver

– Activity, Intent– UI : Layout, Menu– Thread– Misc: Media Recorder, HTTP Post, MP4Parser

• Sample Applicationhttp://developer.android.com/guide/index.html

Page 3: Android Programming

Installation Procedure

• Install JDK 5 or JDK 6• Install Eclipse IDE– Eclipse 3.5 or above• Eclipse JDT plugin

– Run Android SDK starter package– Install ADT plugin (ADT 20.0.3)• Eclipse > Help > Install New Software … -> Add

– https://dl-ssl.google.com/android/eclipse/

• Configure ADT plugin

http://developer.android.com/index.html

Eclipse IDE for Java (EE) Developers

Page 4: Android Programming

Install SDK Packages

• From Android SDK and AVD ManagerVia console OR via eclipse

Page 5: Android Programming

SDK Version Mapping Convention

• Android 4.0.3 Platform– SDK Tools, Revision 20– API Level: 15

Page 6: Android Programming

Eclipse ADT Plugin Configuration

Specify Android SDK location Increase ADT connection time out

At Windows > Preferences > Android

Page 7: Android Programming

Creating a Sample App,“Hello, CS5248”

Page 8: Android Programming

Eclipse > New > Android Project

Page 9: Android Programming

Main Activity Class

Page 10: Android Programming

Graphical Layout Editor

Update ADT plugin !!!

Page 11: Android Programming

XML Layout File

Page 12: Android Programming

Value Resources - Strings.xml

Page 13: Android Programming

R.java

Page 14: Android Programming

The Manifest file

Page 15: Android Programming

Default.properties

Page 16: Android Programming

Building App

Page 17: Android Programming

Building Process

Running

Page 18: Android Programming

No Android Device ?

Install USB Driver !!!

Page 19: Android Programming

1. Install OEM USB Driver from ASUS website.http://support.asus.com/download/ and search by Transformer

2. Update Driver Software from Device Manager

3. Locate USB Driver folder

4. Enable USB Debugging at Transformer

USB Driver Installation

Update Driver software

Page 20: Android Programming

Enabling USB debugging

OR

Page 21: Android Programming

After Successful USB Driver Installation

<sdk>/tools/ddms.bat OR

Page 22: Android Programming

Running Sample App.

Page 23: Android Programming

Sample Hello World Code

Page 24: Android Programming

Editing Sample Code

BE PATIENT Since Eclipse may not be responsive for a long time !!!

Add id to main.xml

Edit HelloWorldActivity.java

“@+id/helloId”

Page 25: Android Programming

Let’s Debug the code

Page 26: Android Programming

A Sample Code

Page 27: Android Programming

App Failure

Page 28: Android Programming

Always, Look at DDMS !!!

Page 29: Android Programming

Correction

Page 30: Android Programming

Debugging via Dalvik Debug Monitor (ddms)

Log.e("Hello, World", "Hello, BJ");

Page 31: Android Programming

Now, everything is ready

Page 32: Android Programming

Application Components

• Android application– .apk : android package

• Four Application Components– Activity

• A single screen with a user interface

– Service• A background processing unit with no user interface

– Content Provider– Broadcast Receiver

• Communication among components except Content Provider– Intent

Page 33: Android Programming

Activity 1

• Activity Lifecycle • Implement Lifecycle Callbacks

Page 34: Android Programming

Activity 2

• Hierarchical View Architecture– ViewGroup (Layout)

• View• View• ViewGroup (Layout)

– View– View– …

• View• ViewGroup

– …

• Declare Activity in the manifest

Page 35: Android Programming

Activity 3

• Start an Activity

• Start an Activity for a Result– Caller Activity

– Callee Activity

• finish

• Activities and Stack

Page 36: Android Programming

UI – Declaring Layout

• Initiated when called setContentView() on onCreate()

• Use Visual Layout Editor for initial layout design.• Edit XML file extensively.

wrap_content or fill_parent

Page 37: Android Programming

UI – Creating Menu

• Menu Types– Options Menu

• Appears when a user touches MENU button.– Context Menu– Submenu

• How to– Specify menu items in a XML resource menu– Inflate a Menu Resource– Respond to user Action

At res/menu/game_menu.xml inflate

callback

Page 38: Android Programming

UI – Handling UI Events

• onClick, onLongClick, onKey, onTouch, …

Page 39: Android Programming

Thread

• UI Thread– “Main” thread per application responsible for interacting with UI

components.

• “Application Not Responding” problem– If UI thread is blocked more than several seconds, ANR dialog appears.– Do not block the UI thread– Do not access UI components outside UI thread.

modify

Page 40: Android Programming

Use AsyncTask, Instead

Page 41: Android Programming

Misc - Media Recorder

• Modify CameraPreview to see the video during recording.

Page 42: Android Programming

Misc - HTTP Post

• Use HttpClient and HttpPost.• Use “multi-part/form-data” to encapsulate

segment.• Do not allocate memory excessively .

Page 43: Android Programming

Misc - Integration with MP4Parser

• Adding a jar file– Create its jar file.– Add jar file to the app.• Build Path > Configure Build Path > Libraries > Add JARs.

• If you include source files directly,– Put Isoparser-default.properties to assets folder– Change getResourceAsStream(“isoparser-

default.properties”) in PropertyBoxParserImpl to “/assets/isoparser-default.properties”.

Page 44: Android Programming

Misc - Connecting to NUS Wifi

Page 45: Android Programming

Misc – Permission Issue

• Add following permissions to the manifest file.

Page 46: Android Programming

Sample ImplementationMainActivity

RecordActivity

Upload Service

PlayerActivity

Option menu Context menu

Record

Record Button Click

Preview Item Click Upload Item Click

Page 47: Android Programming

Final Comment: Use ApiDemo !!!