Android Application Development. Daniel Switkin Senior Software Engineer, Google Inc.



Similar documents
An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

Android Basics. Xin Yang

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University

An Introduction to Android

Here to take you beyond Mobile Application development using Android Course details

Jordan Jozwiak November 13, 2011

Lecture 1 Introduction to Android

Overview of CS 282 & Android

Introduction to Android

ITG Software Engineering

Android (Basic + Advance) Application Development

Introduction to Android

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

Android in Action. Second Edition. Revised Edition of Unlocking Android MANNING. (74 w. long.) W. FRANK ABLESON CHRIS KING ROBI SEN.

Mobile Application Development Android

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Android Architecture. Alexandra Harrison & Jake Saxton

CHAPTER 1: INTRODUCTION TO ANDROID, MOBILE DEVICES, AND THE MARKETPLACE

Getting started with Android and App Engine

Android Application Development - Exam Sample

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Creating and Using Databases for Android Applications

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Application Development

Android Development. Marc Mc Loughlin

Introduction to Android SDK Jordi Linares

Deep Inside Android. OpenExpo Zurich September 25 th, Gilles Printemps - Senior Architect. Copyright 2007 Esmertec AG.

Mobile Application Development 2014

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

Development. SriSeshaa Technologies. Table of Contents

Introduction to Android. CSG250 Wireless Networks Fall, 2008

A Short Introduction to Android

Google Android Syllabus

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

ANDROID INTRODUCTION TO ANDROID

An Introduction to Android. Huang Xuguang Database Lab. Inha University

Programming the Android Platform. Logistics

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

directory to "d:\myproject\android". Hereafter, I shall denote the android installed directory as

COURSE CONTENT. GETTING STARTED Select Android Version Create RUN Configuration Create Your First Android Activity List of basic sample programs

Android Application Development

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

Programming with Android

Building an Android client. Rohit Nayak Talentica Software

TUTORIALS AND QUIZ ANDROID APPLICATION SANDEEP REDDY PAKKER. B. Tech in Aurora's Engineering College, 2013 A REPORT

Android Application Development Lecture Notes INDEX

App Development for Android. Prabhaker Matet

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Presenting Android Development in the CS Curriculum

Android For Java Developers. Marko Gargenta Marakana

The Android Platform

MMI 2: Mobile Human- Computer Interaction Android

Priority Based Pre-emptive Task Scheduling for Android Operating System

Praktikum Entwicklung Mediensysteme (für Master)

Android Development Tutorial. Human-Computer Interaction II (COMP 4020) Winter 2013

1. Introduction to Android

Mobile Phones Operating Systems

Workshop on Android and Applications Development

Introduction to Android Development. Jeff Avery CS349, Mar 2013

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL I)

Android Operating System

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9

Admin. Mobile Software Development Framework: Android Activity, View/ViewGroup, External Resources. Recap: TinyOS. Recap: J2ME Framework

Basics. Bruce Crawford Global Solutions Manager

Android 多 核 心 嵌 入 式 多 媒 體 系 統 設 計 與 實 作

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Hacking your Droid ADITYA GUPTA

Running Android Applications on BlackBerry 10 developer.blackberry.com/android

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

BEGIN ANDROID JOURNEY IN HOURS

Android Operating System:

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Android Mobile App Building Tutorial

Beginning Android Programming

Tutorial #1. Android Application Development Advanced Hello World App

Android Application Development

Android Java Live and In Action

Android Geek Night. Application framework

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Android Application Development Cookbook. 93 Recipes for Building Winning Apps

Android Basic XML Layouts

Introduction to Android Programming (CS5248 Fall 2015)

Practical Android Projects Lucas Jordan Pieter Greyling

Open Source Telemedicine Android Client Development Introduction

ANDROID OPERATING SYSTEM

OMX, Android, GStreamer How do I decide what to use? 15 July 2011

B.M. Harwani. Android Programming UNLEASHED. 800 East 96th Street, Indianapolis, Indiana USA

«compl*tc IDIOT'S GUIDE. Android App. Development. by Christopher Froehlich ALPHA. A member of Penguin Group (USA) Inc.

Module Title: Software Development A: Mobile Application Development

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

Smartphone market share

Transcription:

Android Application Development Daniel Switkin Senior Software Engineer, Google Inc.

Goal Get you an idea of how to start developing Android applications Introduce major Android application concepts Walk you through a sample application in the development environment

Agenda System architecture Hello World! Practical matters Application components Toolchain

What is Android? A free, open source mobile platform A Linux-based, multiprocess, multithreaded OS Android is not a device or a product It s not even limited to phones - you could build a DVR, a handheld GPS, an MP3 player, etc.

Home Applications Contacts Phone Browser... Application Framework Activity Manager Window Manager Content Providers View System Notification Manager Package Manager Telephony Manager Resource Manager Location Manager GTalk Service Libraries Android Runtime Surface Manager Media Framework SQLite Core Libraries OpenGL ES FreeType WebKit Dalvik Virtual Machine SGL SSL libc Linux Kernel Display Driver Camera Driver Bluetooth Driver Flash Memory Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management

Hello World!

The History of GUIs Hardcoded to the screen Hardcoded to the window Hardcoded within a view hierarchy Dynamic layout within a view hierarchy

Generating GUIs Two ways to create GUIs: in XML or in code Declarative route via XML has advantages A lot of your GUI-related work will take place in: res/layout res/values @id/name_for_component gives you handle for referencing XML declarations in code

Views Views are building blocks Examples: Can be as basic as: TextView, EditText, or ListView Fancier views: ImageView, MapView, WebView

Layouts Controls how Views are laid out FrameLayout : each child a layer LinearLayout : single row or column RelativeLayout : relative to other Views TableLayout : rows and columns AbsoluteLayout : <x,y> coordinates

Layouts are resizable 480x320 240x320 320x240

Layouts are customizable res/layout/share.xml res/layout-land/share.xml

Layout Parameters Specify many aspects of what s being rendered Examples: android:layout_height android:layout_width Tip: start with documentation for a specific View or Layout and then look at what s inherited from parent class

Application Components

Basic components Activities UI component typically corresponding to one screen. BroadcastReceivers Respond to broadcast Intents. Services Faceless tasks that run in the background. ContentProviders Enable applications to share data.

Activities Typically correspond to one screen in a UI But, they can: be faceless be in a floating window return a value

Intents Think of Intents as a verb and object; a description of what you want done Examples: VIEW, CALL, PLAY, etc. System matches Intent with Activity that can best provide that service Activities and BroadcastReceivers describe what Intents they can service in their IntentFilters (via AndroidManifest.xml)

Intents Home Contacts GMail Pick photo Photo Picasa Gallery Chat Client System Components New components picks best can be can makes use a request component replaced existing for functionality any a for time specific that action Blogger

BroadcastReceivers Components designed to respond to broadcast Intents Think of them as a way to respond to external notifications or alarms Applications can invent and broadcast their own Intents as well

Services Faceless components that run in the background Example: music player, network downlaod, etc. Bind your code to a running service via a remote-able interface defined in an IDL Can run in your own process or separate process

ContentProviders Enables sharing of data across applications Examples: address book, photo gallery, etc. Provides uniform APIs for: querying (returns a Cursor) delete, update, and insert rows Content is represented by URI and MIME type

Practical matters

Storage and Persistence A couple of different options: Preferences Flat file SQLite ContentProvider

Packaging Think of.apk files as Android packages Everything needed for an application is bundled up therein Basically a glorified ZIP file

Resources res/layout: declarative layout files res/drawable: intended for drawing res/anim: bitmaps, animations for transitions res/values: externalized values for things like strings, colors, styles, etc. res/xml: general XML files used at runtime res/raw: binary files (e.g. sound)

Assets Similar to Resources Differences: Read-only InputStream access to assets Any kind of file Be mindful of file sizes

Application Lifecycle Application lifecycle is managed by the system Application start/stop is transparent to the user End-user only sees that they are moving between screens Read documentation for android.app.activity

Toolchain

Emulator QEMU-based ARM emulator runs same system image as a device Use same toolchain to work with devices or emulator

Eclipse Plugin Project template

Debugging Call stack Examine variables Breakpoints, single stepping

Eclipse demo

Q & A