An Introduction to Android



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

Android Architecture. Alexandra Harrison & Jake Saxton

Introduction to Android

Introduction to Android

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

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

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

Overview of CS 282 & Android

Android Programming and Security

Lecture 1 Introduction to Android

ANDROID OPERATING SYSTEM

Smartphone market share

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

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

Mobile Phones Operating Systems

l What is Android? l Getting Started l The Emulator l Hello World l ADB l Text to Speech l Other APIs (camera, bitmap, etc)

Workshop on Android and Applications Development

Creating and Using Databases for Android Applications

CS378 -Mobile Computing. Android Overview and Android Development Environment

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

Introduction to Android

Android Development. Marc Mc Loughlin

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

Praktikum Entwicklung Mediensysteme (für Master)

Introduction to Android Programming (CS5248 Fall 2015)

Google Android: An Emerging Innovative Software Platform For Mobile Devices

OpenCV on Android Platforms

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

Hacking your Droid ADITYA GUPTA

Android Basics. Xin Yang

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

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

Development. SriSeshaa Technologies. Table of Contents

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

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

Performance Analysis of Android Platform

Module Title: Software Development A: Mobile Application Development

Programming with Android

The "Eclipse Classic" version is recommended. Otherwise, a Java or RCP version of Eclipse is recommended.

Programming the Android Platform. Logistics

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

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

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

Remote Desktop on Mobile

Running a Program on an AVD

Android Architecture Diagram:

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

Overview. The Android operating system is like a cake consisting of various layers.

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

Software development. Development requirements. Java. Android SDK. Eclipse IDE (optional)

Introduction to Android Development. Jeff Avery CS349, Mar 2013

Basic Android Setup Windows Version

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

The power of root on Android emulators

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

ANDROID. Programming basics

Android Operating System

ITG Software Engineering

An Android-based Instant Message Application

ANDROID INTRODUCTION TO ANDROID

Mobile Applications Grzegorz Budzyń Lecture. 2: Android Applications

Introduction to Android Android Architecture Software Development Purpose of the project Location Based Service (LBS) Android. Location class Google

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

Presenting Android Development in the CS Curriculum

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

How To Develop Android On Your Computer Or Tablet Or Phone

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

What else can you do with Android? Inside Android. Chris Simmonds. Embedded Linux Conference Europe Copyright 2010, 2net Limited.

DEVELOPING MOBILE APPLICATIONS USING ANDROID

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

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

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

Review On Google Android a Mobile Platform

Android Geek Night. Application framework

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

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

Mobile applications security Android OS (case study) Maciej Olewiński. Cryptographic Seminar r.

Building an Android client. Rohit Nayak Talentica Software

MMI 2: Mobile Human- Computer Interaction Android

Android Setup Phase 2

Programming with Android: SDK install and initial setup. Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna

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

Mobile Application Development 2014

Android 5.0: Lollipop OS

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

Android Application Development

ODROID Multithreading in Android

Understanding Android s Security Framework

The Android Platform

Android Development Tutorial. Nikhil Yadav CSE40816/ Pervasive Health Fall 2011

Jordan Jozwiak November 13, 2011

Introduction to Android. CSG250 Wireless Networks Fall, 2008

Praktikum Entwicklung von Mediensystemen (Android)

Transcription:

An Introduction to Android Michalis Katsarakis M.Sc. Student katsarakis@csd.uoc.gr Tutorial: hy439 & hy539 16 October 2012 http://www.csd.uoc.gr/~hy439/

Outline Background What is Android Android as a Sensor Develop for Android

Background

Background Internet users and Mobile phone users

Background Open Handset Alliance (OHA) Mobile Operators Handset Manufacturers Semiconductor Companies Software Companies Commercialization Companies

What is Android?

What is Android? Android delivers a complete set of software for mobile devices: Operating System Middleware Key mobile applications Open Breaking down Application Boundaries Fast & Easy Application Development

What is Android? History of Android 2001 search service for wireless device 2005 Acquire Android(Andy Rubin: Danger CEO, Development Sidekick of T-Mobile) Acquire Skia(2D Graphics for mobile device) Acquire RegWireless(Browser and Email for mobile device) Move Engineers from PlamSource(Dianne Hackborn, etc ) 2007 Nov 5: Android announced 2007 Nov 12: Android SDK released by OHA 2007 Dec 14: Bug-fix SDK released 2008 Jan 3: Android Developer Challenge I starts accepting submissions 2008 Feb 13: m5-rc15 SDK released 2008 Apr 14: 1788 total submissions for Challenge I 2008 May 12: Top 50 Applications in Challenge I announced 2008 Nov: Android Phone(G1 Phone by HTC/T-mobile) 2008 Nov: Full Source Open 2009 Apr: HTC Magic 2009 July: HTC Hero, Samsung i7500, Android Netbook, Set-top 2009 Aug: Android Developer Challenge II

What is Android? Open Source Users Industry Industry Software stack opensourced under Apache 2.0 license Source available after first handsets ship Anyone will be able to build a system image Users Users have control of their experience They control what gets installed They choose the defaults Developer Developer Don not need permission to ship an application No hidden or privileged framework APIs Can integrate, extend and replace existing components

What is Android? > Open Source A Developer can: Integrate Extend Replace

What is Android? Android Architecture

What is Android? > Android Architecture Linux Kernel Android OS is built on top of the Linux 2.6 Kernel Linux Core functionality Memory management Process management Networking Security settings Hardware drivers

What is Android? > Android Architecture Libraries Android s native libraries. Libc: c standard lib. SSL: Secure Socket Layer SGL: 2D image engine OpenGL ES: 3D image engine Media Framework: media codecs SQLite: Database engine WebKit: Kernel of web browser FreeType: Bitmap and Vector SufraceManager: Compose window manager with off-screen buffering.

What is Android? > Android Architecture Android Runtime Core Libraries Provides the functionality of the JAVA Programming Language Dalvik VM A type of Java Virtual Machine Register based (not stack machine like JVM) Optimization for low memory requirements Executes.dex (Dalvik-Executable) files instead of.class DX tool converts classes to.dex format Each Android application: runs on its own Process runs on its own Instance of Dalvik VM is assigned its own Linux user ID

What is Android? > Android Architecture Application Framework The blocks that our applications directly interact with. Important blocks: Activity Manager: Manages the activity life cycle of applications Content Providers: Manage the data sharing between applications Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application. Location Manager: Location management, using GPS or cell tower Resource Manager: Manage the various types of resources we use in our Application

What is Android? > Android Architecture Applications This is where our applications are placed. Some pre-installed applications: SMS client app Dialer Web browser Contact manager No compulsory applications Equality among apps Easily embedded web browser Parallel running As developers, we are able to write an app which replaces any existing system app.

What is Android? > Android Architecture Details Java Libraries Apps App Framework C/C++ Runtime Design goals Open Source High flexibility High data accessibility Rapid development (XML, Java) C Linux Kernel Used Languages App: Java Framework: Java Libraries: C/C++ OS & Drivers: C

Android Device as a Sensor

Android Device as a Sensor Motion Sensors: Accelerometer Gyroscope Position Sensors: Magnetometer Proximity GPS Environment Sensors: Barometer Photometer Thermometer Network Interfaces: GSM/CDMA 802.11 Bluetooth After user authorization, an app can access detailed sensor readings, using the Application Framework layer.

Develop for Android

Develop for Android Android SDK Android-sdk add-ons docs (Javadoc style documentation) extras platforms platform-tools adb samples (sample applications) temp tools emulator SDK manager.exe

Develop for Android Android SDK Emulator Android applications may be run on a real device or on the Android Emulator, which ships with the Android SDK. ADB (Android Debug Bridge) The ADB utility lets you connect to the phone itself and issue rudimentary shell commands, such as copying files to and from the device.

Develop for Android Development Environment JDK 5 or 6 Eclipse IDE JDT plugin ADT plugin

Develop for Android Application Fundamentals Development Language: Java Android SDK tools compile the code into an Android package, an archive file with an.apk suffix Security sandbox Each application has a unique Linux user ID Each process has its own virtual machine (VM) Every application runs in its own Linux process Principle of least privilege: Each application, has access only to the components that it requires to do its work and no more. Android Application Dalvik VM Linux Kernel Linux Process

Develop for Android Application Components App Activities An activity represents a single screen with a user interface. Content Providers A content provider manages a shared set of application data. Through the content provider, other applications can query or even modify the data. AndroidManifest.xml Declares: app components, minimum API Level, needed API libraries, user permissions Services A service is a component that runs in the background to perform long-running operations or to perform work for remote processes. A service does not provide a user interface. Broadcast Receivers A broadcast receiver is a component that responds to system-wide broadcast announcements.

Develop for Android Cases

Develop for Android Cases

Develop for Android Case: Hello World

Develop for Android Activity Lifecycle

Develop for Android Service Lifecycle

Develop for Android Intents Activities, Services, and Broadcast Receivers are activated through intents. What is an Intent? Message (Bundle of information) Facility for late run-time binding between components Passive data structure describing an operation to be performed Description of something that has happened and is being announced

Outline Next Tutorial Practical Exercise on Android Development Hello World Multiple Activity Application 802.11 RSSI measurements

Resources Introduction to Android https://code.google.com/p/androidgroup/downloads/detail?name=introd uction%20to%20android.pdf Android Architecture http://www.android-app-market.com/android-architecture.html Application Fundamentals http://developer.android.com/guide/components/fundamentals.html Layouts http://developer.android.com/guide/topics/ui/declaring-layout.html