Top Banner
Google Android Introduction to Mobile Computing
24

Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Mar 26, 2015

Download

Documents

Nicole Hamilton
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Google Android

Introduction to Mobile Computing

Page 2: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android is part of the ‘build a better phone’ process

Open Handset Alliance produces Android

Open Handset Alliance produces Android

Comprises handset manufacturers, software firms, mobile operators, and other manufactures and funding companies

Comprises handset manufacturers, software firms, mobile operators, and other manufactures and funding companies

http://www.openhandsetalliance.com/

Page 3: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Bruce Scharlau, University of Aberdeen, 2009

Android is growing

Small, 1% of online web requests

Small, 1% of online web requests Bigger, 10% of

online web requests

Bigger, 10% of online web requests

Page 4: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android makes mobile Java easier

Well, sort of…

Page 5: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android applications are written in Java

package com.google.android.helloactivity;

import android.app.Activity;import android.os.Bundle;

public class HelloActivity extends Activity { public HelloActivity() { }@Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.hello_activity); }}

Page 6: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android applications are compiled to Dalvik bytecode

Write app in JavaWrite app in Java

Compiled in JavaCompiled in Java

Transformed to Dalvik bytecodeTransformed to Dalvik bytecode

Linux OS Linux OS

Loaded into Dalvik VMLoaded into Dalvik VM

Page 7: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

The Dalvik runtime is optimized for mobile applications

Run multiple VMs efficientlyRun multiple VMs efficiently

Each app has its own VMEach app has its own VM

Minimal memory footprintMinimal memory footprint

Page 8: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android has many components

Page 9: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android has a working emulator

Page 10: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

All applications are written in Java and available to each other

Android designed to enable reuse of components in other applications

Android designed to enable reuse of components in other applications

Each application can publish its capabilities which other apps can use

Each application can publish its capabilities which other apps can use

Page 11: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android applications have common structureViews such as

lists, grids, text boxes, buttons, and even an embeddable web browser

Views such as lists, grids, text boxes, buttons, and even an embeddable web browser

Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data

Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data

A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files

A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files

A Notification Manager that enables all apps to display custom alerts in the status bar

A Notification Manager that enables all apps to display custom alerts in the status bar

An Activity Manager that manages the life cycle of applications and provides a common navigation backstack

An Activity Manager that manages the life cycle of applications and provides a common navigation backstack

Page 12: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Android applications have common structure

Broadcast receivers can trigger intents that start an application

Broadcast receivers can trigger intents that start an application

Data storage provide data for your apps, and can be shared between apps – database, file, and shared preferences (hash map) used by group of applications

Data storage provide data for your apps, and can be shared between apps – database, file, and shared preferences (hash map) used by group of applications

Services run in the background and have no UI for the user – they will update data, and trigger events

Services run in the background and have no UI for the user – they will update data, and trigger events

Intents specify what specific action should be performed

Intents specify what specific action should be performed

Activity is the presentation layer of your app: there will be one per screen, and the Views provide the UI to the activity

Activity is the presentation layer of your app: there will be one per screen, and the Views provide the UI to the activity

Page 13: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

There is a common file structure for applications

code

images

files

UI layouts

constants

Auto generated resource list

Page 14: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Standard components form building blocks for Android apps

Other applications

Has life-cycle

screen

App to handle content

Background appLike music player

Views

manifest

Activity

Intents

Service

Notifications

ContentProviders

Page 15: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

The AndroidManifest lists application details

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

xmlns:android="http://schemas.android.com/apk/res/android" package="com.my_domain.app.helloactivity"> <application android:label="@string/app_name"> <activity android:name=".HelloActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category

android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application>

Page 16: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Bruce Scharlau, University of Aberdeen, 2009

Activity is one thing you can do

Page 17: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Intent provides late running binding to other apps

It can be thought of as the glue between activities. It is basically a passive data structure holding an abstract description of an action to be performed.

Written as action/data pairs such as: VIEW_ACTION/ACTION content://contacts/1Written as action/data pairs such as: VIEW_ACTION/ACTION content://contacts/1

Page 18: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Services declared in the manifest and provide support

Services run in the background:Music player providing the music playing in

an audio application

Services run in the background:Music player providing the music playing in

an audio application

Intensive background apps, might need to spawn their own thread so as to not block the application

Intensive background apps, might need to spawn their own thread so as to not block the application

Page 19: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Notifications let you know of background events

This way you know that an SMS arrived, or that your phone is ringing, and the MP3 player should pause

This way you know that an SMS arrived, or that your phone is ringing, and the MP3 player should pause

Page 20: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

ContentProviders share data

You need one if your application shares data with other applications

You need one if your application shares data with other applications

This way you can share the contact list with the IM application

This way you can share the contact list with the IM application

If you don’t need to share data, then you can use SQLlite database

If you don’t need to share data, then you can use SQLlite database

Page 21: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

UI layouts are in Java and XML

setContentView(R.layout.hello_activity); //will load the XML UI file

Page 22: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

Security in Android follows standard Linux guidelines

Each application runs in its own processEach application runs in its own process

Process permissions are enforced at user and group IDs assigned to processes

Process permissions are enforced at user and group IDs assigned to processes

Finer grained permissions are then granted (revoked) per operations

Finer grained permissions are then granted (revoked) per operations

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.app.myapp" ><uses-permission id="android.permission.RECEIVE_SMS" /></manifest>

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.google.android.app.myapp" ><uses-permission id="android.permission.RECEIVE_SMS" /></manifest>

Page 23: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

There are lots of sources of information

• The sdk comes with the API references, sample applications and docs/resources/bootcamp.pdf

• There are Google news groups

• There is http://www.anddev.org

• There is Google search

Page 24: Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.

End of Overview

Next, start to build your first app!