twincling.org
Mobile Application Development
August 8th, 2009 Hyderabad, India
twincling.org
We appreciate
twincling.org
Outline ●
Hello Android World
●
Android Architecture
●
Android SDK Overview
●
UI Development
●
3D with OpenGL
twincling.org
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
twincling.org
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
twincling.org
Software Stack
twincling.org
Android Application ●
Activity Manager
●
Views
●
Notification Manager
●
Content Providers
●
Resource Manager
twincling.org
Android Libraries ●
android.util – string formatters, XML
●
android.os – message passing, IPC, clock, debugging
●
android.graphics – 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
●
com.google.android.maps – Google Maps
●
android.app – Application, Activity and Services
●
android.provider – standard content provider like Contacts
●
android.telephony – phone stack
●
android.webkit – Web-based content
twincling.org
Android Advanced Libraries ●
android.location – Location access
●
android.media – Audio and Video
●
android.opengl – OpenGL ES API for 3D
●
android.hardware – Camera, Accelerometer, Compass
●
android.bluetooth - Bluetooth
●
android.net.wifi - WiFi
twincling.org
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
twincling.org
SDK Setup ●
●
●
http://code.google.com/android/download.html Android pluging available for Eclipse, Netbeans and IntelliJ with JDK 5 or later Android Development Toolkit (ADT) plugin https://dl-ssl.google.com/android/eclipse/
●
twincling.org
Types of Android apps ●
Foreground Activity
●
Background Service
●
Intermittent Activity
twincling.org
Component of an application ●
Activities
●
Services
●
Content Providers
●
Intents
●
Broadcast Receivers
●
Notifications
twincling.org
Process States and Priority
twincling.org
Activity Stack
twincling.org
Activity States ●
Active
●
Paused
●
Stopped
●
Inactive
twincling.org
State Changes
twincling.org
In code. package org.twincling.hello; import android.app.Activity; 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. }
twincling.org
//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
twincling.org
//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(); }
twincling.org
// 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(); } }
twincling.org
Summary / Take home ●
Android overview
●
Get started on mobile app development
twincling.org
Resources ●
Android http://developer.android.com/
twincling.org
Books
twincling.org
Special thanks
AppLabs Pvt. Ltd. http://www.applabs.com/
twincling.org
freedom of innovation
[email protected] 5,000+ members TSM (2nd Sat) BoF Hackathon Workshops 95+ college sessions and workshops Industry – Student interaction 7-member board of directors
twincling.org
Hyderabad, A. P. India
Largest independent society in A.P.