Вы находитесь на странице: 1из 83

Background

1.5 billion mobile phone users (ITU)


Mobile device capabilities are significantly advanced
than those in the past
PDA + Cell Phone = Smartphone

Background
Operating System (OS)

Process Management
Memory Management
File Management
I/O Management
Networking
Protection System
User Interface

Real Time Operating System (RTOS)


Characterized by timing constraints

Mobile Operating System (Mobile OS)


RTOS running on a mobile device

Agenda
Competitive Landscape
Operating Systems
iPhone
BlackBerry
Windows Mobile
Android
Symbian

OS Features
Features
Multitasking
Scheduling
Memory Allocation
File System Interface
Keypad Interface
I/O Interface
Protection and Security
Multimedia features

Introduction
Design and capabilities of a Mobile OS (Operating System) is very
different than a general purpose OS running on desktop machines:
mobile devices have constraints and restrictions on their
physical characteristic such as screen size, memory, processing
power and etc.
Scarce availability of battery power
Limited amount of computing and communication capabilities

Introduction (Cont.)
Thus, they need different types of operating systems depending on
the capabilities they support. e.g. a PDA OS is different from a
Smartphone OS.
Operating System is a piece of software responsible for
management of operations, control, coordinate the use of the
hardware among the various application programs, and sharing the
resources of a device.

Operating System Structure


A mobile OS is a software platform on top of which other programs
called application programs, can run on mobile devices such as
PDA, cellular phones, smartphone and etc.

Applications
OS Libraries

Device Operating System Base, Kernel


Low-Level Hardware, Manufacturer Device Drivers
7

Mobile Operating
System Platforms
There are many mobile operating systems. The followings
demonstrate the most important ones:
Java ME Platform
Palm OS
Symbian OS
Linux OS
Windows Mobile OS
BlackBerry OS
iPhone OS
Google Android Platform

Java ME Platform
J2ME platform is a set of technologies, specifications and libraries
developed for small devices like mobile phones, pagers, and
personal organizers.
Java ME was designed by Sun Microsystems. It is licensed under
GNU General Public License

Java ME Architecture
Java ME platforms are composed of the following elements:
Application

Profile

Optional
Packages

Vendor
specific
classes - OEM

Configuration
Native Operating System
Device/ Hardware

10

Java ME Main Components


Configuration: it defines a minimum platform including the java
language, virtual machine features and minimum class libraries for
a grouping of devices. E.g. CLDC
Profile: it supports higher-level services common to a more specific
class of devices. A profile builds on a configuration but adds more
specific APIs to make a complete environment for building
applications. E.g. MIDP

11

Java ME
Optional Package: it provides specialized service or functionality
that may not be associated with a specific configuration or profile.
The following table lists some of the available packages:

Packages

Description

JSR 75 - PIM

PDA Package

JSR 82 - BTAPI

Java APIs for Bluetooth

JSR 120 - WMA

Wireless Messaging API

JSR 172

J2ME Web Service

JSR 179

Location API for J2ME

12

Java ME Platforms
It includes two kinds of platforms:
High-end platform for high-end consumer devices. E.g. TV settop boxes, Internet TVs, auto-mobile navigation systems
Low-end platform for low-end consumer devices. E.g. cell
phones, and pagers
Platforms

Device Characteristics

High-End consumer
devices

a large range of user interface capabilities


total memory budgets starting from about two to four megabytes
persistent, high-bandwidth network connections, often using TCP/IP

Low-end consumer
devices

simple user interfaces


minimum memory budgets starting from about 128256 kilobytes
low bandwidth, intermittent network connections that is often not based on the
TCP/IP protocol suite.
most of these devices are battery-operated

13

Java ME Platforms (Cont.)


The following figures demonstrate the elements of these two types of
platforms:
Personal Profile
MIDP

Foundation Profile

CLDC

CDC

KVM

JVM

Fig.1- Low-end consumer device


platform architecture

Fig.2- High-end consumer device


platform architecture
14

Java ME CLDC

We focus on Low-end consumer devices:


CLDC configuration address the following areas:
Java language and virtual machine features
Core Java libraries
CLDC Specific Libraries (Input/output & Networking)
Internationalization: There is a limited support for converting Unicode
characters to and from a sequence of bytes.
Security: CLDC addresses the following topics to security
At the low-level the virtual machine security is achieved by requiring
downloaded Java classes to pass a class file verification step.
Applications are protected from each other by being run in a closed
sandbox environment.
Classes in protected system packages cannot be overridden by
applications.

15

Java ME CLDC (Cont.)


The entire CLDC implementation (static size of the K virtual
machine + class libraries) should fit in less than 128 kilobytes.
It guarantee portability and interoperability of profile-level code
between the various kinds of mobile (CLDC) devices

16

Palm OS
Palm OS[1] is an embedded operating system designed for ease of
use with a touchscreen-based graphical user interface.
It has been implemented on a wide variety of mobile devices such
as smart phones, barcode readers, and GPS devices.
It is run on Arm architecture-based processors. It is designed as a
32-bit architecture.

17

Palm OS Features
The key features of Palm OS [1,2,3] are:
A single-tasking OS:
Palm OS Garnet (5.x) uses a kernel developed at Palm, but it
does not expose tasks or threads to user applications. In
fact, it is built with a set of threads that can not be changed
at runtime.
Palm OS Cobalt (6.0 or higher) does support multiple
threads but does not support creating additional processes
by user applications.
Palm OS has a preemptive multitasking kernel that provides
basic tasks but it does not expose this feature to user
applications .

18

Palm OS Features (Cont.)


Memory Management:
The Memory, RAM and ROM, for each Palm resides on a
memory module known as card. In other words, each
memory card contains RAM, ROM or both. Palms can have
no card, one card or multiple cards.
Expansion support[3]:
This capability not only augments the memory and I/O , but
also it facilitates data interchanges with other Palm devices
and with other non-Palm devices such as digital cameras,
and digital audio players.
Handwriting recognition input called Graffiti 2

19

Palm OS Features (Cont.)

HotSync technology for synchronization with PC computers


Sound playback and record capabilities
TCP/IP network access
Support of serial port, USB, Infrared, Bluetooth and Wi-Fi
connections
Defined standard data format for PIM (Personal Information
Management) applications to store calendar, address, task and
note entries, accessible by third-party applications

20

Palm OS Features (Cont.)


Security model:

Device can be locked by password, arbitrary application


records can be made private [2]

Palm OS Cobalt include a certificate manager. The Certificate


Manager handles X.509 certificates[3].

21

Symbian OS
Symbian OS is 32 bit, little-endian operating system, running on
different flavors of ARM architecture[4].
It is a multitasking operating system and very less dependence on
peripherals.
Kernel runs in the privileged mode and exports its service to user
applications via user libraries.

22

Symbian and Symbian OS


Symbian:
a software licensing company owned by Ericsson,
Nokia, Panasonic, Psion, Samsung Electronics
Siemens and Sony Ericsson.

Symbian OS:
standard operating system for data-enabled
mobile devices

Evolution of Symbian OS

1997 - 32 bit EPOC Platform (Psion Software Inc) Psion Series 5 PDA
1998 Symbian A spin-off from Psion Software Inc.
Co-owned by Psion, Nokia, Eriksson, Motorola
The motive behind this spin-off was to develop an advanced software
platform for a new combination of consumer products called smartphones
which would combine telephony and computing capability
1999 EPOC named as Symbian OS
Co-owned by Psion, Nokia, Sony-Eriksson, Motorola, Matsushita (Panasonic),
Samsung and Siemens.

Symbian OS
Hard RTOS based on layered/micro-kernel architecture
StrongARM architecture (ARM9 running over 100 MHZ)
Program storage (flash memory) ; OS storage flash ROM

Characteristics of Symbian OS

Integrated multimode mobile telephony


Open application environment
Open standards and interoperability
Multi-tasking
Fully object-oriented and component based
Flexible user interface design

Special Features in Symbian OS


Error Handling
Cleanup Stack
Two-phase Constructions

Active Object
implements multi-tasking without using multithread
One active scheduler per thread cooperating with one or mor
active objects
Non-preemptive, no mutual exclusion codes are needed

Symbian OS Features
Real-time: it has a real-time, multithreaded kernel.
Data Caging : it allows applications to have their own private data
partition. This feature allows for applications to guarantee a secure
data store. It can be used for e-commerce applications, location
aware applications and etc.
Multimedia: it supports audio, video recording, playback and
streaming, and Image conversion.

27

Symbian OS
Features (Cont.)
Platform Security [6]: Symbian provides a security mechanism
against malware. It allows sensitive operations can be accessed by
applications which have been certified by a signing authority. In
addition, it supports full encryption and certificate management,
secure protocols ( HTTPS, TLS and SSL) and WIM framework.

28

Symbian OS
Features (Cont.)

Internationalization support: it supports Unicode standard.


Fully object-oriented and component- based
Optimized memory management
Client- server architecture [6]: described in previous slides, it
provides simple and high-efficient inter-process communication.
This feature also eases porting of code written for other platforms
to Symbian OS.

29

Symbian OS
Features (Cont.)
A Hardware Abstraction Layer (HAL): This layer provides a
consistent interface to hardware and supports deviceindependency
Kernel offers hard real-time guarantees to kernel and user mode
threads.

30

Symbian OS

Micro-kernel uses client/server session based IPC


Servers mediate access to shared resources and services
Kernel deals with memory allocation and IPCs
Proactive defense mechanism
Platform Security Architecture
OS Services
Data Caging

Symbian OS Structure
User libraries include networking, communication, I/O interfaces
and etc.
Access to these services and resources is coordinated through a
client-server framework.

Clients use the service APIs exposed by the server to communicate


with the server.
The client-server communication is conducted by the kernel.

32

Symbian OS
Structure (Cont.)
The following demonstrates the Symbian OS architecture[5]:

Symbian OS Libraries
KVM

Application Engines
Servers

Symbian OS Base- Kernel


Hardware
33

Symbian OS Architecture

Architectural Overview
Core
Kernel, file server, memory management and device drivers

System Layer
Communication and computing services e.g. TCP/IP, IMAP4, SMS and database
management

Application Engines
User Interface Software
Applications
All layers communicate with each other using Client/Server Mechanism

Platform Security
Categories of trust

The kernels role

EKA2 kernel is the key component of TCB


Multi-threaded and pre-emptive multitasking RTOS kernel
IPC mechanism Client/Server Sessions
Special accessor and copy functions

Thread stacks and heaps are


private chunks
When the kernel allocates
memory to a process, it
overwrites it with zeroes to
prevent any private data
from the previous owner
being accessible to the new
process.

DBMS

Window
Server

File
Server

Kernel
Server
Kernel mediated sessions

Application

The kernel

Parameter passing in IPC request the length is checked, even in the case of a
pointer, to ensure that the server will not read or write more than the client
expected to disclose : any attempt to read before the pointers address or after its
length will fail.
EKA2 also takes advantage of the ARMv6 never-execute bit in the page
permissions when supported by the hardware. This is used to deny execution of
code from stacks, heaps and static data.

Data Caging

Data caging allows applications on a Symbian OS device to have private data


which is not accessible by other applications.
It is about file access control. Opposite to traditional Access Control List, it is
Fixed Access Control Policy.

The access rules of a file are entirely determined by its directory path, regardless of the drive.

1.
2.
3.
4.

Four different sets of rules have been identified which are represented by four
directory hierarchies under the root \:
\sys ; Only TCB processes can read and write
\resource ; All processes can read but only TCB processes can write
\private ; All program are provided a private sub directory regardless of their
level of trust. Only process owner and TCB processes can read and write
All other root files and directories ; Public space

Embedded Linux OS
It is known as Embedded Linux which is used in embedded
computer systems such as mobile phones, Personal Digital
Assistants, media players and other consumer devices.
In spite of Linux operating system designed for Servers and
desktops, the Embedded Linux is designed for devices which have
relatively limited resources such as small size of RAM, storage,
screen, limited power and etc. Then, they should have an
optimized kernel.

40

Embedded Linux OS
It is a Real-Time Operating System (RTOS). It meets deadlines and
switch context
It has relatively a small footprint. Today, mobile phones can ship
with a small memory. Thus, OS must not seek to occupy a large
amount of available storage. It should have a small foot print.
Theoretically, they deploy in a footprint of 1MB or less.
It is open source. It has no cost for licensing.
Examples: Motorola Mobile phones such as RAZR V8, RAZR V9,
A1200 are based on MontaVista Linux.

41

Embedded Linux OS
ARM and MIPS structures [7]: Embedded CPU architectures like
ARM and MIPS offer small instruction sets and special execution
modes that shrinks application size and consequently generates
smaller code.

42

Windows Mobile OS
Windows Mobile is a compact operating system designed for
mobile devices and based on Microsoft Win32.
It is run on Pocket PCs, Smartphones and Portable media centers.
It provides ultimate interoperability. Users
requirements are able to manipulate their data.

with

various

43

Google Android Platform


It is a platform and an operating system for mobile devices based
on the Linux operating system.
It allows developers design applications in a java-like language
using Google-developed java libraries.
It supports a wide variety of connectivity such as GSM, WiFi, 3G,
The Operating system has not been implemented yet (Feb, 2008).
Several prototypes have been proposed.

44

Applications

Android Architecture
Application Framework

Libraries

Android runtime

SQLite

openGL

surface
manager

media
framework

webkit

libc

Linux kernel

Core Libraries
Dalvik
virtual machine

Google Android Platform


Android architecture: http://code.google.com/android/what-isandroid.html

46

Google Android Platform


As demonstrated in the previous slide, the Android platform
contains the following layers:
Linux Kernel: Android relies on Linux for core system services
such as security, memory management, process management
and etc.
Android [7] Runtime: it provides a set of core libraries which
supports most of the functionality in the core libraries of Java.
The Android Virtual Machine known as Dalvik VM relies on the
linux kernel for some underlying functionality such as
threading,

47

Google Android Platform


Libraries: Android includes a set of C/C++ libraries. These
libraries are exposed to developers through the Android
application framework. They include media libraries, system C
libraries, surface manager, 3D libraries, SQLite and etc.
Application Framework: it provides an access layer to the
framework APIs used by the core applications. It allows
components to be used by the developers.

48

iPhone OS
iPhone OS is an operating system run on iPhone and iPod.
It is based on Mach Kernel and Drawin core as Mac OS X.
The Mac OS X kernel includes the following component:
Mach Kernel
BSD
I/O component
File Systems
Networking components

49

iPhone OS
The following is Mac OS X Architecture [8]:

Classic

Carbon

Cocoa

JDK

Application Services

BSD
QuickTime

Core Services
Kernel Environment

50

iPhone OS
Mac OS X has a preemptive multitasking environment.
Preempting is the act of taking the control of operating system
from one task and giving it to another task.

It supports real-time behavior.


In Mac OS X, each application has access to its own 4 GB address
space.

51

iPhone OS
Not any application can directly modify the memory of the kernel.
It has a strong mechanism for memory protection.

52

Smartphone OS Competitive
Landscape
iPhone OS
(Apple)

BlackBerry OS
(RIM)

Window Mobile
(Microsoft)

Android
(Google)

Symbian
(Nokia)

Platform

Closed

Closed

Open

Open

Open

Source Code

Closed

Closed

Closed

Open

Open (in future)

Q2 WW Market
Share (Gartner)

2.8% (1)

17.4%

12.0%

n/a

57.1%

Smartphone traffic
share (AdMob)

WW: 4%
US: 16%

WW: 11%
US: 31%

WW: 13%
US: 29%

n/a

WW: 64%
US: 2%

Pros

Early momentum
Data hungry early
adopters
Powerful
distribution
channel

Strong reach
(particularly in US)

Manufacturer /
carrier agnostic

Manufacturer /
carrier agnostic
Open source
innovation

Massive global
reach
Open source
innovation

Issues

Apple dependant

BB dependent
Distribution

Distribution

Late to market
Uncertain
consumer demand

Limited reach in
US
Distribution

Application
ecosystem

>3K apps (~20%


free)
More than 1M
installs in only a
few months

Fewer free apps


BB Application
Center being
developed for
Storm

>18K apps
Skymarket to
launch in 2009

Android Market
announced
$3.8MM awarded
in Developer
Challenge

>10K apps
Claims >90MM
installs over last 2
years

Notes: 1. Artificially low given the wait for the 3G iPhone (5.3% market share in Q1)

53

Windows CE OS

Win CE 5.0 is a hard RTOS


Base OS functionality is provided by
kernel which includes process, thread,
memory and file management
Kernel acts as a conduit for the rest of
the core OS
Windows CE kernel uses a paged
virtual-memory system to manage and
allocate program memory.
The kernel also allocates memory to
the stack for each new process or
thread.

Memory Architecture

ROM stores the entire operating system (OS), as well as the applications that
come with the OS design.
The OS loads all read/write data into RAM.
When OS executes programs directly from ROM, it saves program on RAM
and reduces the time needed to start an application, because the OS does not
have to copy the program into RAM before launching it.
The maximum size for the RAM file system is 256 MB, with a maximum size of
32 MB for a single file.

The maximum size for the RAM file system is 256 MB, with a
maximum size of 32 MB for a single file. However, a database-volume
file has a 16-MB limit. The maximum number of objects in the object
store is 4,000,000.

The boundary between the object store and the program RAM is movable.

Memory Architecture (cont)

Windows Mobile 5.0


RAM is used exclusively for running programs.
Flash memory is used for storage of programs and data.
Result: extended battery life but slower performance

OS Security

Componentization: OS loads only required components


Module Certification: Windows CE exposes a function called OEMCertifyModule, if
implemented; this function gives OEM the ability to verify the trust level of a
process or a DLL within the OS.
The file system can be either a RAM and ROM file system or a ROM only file
system.
The system registry stores the data about applications, user configuration settings
and preferences, passwords.
System registry is readable.

What is iOS
Apples mobile OS for phones (iPhone), tablets
(iPad), handhelds (iPod),
based on BSD Unix
Application programming done in Objective C
Supports Bluetooth, Wi-Fi, and 3G and 4G
networking

3G ( 3rd Generation Network)


Must allow simultaneous use of speech and
data servicesand provide peak data rate of
200 kbits/sec

4G
Provides a comprehensive and secure IP based
solution for IP based telephony, ultra
broadband internet, gaming services and
streamed multimedia.
Peak data rate of 100 Mbit for high mobility
devices and 1 Gbit for low mobility devices.

Commonly Used Packages

User interface controls and widgets


User interface layout
Secure networking and web browsing
Structured storage and relational databases
(SQLite RDBMS)
2D and 3D Graphics SGL and OpenGL
Audio and visual media support
Access to optional hardware (GPS)

The Android Software Stack

Android Application Development

Eclipse IDE

Android
SDK

Android
Emulator

Android
Mobile
Device

iOS Application Development

XCODE IDE

iOS
SDK

iOS
Simulator

iOS
Mobile
Device

Android development

Android
Manifest
Resource
XML

Java Source

Generated
Class
Android
Libraries

Java
Compiler

.dex
File

Dalvik
VM

iOS development

Xcode

Interface
Builder

Objective C
Source
.xib file

Foundation
Framework
Cocoa Libraries

Objective C
Compiler

Simulator
or Device

Mobile computing: Issues


Hardware:
Lower Bandwidth (wireless bandwidth is lower than wired)
Data transfer is slower (e.g. poor performance of iPhone GPS)
Limited battery power
Restricted to low power consumption apps
Reliability
Wireless service (cells) do not cover all areas, e.g. Mfg Sys Lab !

Human Computer Interface (HCI)


For small mobile devices, e.g. phones/PDAs, user-interface is an issue
Software:
Multi-purpose devices
Multi-tasking/threading, prioritizing and switching between processes

Common Mobile Phone OSs


Symbian OS (used by Nokia, Sony-Ericsson, )
- Pre-emptive multi-tasking
- Closed source, Uses C++, Supports Java,
- App development requires certification

RIM Blackberry (used by Blackberry phones)


- Simple GUI, Optimized applications and HCI for email

Windows mobile (used by Samsung, AT&T, LG, Palm Treo)


- GUI emulates windows on PC
- Software development kit (SDK) is free for students, uses Visual C++, .NET

iPhone OS (used by Apple iPhones)


- Based on Apple OS X
- GUI: user friendly, touch-screen only (no keypad support)

Google Android (used by Google phone, HTC, )


- Linux-based OS, Open source !
- SDK is free, uses Java

Comparing mobile apps with desktops..


What differentiates mobile apps from desktop apps ?

- Networked applications must deal with cellular communications


- Mobile OS (and apps have very limited resources:
Smaller size, Less RAM, Slower low energy CPU, Limited graphics,
RAM is smaller,
mobile multimedia formats and file formats are different

- Mobile I/O systems are quite different from desktop ones


Touch-screen based, phone-keys based, reduced keyboard-based,

Mobile Application Development: Case study - Android


Steps in Android Application development:
Download and install SDK
Develop the application: Eclipse IDE (Java, SQLite, XML)
Test the application: Android emulator
Register with Google (US$ 25)
Upload your application to Google App Store

Android OS Architecture

Phone users

App developers

Programmers

Hardware
developers

Structure of an Android Application


Android apps are
stored in packages
Resources:
Data, sound files, images

java
java
code
code

data

mp3

aapt

MyApp.apk

# library calls

Android OS is multi-processing, multi-threading multiple processes can


be running on the device at the same time.
Processes can communicate w/ the OS, and also can communicate w/ each other

Logical structure and life of an Android Application


An Android app is composed of a set of components
- Each component does a well defined activity
- Due to multi-tasking, multiple components could be doing something
at the same time
- An app may use a component from some other app, and/or it may
allow other apps to use some of its components
When an app is executed, Android creates a virtual computer in which
the process runs each process is isolated from others.
This is implemented via the DalVik Virtual Machine [Java Virtual Machine]
security
However, processes can share data with each other via special components
called content providers

Android components: Activities


Activity is a sequence of related actions
Each activity presents a visual interface to the user
Each activity is derived from base class Activity
Each activity owns a View which controls a rectangular window;
Child views (controlling sub-rectangles) can be derived from parents;
Views are used to create images, icons, buttons, etc.
Examples:
The Contacts application may have an activity that displays a
scrolling list of all contacts listed by last name.

The Calculator app may have an activity that displays a numeric keyboard
and buttons for numeric operations, etc. and awaits inputs from the user.

Android API activity control loop

Colored ovals: states of the activity


Grey rectangles: callback methods written by developer

source: developer.android.com

Android components: Services


Service is an activity that runs in the background no visual interface
Each activity is derived from base class Service
Example:
A common example of a service is an mp3 player that may run in the
background as the user may be involved with some activity of another
app, e.g. web browser.

Android API service control loop

Colored ovals: states of the service


Grey rectangles: callback methods written by developer

NOTE:
Typically, a service may be created, say, by an activity;
Alternatively, a service may be started and running in some
other context, and can announce its interface to other activities
in this case, the activity may just connect itself to the service,
in Android, this is called bind-ing to the service.
source: developer.android.com

Android components: Broadcast receivers


Broadcast receivers are similar to interrupt handlers in normal OS
BRs run in the background, listening for interrupts generated by other apps
An application may have one or more BRs to handle interrupts.
Examples of interrupts:
- Incoming phone call
- User changed language setting
- Battery is low
- User has transited from one time zone to different one

Android components: Content providers


Content providers make some subset of an applications data available
to other apps when requested
Content providers are the only mechanism for apps to share data.

Android application process


Process can be multi-threaded Android apps do not have a C-style main.
Activities, services, broadcast receivers: activated by messages called intents.
Content providers: activated by special objects called ContentResolvers.
Depending on the state of the application, and the users actions, the app
may start (or terminate) some activity, or service, etc.
Before Android can start an application component, it must know
the name, location, and input types of the component The manifest
<?xml version="1.0" encoding="utf-8"?>
Notepad app
<manifest package="com.example.android.notepad" >
(partial manifest) <application android:icon="@drawable/app_notes" android:label="@string/app_name" >
<activity android:name="NotesList" android:label="@string/title_notes_list">
<intent-filter> <action android:name="android.intent.action.MAIN" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.EDIT" />
<action android:name="android.intent.action.PICK" />
</intent-filter>

</activity>
</application>
</manifest>

Views in Android
Most activities will present a view to the user, either to display some
graphics, or to get some user-input.
Thus each activity can create (instances) of one or more views. Each
view has some graphical objects that either fill the complete screen,
or a part of the screen.
Each object in a view, i.e. the layout, is also described in XML
Notepad app
(layout of Note-Editor)

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


<view xmlns:android="http://schemas.android.com/apk/res/android"
class="com.example.android.notepad.NoteEditor$LinedEditText"
android:id="@+id/note"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/transparent"
android:padding="5dip"
android:scrollbars="vertical"
android:fadingEdge="vertical"
android:gravity="top"
android:textSize="22sp"
android:capitalize="sentences"
/>

Android app development: summary


The basic steps of developing an android app:
- Develop UML class diagrams, activity diagrams, use-case diagrams
- Identify the activities, services,
- For each activity, decide the GUI and design it, store as resources.
- Use the IDE (e.g. Eclipse), and program the Java code for each class
- Test & debug the code using the android emulator
- Upload the code on the mobile device.

Reading List
Metrics
AdMob metrics (http://www.admob.com/s/solutions/metrics)
Opera State of the Mobile Web Report
(http://www.opera.com/mobile_report/)

Mobile OS introductions / summaries

http://en.wikipedia.org/wiki/Symbian_OS
http://en.wikipedia.org/wiki/IPhone_OS
http://en.wikipedia.org/wiki/Windows_Mobile
http://en.wikipedia.org/wiki/Google_Android
http://en.wikipedia.org/wiki/BlackBerry_OS

Comparison / analysis

83

http://www.brighthand.com/default.asp?newsID=14142
http://www.osnews.com/story/20329/SDK_Shoot-Out_Android_vs_iPhone
http://weblog.infoworld.com/fatalexception/archives/2008/09/sdk_shootout_
an.html
http://www.alleyinsider.com/2008/10/iphone-app-store-s-brutal-reality-getviral-or-don-t-quit-your-day-job

Вам также может понравиться