Android Application Development - Bhecker.com

publicyardMobile - Wireless

Dec 10, 2013 (3 years and 8 months ago)

73 views

Google Android

Introduction to Mobile Computing

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

Open Handset Alliance produces
Android

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

http://www.openhandsetalliance.com/


Bruce Scharlau, University of Aberdeen, 2009

Android is growing

Small, 1% of online
web requests

Bigger, 10% of
online web requests

Android makes mobile Java easier

Well, sort of…

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);


}

}

Android applications are
compiled to Dalvik bytecode

Write app in Java

Compiled in Java

Transformed to Dalvik bytecode

Linux OS


Loaded into Dalvik VM

The Dalvik runtime is optimized
for mobile applications

Run multiple VMs efficiently

Each app has its own VM

Minimal memory footprint

Android has many components

Android has a working emulator

All applications are written in
Java and available to each other

Android designed to enable reuse of
components in other applications

Each application can publish its
capabilities which other apps can use

Android applications have
common structure

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

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

An
Activity Manager

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

Android applications have
common structure

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

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

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

There is a common file structure
for applications

code

images

files

UI layouts

constants

Auto
generated
resource list

Standard components form
building blocks for Android apps

Other applications

Has life
-
cycle

screen

App to handle content

Background app

Like music player

Views

manifest

Activity

Intents

Service

Notifications

ContentProviders

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>

Bruce Scharlau, University of Aberdeen, 2009

Activity is one thing you can do

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/1

Services declared in the manifest
and provide support

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

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

ContentProviders share data

You need one if your application shares data
with other applications

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

UI layouts are in Java and XML


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

Security in Android follows
standard Linux guidelines

Each application runs in its own process

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

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>

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

End of Overview

Next, start to build your first app!