Lecture 2 Application Fundamentals - CS Course Webpages

3 downloads 109 Views 1MB Size Report
Therefore, Android apps don't have a single entry point (like main() function). .... < data android:mimeType="vnd.android.cursor.dir/vnd.google.note" />.
CSCE 315: Android Lectures (2/2) • Dr. Jaerock Kwon • Kettering University

App Development for Mobile Devices Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering

App Development for Mobile Devices

Kettering University

Jaerock Kwon, Ph.D. Assistant Professor in Computer Engineering

1

Announcement

2

3

Announcement

Lecture 2 Application Fundamentals

Kettering University

Kettering University

2

Today’s Topics

4

5

  Android development tools   Virtual Device Manager   Android Emulator

Android Development Tools

  Dalvik Debug Monitoring Service

  Application components   Activity   Service

Android Development Tools

  Broadcast receiver   Content provider

Kettering University

  Intent   App manifest

  Application resources Kettering University

Virtual Device Manager   Create and manage Android Virtual Devices   Window menu item in Eclipse – Android SDK and AVD Manager

  You can start Android Emulator from the AVD Manager.

Kettering University

6

Android Emulator   An implementation of the Android virtual machine.

5

Virtual Device Manager

  Use this to test and debug your Android applications.

  Create and manage Android Virtual Devices   Window menu item in Eclipse – Android SDK and AVD Manager

  You can start Android Emulator from the AVD Manager.

Android Development Tools Kettering University

7

Kettering University

6

  Written in Java

Dalvik Debug Monitoring Service

8

  The compiled Java code along with resource files and data is bundled by aapt tool into an Android package.

9

  aapt (Android Asset Packaging Tool)   Probably you will not use this directly.

  Use the DDMS perspective to monitor and control Dalvik virtual machines on which you are debugging your apps.

  IDE plugins utilizes this tool to package the apk file.   Android package:   A single archive file. Its filename extension is .apk.   This apk file is the file that users download to their devices.

  Linux process   Every application runs in its own Linux process.

Android Applications

  Each process has its own virtual machine. Kettering University

Kettering University

Kettering University

Android Application

10

  Written in Java   The compiled Java code along with resource files and data is bundled by aapt tool into an Android package.   aapt (Android Asset Packaging Tool)   Probably you will not use this directly.   IDE plugins utilizes this tool to package the apk file.   Android package:   A single archive file. Its filename extension is .apk.   This apk file is the file that users download to their devices.

  Every application runs in its own Linux process.

Android Applications

  Each process has its own virtual machine.

11

  An application can use elements of other applications (should be permitted by the apps).   For this to work, an application process can be started when any part of it is needed and instantiate the Java objects for that part.   Therefore, Android apps don’t have a single entry point (like main() function).   Rather they have essential components that the system can instantiate and run as needed.

  Four types of components   Activities   Services

  Linux process

Kettering University

9

Central Features of Android

  Broadcast receivers   Content providers Kettering University

  No visual interface.

  Application’s presentation layer.   Every screen in you app is an extension of the Activity class.

12

Activities

  Runs in the background of an indefinite period of time.

13

  Each activity is given a default window to draw in.

  Examples:

  Activities use Views to form GUI.

  Application’s presentation layer.   Each service extends the Service base class   Every screen in you app is an extension of the Activity class.   It is possible to connect to an ongoing service (and start the service if it is not already running).   Each activity is given a default window to draw in.

  Play background music, fetch data over the network.

  Each view controls a particular rectangular space within the window.   Views are where the activity’s interaction with the user takes place.   ContentView is the root view object in the hierarchy of views.

  You can communicate with service through an interface that the service

  Activity.setContentView() method.

exposes.use Views to form GUI.   Activities

  Activity is equivalent to Form in desktop environment.

Examples: start, pause, stop, restart playback.     Each view controls a particular rectangular space within the window.

  Views are activity’s interaction with the userprocess. takes place.   Services runwhere in thethe main thread of the application

Application Components

  ContentView is the root view components. object in the hierarchy of views.   It is not a sub thread of other   University Activity.setContentView() method. Kettering

Kettering University

  Activity is equivalent to Form in desktop environment.

Kettering University

Kettering University

Services

14

  No visual interface.   Runs in the background of an indefinite period of time.   Examples:   Play background music, fetch data over the network.

  Each service extends the Service base class   It is possible to connect to an ongoing service (and start the service if it is not already running).   You can communicate with service through an interface that the service exposes.   Examples: start, pause, stop, restart playback.

  Services run in the main thread of the application process.   It is not a sub thread of other components. Kettering University

Broadcast Receivers   A Broadcast Receiver receives and reacts to broadcast announcements.

Services

15

14

  Broadcast examples from the system   The timezone change, the battery is low, a picture has been taken, and   Noetc. visual interface.

  application can haveofany receivers to respond to   An Runs in the background an number indefiniteofperiod of time. any announcements.   Examples:   BRs dobackground not displaymusic, user interface.   Play fetch data over the network.   BRs can start an activity response base to theclass information they receive. Each service extends theinService   It is possible to connect to an ongoing service (and start the service if it is not already running).   You can communicate with service through an interface that the service exposes.   Examples: start, pause, stop, restart playback.

Kettering University

  Intent Object   An abstract description of an operation to be performed.

Intents   Android system finds the appropriate activity, service, or set of

16

broadcast receivers to respond to the intent.

Intents Object and Intent Filters

17

An inter-app message passing framework   Two groups of intents

  Activities, Services, Broadcast Receivers are activated by Intents, asynchronous   Explicit intents: messages.   They name the target component.   can Component names are not known to developers of other apps.   You broadcast messages system-wide or to a target Activity or Service.   So they are used for application internal messages.   Then, the system   Implicit intents: will determine the target(s) that will perform any actions as appropriate.   They are often used to activate components in other apps.   Separate methods for activating each type of component.

  For implicit intents

  Activity: Context.startActivty() or Activity.startActivityForResult()   Need to test the intent object against Intents Filters associated with   potential The responding activity can look at the initial intent that caused it to be launched by target. calling getIntent().   Service: Context.startService() Kettering   University Android calls the service’s onStart() method and passes it the intent object.   Broadcast: Context.sendBroadcast(), Context.sendOrderedBroadcast(), …   Android delivers the intent to all interested receivers by calling their onReceive()

Kettering University

Intent Objects

  Intent Object   An abstract description of an operation to be performed.

  Android system finds the appropriate activity, service, or set of broadcast receivers to respond to the intent.   Two groups of intents   Explicit intents:   They name the target component.   Component names are not known to developers of other apps.   So they are used for application internal messages.   Implicit intents:   They are often used to activate components in other apps.

  For implicit intents   Need to test the intent object against Intents Filters associated with potential target. Kettering University

18

Intent Filters

19

A bundle of information   Intent Objects contains information of component that receives the intent and the Android system

Intents Object and Intent Filters

  Intent Objects contains

     

17

  Component name - optional   Action   A string naming the action to be performed.   Examples Intent Object ACTION_CALL: Initiate aof phone call   An abstract description an operation to be performed.   ACTION_EDIT: Display data for the user to edit   ACTION_MAIN: Start the up asappropriate the initial activityactivity, of a task service, or set of Android system finds   ACTION_BATTERY_LOW: A WARNINGto THAT THEintent. BATTERIY IS LOW broadcast receivers to respond the   Data Two groups of intents   The URL of the data to be acted on.   Explicit Categoryintents:     They Examples:   name the target component. CATEGORY_HOME: The activity displays the home screen.     Component names are not known to developers of other apps.   CATEGORY_LAUNCHER: The activity can be the initial activity and is listed in the top-level   Soapplication they are used for application internal messages. launcher.

  Implicit intents: often used to activate components in other apps.

Kettering   University They are

  For implicit intents

  Intents should be resolved since implicit intents do not name a target component. 18

Intent Objects

  Intent filters are generally in the app’s manifest file A (AndroidManifest.xml) bundle of information   Objects contains information of component receivesaction the intent and the   Intent Most apps have a way to start fresh. The that following and Android system

category are default values of an Android project.

  Intent Objects contains   Component name - optional   Action   A string naming the action to be performed.   Examples   ACTION_CALL: Initiate a phone call   ACTION_EDIT: Display data for the user to edit   ACTION_MAIN: Start up as the initial activity of a task   ACTION_BATTERY_LOW: A WARNING THAT THE BATTERIY IS LOW   Data Kettering   University The URL of the data to be acted on.   Category   Examples:

Note Pad Example

20

Yourcan program have something   You shareshould your data and you canlike… access shared data of other String number = "tel:810-555-1234”; apps.