Android. (XKE Mars 2009) Erwan Alliaume.

Similar documents
An Introduction to Android. Jason Chen Developer Advocate Google I/O 2008

Android Overview. Most of the material in this section comes from

Mobile and Wireless Systems Programming

Android App Development

Android App Development. Muhammad Sharjeel COMSATS Institute of Information Technology, Lahore

Android Development Tutorial. Yi Huang

Lecture 1 - Introduction to Android

SHWETANK KUMAR GUPTA Only For Education Purpose

Introduction To Android

ANDROID SYLLABUS. Advanced Android

Developer s overview of the Android platform

Lecture 1 Introduction to Android. App Development for Mobile Devices. App Development for Mobile Devices. Announcement.

Mobile OS. Symbian. BlackBerry. ios. Window mobile. Android

Android App Development

Introduction to Android Android Smartphone Programming. Outline University of Freiburg. What is Android? Background University of Freiburg.

CS260 Intro to Java & Android 04.Android Intro

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU

Android Overview. Francesco Mercaldo, PhD

SD Module- Android Programming

ORACLE UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

PAPER ON ANDROID ESWAR COLLEGE OF ENGINEERING SUBMITTED BY:

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

Mobile and Ubiquitous Computing: Android Programming (part 1)

Android Online Training

Another difference is that the kernel includes only the suspend to memory mechanism, and not the suspend to hard disk, which is used on PCs.

BCA 6. Question Bank

Android App Development. Ahmad Tayeb

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Introduction to Android

Mobile Application Development

Introduction to Android

Software Development & Education Center ANDROID. Application Development

Android - open source mobile platform

IJRDTM Kailash ISBN No Vol.17 Issue

Android Internals and the Dalvik VM!

Introduction. Lecture 1. Operating Systems Practical. 5 October 2016

Introduction to Android

ATC Android Application Development

Android Training Overview (For Demo Classes Call Us )

Chapter 1 Hello, Android

Programming Concepts and Skills. Creating an Android Project

Pro Android 2. Sayed Y. Hashimi Satya Komatineni Dave Mac Lean. Apress

Android for Java Developers Dr. Markus Schmall, Jochen Hiller

IGEEKS TECHNOLOGIES. Software Training Division. Academic Live Projects For BE,ME,MCA,BCA and PHD Students

Android Ecosystem and. Revised v4presenter. What s New

ANDROID COURSE BROCHURE

Android. Lesson 1. Introduction. Android Developer Fundamentals. Android Developer Fundamentals. to Android 1

1. What are the key components of Android Architecture? 2. What are the advantages of having an emulator within the Android environment?

Syllabus- Java + Android. Java Fundamentals

Mobile Computing LECTURE # 2

Android System Architecture. Android Application Fundamentals. Applications in Android. Apps in the Android OS. Program Model 8/31/2015

Android Programming in Bluetooth Cochlea Group

Android Software Development Kit (Part I)

Minds-on: Android. Session 1

COLLEGE OF ENGINEERING, NASHIK-4

Android App Development Workshop

Android Programmierung leichtgemacht. Lars Vogel

Android Application Development 101. Jason Chen Google I/O 2008

Why Android? Why Android? Android Overview. Why Mobile App Development? 20-Nov-18

Android Programming (5 Days)

ios vs Android By: Group 2

IJMIE Volume 2, Issue 4 ISSN:

Mobile Computing. Introduction to Android

Reconstructing DALVIK. Applications. Marc Schönefeld CANSECWEST 2009, MAR18

Android Development Tools = Eclipse + ADT + SDK

Android" Application Development SAMS. Sams Teach Yourself. Shane Conder. Lauren Darcey. Second Edition

Google Android. 2008/3/10 NemusTech, Inc. Lee Seung Min

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

Mobile development initiation

Android Application Development Course Code: AND-401 Version 7 Duration: 05 days

Introduction to Mobile Application and Development

Android. Michael Greifeneder. Image source: Android homepage

CS 528 Mobile and Ubiquitous Computing Lecture 1b: Introduction to Android. Emmanuel Agu

Mobile Application Development - Android

The World of Android Development

Android Syllabus. Android. Android Overview and History How it all get started. Why Android is different.

MC Android Programming

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

Required Core Java for Android application development

Praktikum Entwicklung von Mediensystemen mit Android

Produced by. Mobile Application Development. David Drohan Department of Computing & Mathematics Waterford Institute of Technology

Android In Industrial Applications. A Field Report

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

Abstract. 1. Introduction

Wirtschaftsinformatik Skiseminar ao. Prof. Dr. Rony G. Flatscher. Seminar paper presentation Dennis Robert Stöhr

Android. Operating System and Architecture. Android. Screens. Main features

Praktikum Mobile und Verteilte Systeme. Android-Basics. Prof. Dr. Claudia Linnhoff-Popien André Ebert, Sebastian Feld

Android-Basics. Praktikum Mobile und Verteilte Systeme. Prof. Dr. Claudia Linnhoff-Popien André Ebert, Sebastian Feld

CORE JAVA& ANDROID SYLLABUS

Android Apps Development

ITG Software Engineering

Applications. Marco Ronchetti Università degli Studi di Trento

Android. Mobile operating system developed by Google A complete stack. Based on the Linux kernel Open source under the Apache 2 license

Qt for Device Creation

Android. Training.

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

ANDROID APPLICATION DEVELOPMENT PROSPECTUS ADAAD UNIVERSITY OF SKILLS

User Guide for itrust over SMS and itrust over Wi-Fi Direct Installation and Use

Questions and Answers. Q.1) Which of the following is the most ^aeuroeresource hungry ^aeuroepart of dealing with activities on android?

Introduction to Android development

Transcription:

Android (XKE Mars 2009) Erwan Alliaume ealliaume(*at*)xebia(*dot*)fr http://www.xebia.fr http://blog.xebia.fr

History August 2005 Google acquires Android November 2007 Open Handset Alliance announcement Android SDK avaible September 2008 HTC and T-Mobile announce G1 October 2008 Android SDK 1.0 Android Market goes live G1 available in retail stores in USA March 2009 (today!) Android G1 is available in France via Orange Iphone is out in US Nokia buy Symbian JavaFX goes mobile 2

Android is Hot! 3

Android Google but not only Open handset alliance: 47 vendors Open source Apache license http://git.android.com Solid foundation Based on Linux Kernel 2.6 - Android is not Linux Good framework based on Java Empower User Replace core apps / Personalize as you want Google Stuffs Huge opportunity for vendors, developers, users Not just for phones 4

Dalvik Virtual Machine No native windowing! No glibc! Dalvik - Custom VM implementation Provides application portability Run optimized file format (.dex) Java.class /.jar converted to.dex at build time Support multi processes per VM Slimmed down to use less space No Just-in-time compiler Constant pool has been modified to use only 32- bit indexes Uses its own bytecode, not Java bytecode..java.class.dex Dan Bornstein, has named it after going to the fishing village of Dalvík in Iceland, where some of his ancestors live. 5

Linux Kernel Libraries Application Framework Applications What is Android? Phone Contact Browser Package Manager Activity Manager Telephony Manager Window Manager Resource Manager Content providers Location Manager View System Notification Manager Surface Manager OpenGL Media Framework FreeType SQLite Webkit Core Libraries Dalvik VM Android Runtime SGL SSL Libc Display Driver WiFi Driver Flash Memory Binder Driver Keyboard Driver Camera Driver Audio Driver Power Management 6

What is an application? Application package file : myapp.apk Intents & IntentReceivers Composed by one or more activities Usually a single screen in your application Can be faceless It is an entry point for your application AndroidManifest.xml Activities Visible screens Views Object who know how to draw itself on the screen ListView, DatePicker, MapView Equivalent to JavaSwing Components Layouts Positions : use relative / absolute discouraged Declare to the OS that you want to do something Predefined actions : VIEW (url / contact / pictures) PICK, EDIT, DIAL, Permissions Low level access to features (GSM, SMS, GPS, Internet Declared by the developer at creation time User prompt on the market at installation Services Background services Notifications Receive and react to broadcasted events ContentProviders Shared data 7

What is an application? Libraries Default Activity Intents Other Other Activities Other Activities Activities Services Content Providers Android Manifest Drawable Layouts Values Assets All features of the Hardware are accessible to the developer 8

Hardware / First Phone Google G1 Telephony Location (GPS + phone) Bluetooth / Wifi USB Sensors» Compass» Movement 9

UI Development (1/2) Two ways Declarative XML Full Java Code Rich Java UI API Layouts & widgets : android.widgets* about 80 widgets Customization Inherit and override a base widget Combine existing widgets Fully draw yourself OpenGL May not beat iphone, but foundation of for future Edition Tools Official Eclipse Plugin sux (preview) XML Java Code 3 rd party tool : UI Builder (editor) http://droiddraw.org XML Java code or Both 10

UI Development (2/2) 9-Patch Bitmaps Image stretching for widgets Embedded padding measurement Animation In-built animation framework All view are animable - View.strartAnimation() Tweened animation» Scale, alpha, transition, rotation Frame-by-frame animation» List image 11

Deal with data! Store data Sandbox file system» Adb push, pull Sdcard for big files Preferences» Out-of-the-box application preferences screen SQLite Networking: apache HttpClient is available For XML calls 3 parsers included» SAX» DOM» XmlPull Xstream works 12

Use resources Images, audio, video, strings, layouts, themes, Divided into logical directories Fetch from code Drawables : Resources.getDrawable() XML : Resources.getXML() Strings : Resources.getString() Raw : Resources.openRawResource() Intelligent resource matching Values-en/, values-fr/ Drawable-land/ Drawable-nokeys/ Drawable-en-finger/ 13

Delivery - APK Zip file Java.class converted to.dex XML-files compressed into binary form Manifest for app permissions Signed with developer private key Developer public key included Assets packaged as is 14

Easiest way to code? Java SDK Android SDK Android Emulator Windows, Mac & Linux Command Line Tools» Aapt : Android asset packaging tool» Adb : Android debug bridge» Aidl : Android IDL compiler» Emulator : Android emulator Documentation Example applications Eclipse Eclipse Plugin 15

Application API s Java UI java.util.* java.io.* java.lang.* android.widgets.* android.views.* android.graphics.* Telephony SMS android.telephony.* android.telephony.gsm.smsmanager Web Camera android.webkit.webview android.hardware.cameradevice Local database Maps android.database.* Com.google.android.maps.MapView Location Android.location.LocationManager Multimedia android.media.mediaplayer HTTP org.apache.http.client* 16

WTF? Richard Miner, Android s Chief Developer : No business model From 1,18 billon potential users (web users) to 2.7 billion (mobile phone users) Emulator Mac, Windows & Linux! A lot of things work, but some don't Default libraries from apache harmony Older DOM API can be an issue 17

IPhone? Objective-C vs. Java Multitouch controversy Open vs. not-so-much G1 isn't sexy 18