Page 1

Mobile Application Development

August 8th, 2009 Hyderabad, India

We appreciate

Outline ●

Hello Android World

Android Architecture

Android SDK Overview

UI Development

3D with OpenGL

What is Android? An Open Platform for Mobile Development ●

A hardware reference design for mobiles

A Linux operating system kernel

Open source libraries

A run time environment

An application framework and UI framework

Some pre-installed applications and

Software Development Kit

Android SDK ●

No licensing, distribution, or development fees

Hardware access like network, Camera, accelerometer

GSM, EDGE, and 3G networks

GPS with location-based services

Full multimedia hardware control including playback and recording using the camera and microphone

Accelerometer and compass hardware

IPC message passing

Shared data stores

An integrated open source WebKit-based browser

Applications that integrate Map controls as part of their user interface

Peer-to-peer (P2P) support using Google Talk

Mobile-optimized hardware-accelerated graphics, both 2D and 3D

Optimized memory and process management

Software Stack

Android Application ●

Activity Manager


Notification Manager

Content Providers

Resource Manager

Android Libraries ●

android.util – string formatters, XML

android.os – message passing, IPC, clock, debugging – canvas, colors, primitives

android.text – display, parse text

android.database – cursors, database

android.content – data access, content providers

android.view – user interface

android.widget – buttons, text boxes, list boxes etc – Google Maps – Application, Activity and Services

android.provider – standard content provider like Contacts

android.telephony – phone stack

android.webkit – Web-based content

Android Advanced Libraries ●

android.location – Location access – Audio and Video

android.opengl – OpenGL ES API for 3D

android.hardware – Camera, Accelerometer, Compass

android.bluetooth - Bluetooth - WiFi

SDK includes.. ●

Android APIs

Android project development tools

Android executable(.dex) and packaging(.apk) tools

Android Emulator

Dalvik Debug Monitoring Service (DDMS)

Documentation and Sample Code

SDK Setup ● Android pluging available for Eclipse, Netbeans and IntelliJ with JDK 5 or later Android Development Toolkit (ADT) plugin

Types of Android apps ●

Foreground Activity

Background Service

Intermittent Activity

Component of an application ●



Content Providers


Broadcast Receivers


Process States and Priority

Activity Stack

Activity States ●





State Changes

In code. package org.twincling.hello; import; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ // Called at the start of the full lifetime. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Initialize activity. setContentView(R.layout.main); } // Called after onCreate has finished, use to restore UI state @Override public void onRestoreInstanceState(Bundle savedInstanceState) { super.onRestoreInstanceState(savedInstanceState); // Restore UI state from the savedInstanceState. // This bundle has also been passed to onCreate. }

//Called before subsequent visible lifetimes //for an activity process. @Override public void onRestart(){ super.onRestart(); //Load changes knowing that the activity has already //been visible within this process. } //Called at the start of the visible lifetime. @Override public void onStart(){ super.onStart(); //Apply any required UI change now that the Activity is visible. } //Called at the start of the active lifetime. @Override public void onResume(){ super.onResume(); //Resume any paused UI updates, threads, or processes required //by the activity but suspended when it was inactive. } //Called to save UI state changes at the //end of the active lifecycle. @Override

//Called to save UI state changes at the //end of the active lifecycle. @Override public void onSaveInstanceState(Bundle savedInstanceState) { //Save UI state changes to the savedInstanceState. // This bundle will be passed to onCreate if the process is // killed and restarted. super.onSaveInstanceState(savedInstanceState); } // Called at the end of the active lifetime. @Override public void onPause(){ // Suspend UI updates, threads, or CPU intensive processes // that don’t need to be updated when the Activity isn’t // the active foreground activity. super.onPause(); }

// Called at the end of the visible lifetime. @Override public void onStop(){ // Suspend remaining UI updates, threads, or processing // that aren’t required when the Activity isn’t visible. // Persist all edits or state changes // as after this call the process is likely to be killed. super.onStop(); } // Called at the end of the full lifetime. @Override public void onDestroy(){ // Clean up any resources including ending threads, // closing database connections etc. super.onDestroy(); } }

Summary / Take home â—?

Android overview


Get started on mobile app development

Resources â—?



Special thanks

AppLabs Pvt. Ltd.

freedom of innovation 5,000+ members TSM (2nd Sat) BoF Hackathon Workshops 95+ college sessions and workshops Industry – Student interaction 7-member board of directors

Hyderabad, A. P. India

Largest independent society in A.P.


for android developers