Introduction to Android Development

52
Introduction to Android Development Can Elmas March 07, 2012

description

Introduction to Android Development - Galatasaray University

Transcript of Introduction to Android Development

Page 1: Introduction to Android Development

Introduction to Android Development

Can ElmasMarch 07, 2012

Page 2: Introduction to Android Development

Who am I ?

• 2008 GSU graduate

• Software Development Team Leader at Pozitron

– http://www.pozitron.com

• Interest in mobile platforms

• Experience with mobile platforms such as

Symbian (Java ME), BlackBerry and Android

• Experience with server side development

Page 3: Introduction to Android Development

Agenda

• What is Android?

• Why Android?

• Android Architecture

• Android Building Blocks

• Demo

Page 4: Introduction to Android Development

What is Android ?

Page 5: Introduction to Android Development

What is Android?

• Software stack for mobile devices including

an operating system, middleware , key

applications and rich set of APIs

• Project by Open Handset Alliance led by

Google, a consortium of 86 companies

(Samsung, Motorola, Sony, HTC, LG, Dell,

Intel, Nvidia etc.)

• First Release in November 2007

Page 6: Introduction to Android Development

What is Android?• Based on Linux Kernel

• Security, Memory Management, Process

Management, Network Stack, Driver stack

• No, Android is not Linux (No native windowing

system, no glibc, no standard GNU/linux utilities)

• Linux Kernel enhancements (alarm, ashmem,

power management, low memory killer - no swap

space)

• Robust and proven over time

Page 7: Introduction to Android Development

What is Android?

• Applications written primarily in customized

version of Java

• No, android is not Java

– Uses Java language

– Implements part of the Java 5 SE specification

(Collections, generics support)

– Runs on Dalvik Virtual Machine instead of JVM

– Multiple VMs

Page 8: Introduction to Android Development

What is Android?• Free and open

– No need of any user id or account for SDK access

– Source at http://source.android.com

• Rich Developer Community

• Cheaper and more innovative Mobile Devices

• Extendable

– Players can add proprietary functionality to their

products

– Companies can remove functionality if they choose

Page 9: Introduction to Android Development

What is Android?

• Android Market, 450.000 apps as of

February 2012

• 850.000 devices activated every day,

according to Google’s Andy Rubin

Page 10: Introduction to Android Development

What is Android?

• Mulitasking

• Integrated browser based on WebKit

Engine

• 3d Graphics based on the OpenGL Es

• SQLite

• Camera, GPS, compass and accelerometer

Page 11: Introduction to Android Development

Why Android?

Page 12: Introduction to Android Development

Why Android?

• Free SDK

– Available at http://developer.android.com

• Open Source

• All applications are equal

• Dalvik Virtual Machine

• Development on Windows, Linux or Mac OS

• Starting development easy and cheap

Page 13: Introduction to Android Development

Why Android?• Rich Development Environment

– Full Device Emulator

– Tools for debugging DDMS (Dalvik Debug Monitor

Server)

– Memory and performance profiling

• Rich Documentation

• Very large community and target audience

• Open Market Place

– Instant publishing

Page 14: Introduction to Android Development

Android Architecture

Page 15: Introduction to Android Development
Page 16: Introduction to Android Development

Android Architecture• Relies on Linux kernel version 2.6 for core system

services

• Every Android application runs on its own

process, with its own Dalvik Virtual Machine

• C/C++ libraries (Surface Manager , Media

Libraries, SQLite etc.)

• Native set of core applications including email

client, SMS, Calendar, maps, browser, contacts

and others

Page 17: Introduction to Android Development

Android Building Blocks

Page 18: Introduction to Android Development

Vocabulary

• Activity

• Views

• Resources

• Intents

• Intent Filters

• AndroidManifest.xml

Page 19: Introduction to Android Development

Activity

• What the user see on the screen

• An Android application with User

Interface consists of one or more

Activities.

Page 20: Introduction to Android Development

Activity

Page 21: Introduction to Android Development

Activity

Page 22: Introduction to Android Development

Activity

• Moving through screens is by starting new

activities

• Managed as an activity stack

• LIFO (Last In First Out)

• Only one is visible

• Only one is active

• Activity Lifecycle

Page 23: Introduction to Android Development

Source : http://developer.android.com

Page 24: Introduction to Android Development

Activity States

• Active

– At the top of the stack

• Paused

– Lost focusbut still visible

– Can be killed by Low Memory Killer

• Stopped

– Not at the top of the stack

• Dropped

– Killed to reclaim its memory

Page 25: Introduction to Android Development

Activity

• An empty activity with no content

Page 26: Introduction to Android Development

Views• Views are basic UI building blocks

• They know how to draw themselves

– Android framework responsible for measuring, laying out and

drawing

• Respond to events

• Implementation :

– Java code

– XML

– Separation of presentation of the application from the code controlling

the behavior.

– Ease of visualization of the UI structure

– Strings, color, styles, shapes, animations etc can be described as XML

Page 27: Introduction to Android Development

Views

• Views and view groups trees build

up complex GUIs : widgets

– android.widget.ListView

– android.widget.TextView

– android.widget.Button

– android.widget.ImageView

Page 28: Introduction to Android Development

Views

• Subclasses of ViewGroup, Layouts

• Standard layouts :

– LinearLayout

– FrameLayout

– TableLayout

– RelativeLayout

– AbsoluteLayout

Page 29: Introduction to Android Development

Views• Android UI in XML :

/res/layout/main_act.xml

Page 30: Introduction to Android Development

Resources• External sources other than your code

(images, views and layouts in xml,

strings etc.) should be externalized, so

that you can maintain them

independently

Page 31: Introduction to Android Development

Resources

• Accessing application resources :

– R class

• All reources IDs are defined in R

class, which is automatically

generated by Android aapt tool

Page 32: Introduction to Android Development

Activity

• An empty activity with no content

Page 33: Introduction to Android Development

Activity

Page 34: Introduction to Android Development

Activity

Page 35: Introduction to Android Development

Intents

• An Intention to do something

• Abstract description of an operation to be

performed

• A message to the OS that you want to do

something (pre-defined action)

• Used to move from one Activity to another

Page 36: Introduction to Android Development

Intents

• Facilitates app to app communication

• Primary Attributes

– Action

• The general action to be performed

– Data

• The data to operate on (a contact, an url, the

new activity etc.)

Page 37: Introduction to Android Development

Intent Filters

• Description of what intent an activity

is capable of handling

Page 38: Introduction to Android Development

Intent Filters

Page 39: Introduction to Android Development

AndroidManifest .xml

• Description of the android application

including activities, intent receivers,

permissions, application icon, application

name, version information etc.

• It’s the glue that specifies which Intents your

activities might receive

• An activity should be declared as the main

entry point

Page 40: Introduction to Android Development

AndroidManifest.xml

Page 41: Introduction to Android Development

More Advanced Topics

• How Android deal with Fragmentation?

– API Levels (Cupcake, Donut, Eclair, Froyo,

Gingerbread, Honeycomb, Ice Cream

Sandwich)

• How are the resources selected at run

time according to different screen

sizes and densities?

Page 42: Introduction to Android Development

More Advanced Topics

• Single Threaded UI Model

• APK (Android Package)

• Application Signing

Page 43: Introduction to Android Development

Thank you

• We’re Hiring

– http://pozitron.com/careers.php

[email protected]

• Twitter

–@foragoodpurpose

–@Pozitron_Mobile

Page 44: Introduction to Android Development

Demo• Phase 1:

– Create a new Android project with package

name com.gsuandroid.activities

– Create a new Activity called MainActivity

– Create a layout for MainActivity which will

consist of a LinearLayout containing a

TextView with predefined text “Hello

Android”

– Run your application

Page 45: Introduction to Android Development

Demo• Phase 2:

– Create another activity called ActTwo

– Create a layout for your new activity containing a

TextView without setting a text in XML

– Modify your MainActivity’s layout xml in and add a

Button with setting and id,

android:id="@+id/btn_go_to_act_two » and text « Go

to Next Activity»

– Start ActTwo when user presses button inserted in the

MainActivity

– Run your application

Page 46: Introduction to Android Development

Demo

• Phase 3:

– Pass a text message “That’s it for

today” when moving from MainActivity

to ActTwo

– Run your application

Page 47: Introduction to Android Development

Full Code

Page 48: Introduction to Android Development
Page 49: Introduction to Android Development

main_act.xml

Page 50: Introduction to Android Development

act_two.xml

Page 51: Introduction to Android Development
Page 52: Introduction to Android Development