Distributed Systems Introduction. Matthias Kovatsch Distributed Systems Group

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

Introduction To Android

Android - open source mobile platform

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

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

Mobile Computing. Introduction to Android

Android Ecosystem and. Revised v4presenter. What s New

Android Overview. Francesco Mercaldo, PhD

Android In Industrial Applications. A Field Report

IJRDTM Kailash ISBN No Vol.17 Issue

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

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Android. (XKE Mars 2009) Erwan Alliaume.

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

Android. Michael Greifeneder. Image source: Android homepage

Android App Development. Ahmad Tayeb

SD Module- Android Programming

Chapter 1 Hello, Android

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

Android OS. Operating System based on Linux [ ] [Jonas Teuscher, Alex Cuordileone, Cédric Glaus]

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

Developer s overview of the Android platform

UNIT:2 Introduction to Android

Mobile and Wireless Systems Programming

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

Ahmed Ali Big fan of Android

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

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU

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

Mobile Computing. Juha-Matti Liukkonen, Nov 17, 2010

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

Android Software Development Kit (Part I)

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

Android Development Tools = Eclipse + ADT + SDK

Lecture 1 - Introduction to Android

An overview of mobile and embedded platforms

Android App Development

Introduction What is Android?

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.

Android Programming in Bluetooth Cochlea Group

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

Copyright

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

Mobile and Ubiquitous Computing: Android Programming (part 1)

CS260 Intro to Java & Android 04.Android Intro

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

Android Development Tutorial. Yi Huang

The smartest of smartphones

PAPER ON ANDROID ESWAR COLLEGE OF ENGINEERING SUBMITTED BY:

Introduction to Android

Manual Android Jelly Bean Features Samsung Galaxy S3 Release Date

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

Open Mobile Platforms. EE 392I, Lecture-6 May 4 th, 2010

Diploma Thesis Collaborative Data Processing on Mobile Handsets Jan Kettner. Examiner: Prof. Dr. Mesut Günes Tutor: Georg Wittenburg, M. Sc.


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

Developing Applications for ios

IJREAT International Journal of Research in Engineering & Advanced Technology, Volume 1, Issue 5, Oct-Nov, 2013 ISSN:

Praktikum Entwicklung von Mediensystemen mit Android

International Journal of Multidisciplinary Consortium Volume 2 Issue

Samsung Mobile Via Usb

SHWETANK KUMAR GUPTA Only For Education Purpose

Mobile development initiation

Manual Flash Install Android Adobe Tablet >>>CLICK HERE<<<

Minds-on: Android. Session 1

Copyright

Copyright

Introduction to Mobile Application and Development

Getting Started with the ArcGIS Mobile APIs. Kris Bezdecny, David Martinez Andy Gup, David Cardella

Copyright

Introduction to Android

COSC 3P97 Mobile Computing

Started with Android Programming for Tablets

Android App Development

EMBEDDED SYSTEMS AND MOBILE SYSTEMS

Android-Basics. Praktikum Mobile und Verteilte Systeme

Brief Intro on Mobile Platforms and Dev. Tools

ios vs Android By: Group 2

Tutorial on Basic Android Setup

Mobile Computing LECTURE # 2

Android for Ubiquitous Computing Researchers. Andrew Rice University of Cambridge 17-Sep-2011

Manual For Android Jelly Bean Features Samsung Galaxy S3 Release Date

Android Gingerbread Manually Update To Jelly Bean Features

Creative Learning Environment in 21 st Century ดร. ส นต ธร บ ญเจ อ ฝ ายวางแผนเทคโนโลย สารสนเทศ ธนาคารกส กรไทย

ANDROID SYLLABUS. Advanced Android

Android Online Training

Software Development for Mobile Devices

Mobile Systems. Lecture 1 1 Course Introduction COMP Steve Furber & Barry Cheetham

Mobile Internet Devices and the Cloud

Verizon Bluetooth Use Manual For Samsung Galaxy S3 4g Lte

Introduction to Android

Mobile Application Development - Android

What is Android? Mobile Device Application Development COMPSCI 345

Manually Adobe Flash Player For Android Phone 4.0 4

Zebra New EDA Device MC36 Software features and Developer Guide Eric Hu

BCA 6. Question Bank

Verizon Bluetooth Use Manual For Samsung Galaxy S4 Mini I9192

1Hello, Android COPYRIGHTED MATERIAL

Manually Install 2.2 Update Android To 4.0 In

SE 3S03 - Tutorial 1. Zahra Ali. Week of Feb 1, 2016

Transcription:

Matthias Kovatsch Distributed Systems Group Friday, 24 September 2010

Team Prof. Friedemann Mattern Matthias Kovatsch Wilhelm Kleiminger Iulia Ion Simon Mayer Benedikt Ostermaier 2

Web Site http://www.vs.inf.ethz.ch/edu/hs2010/vs/ 3

Lecture Organization Extended to 8 ECTS credits G: «Vorlesung mit Übung» Part I F. Mattern Part II R. Wattenhofer A: «selbständige Arbeit» Graded practical assignments 4

OUTLINE General Information Exercise Organization The Android Platform Homework 5

Types of Exercises Practical assignments Programming on the Android platform Three detailed assignments Open project Graded! Theoretical exercises Preparation for the exam Two exercise sheets Discussion of the exercises on given dates (according to progress of the lecture) 6

Practical Assignments A1: GUI and hardware 04 Oct 2010 14 Oct 2010 (1.5 weeks) A2: Client-server, REST, and Cloud services 15 Oct 2010 28 Oct 2010 (2 weeks) A3: Unreliable network and vector clock 29 Oct 2010 14 Nov 2010 (2.5 weeks) A4: Open project (with presentation) 15 Nov 2010 20 Dec 2010 (5 weeks) 7

Practical Assignments Procedure Teams of three Develop on the emulator Test on an actual Android phone One HTC Desire per team Individual documentation of the code Grading Individual submissions (grades) for detailed assignments Team grade for open project 8

OUTLINE General Information Exercise Organization The Android Platform Homework 9

A Little History 09/2003: Android, Inc. founded in Palo Alto 07/2005: Google buys Android, Inc. 11/2007: Open Handset Alliance announced HTC, LG, Samsung, Motorola, Texas Instruments, Intel, Nvidia, T-Mobile, Vodafone, Telecom Italia, Andy Rubin Co-Founder, Android 09/2008: T-Mobile s G1 launches 10/2008: Android goes open source Apache license allows commercial development G1 (HTC Dream) 10

Android Alternatives Android iphone BlackBerry Language Java ObjectiveC JavaME/MDS Windows Mobile.NET (VB/C#), C++ Symbian Foundation Symbian C++ Palm WebOS JavaScript Kernel Linux Mac OS X RT OS Windows Real-Time OS Linux License Open Closed Closed Closed Open (02/2010) Mixed IDE Eclipse Xcode Eclipse Visual Studio Symbian ADT Eclipse IDE Platform Multiple Mac OS X Multiple Windows Windows Multiple Version 2.2 4.1 6.0 6.5 ^3 (S60: 5th v9.4) 1.4.5 Handsets Multiple Apple RIM Multiple Nokia Palm App Install Open Registration Registration Registration Registration Open Sponsor Google/OHA Apple RIM Microsoft Nokia Palm 11

Android Alternatives Android iphone BlackBerry Language Java ObjectiveC JavaME/MDS Windows Phone 7.NET (VB/C#), C++ MeeGo (Moblin/Maemo) C/C++ bada Kernel Linux Mac OS X RT OS Windows Linux RT/Linux License Open Closed Closed Closed Open Closed IDE Eclipse Xcode Eclipse Visual Studio QTCreator Eclipse IDE Platform Multiple Mac OS X Multiple Windows Linux Windows Version 2.2 4.1 6.0 «7.0» 1.0.3 1.0 Handsets Multiple Apple RIM Multiple Multiple Samsung App Install Open Registration Registration Registration Open Registration Sponsor Google/OHA Apple RIM Microsoft Intel/Nokia Samsung C++ 12

Source: www.comscore.com Android Smartphone Market Share (U.S. 13+) 100% 90% 80% 70% 7.80% 2.80% 19.70% 6.10% 5.20% 18.00% 5.70% 7.10% 15.70% 4.90% 12.00% 14.00% 4.90% 17.00% 60% 50% 40% 24.80% 25.30% 25.10% 25.10% 11.80% 23.80% Palm Google Microsoft 30% 20% 41.30% 41.60% 43.00% Apple RIM 10% 41.10% 0% 39.30% Oct 2009 Dec 2009 Jan 10 Apr 10 Jul 10 13

Android Key Points Free and open for commercialization Any vendor can improve (e.g., «HTC SenseUI») Linux-based OS, Java-based Applications Supports robust system and quick development Highly optimized Java VM «Dalvik» All apps are equal! No core OS applications 3rd party apps can exchange any part of system (dialer, SMS, email) 14

Android Versioning Version API Level Release Name Kernel Release Date Note 1.0 1-2.6.25 Sep 2008 Original G1 Firmware 1.1 2-2.6.25 Feb 2009 G1 Update 1.5 3 Cupcake 2.6.27 30 Apr 2009 More apps, languages, soft-keyboard 1.6 4 Donut 2.6.29 15 Sep 2009 New search, Market, gestures, VPN 2.0 5 Eclair 2.6.29 26 Oct 2009 Exchange, BT2.1, multitouch (e.g., Hero) 2.0.1 6 2.6.29 03 Dec 2009 Bug fixes 2.1 7 Flan? Eclaire 2.6.29 12 Jan 2010 WebKit updates, bug fixes 2.2 8 FroYo 2.6.32 20 May 2010 JIT, RAM support, PUSH, apps to SD 3.0 9 Gingerbread 2.6.35? Q4 2010? WebM video, UI improvements,...? 3.1 10 Honeycomb??? 15

Android Hardware HTC Dream (G1) HTC Desire Samsung i9200 Galaxy S2 Date October 2008 April 2010 Q1 2011 Android Version 1.0 / 1.5 2.1 / 2.2 3 Processor Qualcomm 528 MHz Qualcomm 1 GHz 2 GHz ROM 256 MB 512 MB 4 GB RAM 192 MB 576 MB 1 GB Display Technology TFT-LCD TFT-AMOLED / Super LCD Super AMOLED 2 Display Size 3.2'' (320x480) 3.7'' (480x800) 4.3'' (1280x720) Battery 1150 mah 1400 mah? Bluetooth 2.0 2.1 3.0 Bluetooth Profiles A2DP (Headsets) A2DP, FTP, OPP,...? WiFi 802.11 b/g 802.11 b/g 802.11 b/g/n Sensors GPS, compass, accelerometer GPS, compass, accel., proximity, ambient light GPS, accel., gyroscope, proximity, ambient light 16

Android Hardware Tablets and more Barnes&Noble nook Samsung Galaxy Tab P1000 Dell Streak 1 GHz, 5'' (480x800), b/g Archos 8 ~600 MHz, 6'' E ink + 3.5'' LCD, b/g 1 GHz, 7'' (1024x600), a/b/g/n 600 MHz, 8'' (800x600), b/g 17

Source: Conder, Darcey: Android Wireless Application Development, Addison-Wesley (p.24) Android Platform Android Application A Dalvik Virtual Machine Android Application B Dalvik Virtual Machine Android Application C Dalvik Virtual Machine Linux User A Linux User B Linux User C Linux 2.6 Kernel Hardware Abstraction Layer Security Process Management Memory Management Network Stack I/O Display Keypad Touchscreen Power Management Other Drivers WiFi, Bluetooth, Camera, Audio, Telephony, Flash, Sensors Physical Hardware 18

Android Security Model Each application runs as individual Linux user Created upon application installation by Android Per default no access to other apps, data Apps can declare needed access permissions Access to GPS location, Internet, auto-start,... Multiple apps can share single user ID Allows direct access to each others data Apps needs to declare the same android:shareduserid All apps need to be signed with the same digital signature All applications include digital signature Generic default signature while developing Needs to be properly signed with your certificate when distributing (e.g., selling on Market) 19

See also http://www.youtube.com/watch?v=qbgfus9mqyy&feature=user Android Software Stack Applications Home Contacts Phone Browser YOUR APPS... Application Framework Activity Manager Windows Manager Content Providers View System Notification Manager Package Manager Telephony Manager Resource Manager Location Manager XMPP 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 M-Systems Driver Binder (IPC) Driver USB Driver Keypad Driver WiFi Driver Audio Drivers Power Management 20

Android Key Terms Activity «Logical unit of user action» (cf., window of PC application) Typically a single screen with multiple Views Also UI-less (Service) View Hierarchical UI element Combine in View Groups Service Faceless task (Activity) that runs in background (e.g., music player) 21

Android Key Terms Intent Launches activities or couples multiple Activities Passive data structure Also describes operation to be performed Explicit by calling the exact class Implicit by using «Intent filters» to find matching components BroadcastReceiver Responds to broadcast announcements (e.g., «headset plugged in» Intent by system) Can wake up your application or start an Activity Or just notify user 22

Android Key Terms ContentProvider Enables application to share data (e.g., to offer contacts to other apps) Can use file system, SQLite, or «any way you want» Other apps use a ContentResolver to access the data See also http://www.youtube.com/watch?v=qbgfus9mqyy&feature=user http://developer.android.com/guide/topics/fundamentals.html 23

Program Lifecycle Android multi-tasking OS tries to maintain application process as long as possible If short on memory, low priority processes may be killed Activity States Running Paused Stopped Finished/killed 24

Source: http://stuffthathappens.com/blog/2008/11/05/android-activity-lifecycle-updated/ Triggered Methods I 25

Source: http://stuffthathappens.com/blog/2008/11/26/android-lifecycle-triggers-part-2/ Triggered Methods II 26

Online Resources Android developers: developer.android.com The Guide (Intro): /guide/index.html Resources (Tutorials): /resources/index.html Videos: /videos/index.html Android blogs http://android-developers.blogspot.com http://www.androidguys.com/ Google 27

OUTLINE General Information Exercise Organization The Android Platform Homework 28

Teams Form teams of 3 students each Vote a representative Send representative to collect the HTC Desire Monday 2 pm 4 pm CNB H 107.2 Tuesday 2 pm 4 pm CNB H 108 Wednesday 11am 1 pm CNB H 108 Thursday 2 pm 4 pm CNB H 103.1 Friday 2 pm 4 pm CNB H 108 29

HTC Desire Check package for completeness Charge the battery first Configure Wi-Fi access «Settings > Wireless & networks > Wi-Fi settings» Update to Android 2.2 «Settings > About Phone > System software updates > Check now» Enable debugging «Settings > Applications > Development > USB debugging» Get familiar with the device 30

Toolchain Installation Java SE JDK 6 http://www.oracle.com/technetwork/java/javase/downloads/index.html Android SDK http://developer.android.com/sdk/index.html Extract to your disk somewhere Eclipse 3.5 «Galileo» (e.g. IDE for Java Developers) http://www.eclipse.org/downloads/ Add ADT Plugin («Help > Install New Software») Software Site https://dl-ssl.google.com/android/eclipse/ Set up SDK location («Window > Preferences > Android») Install API8 packages («Window > Android SDK and AVD Manager») 31

See also http://developer.android.com/sdk/win-usb.html Windows ADB driver 1 2 3 4 5 6 7 32

See also http://developer.android.com/guide/developing/device.html Ubuntu Linux USB Configuration Rules Log in as root Create file /etc/udev/rules.d/51-android.rules For Gusty/Hardy insert SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666" For Dapper insert SUBSYSTEM=="usb_device",SYSFS{idVendor}=="0bb4",MODE="0666" Change permissions chmod a+r /etc/udev/rules.d/51-android.rules 33

Mac OS X 10.6.x only includes Java 6 (both 32- & 64-bit version) 64-bit version is used by default May cause problems with Eclipse ADT Solution: Make 32-bit version default Run Java Settings application Bring 32-bit Java 6 to the top of the list for «Java Programs» 34

Computer Labs Windows Drivers, Eclipse, and ADT Plugin are installed Download and extract Android SDK to your home directory Set up SDK location in Eclipse Install API8 packages Linux USB configuration already done Download and extract Android SDK to your home directory (or /local/) Red Hat tool ignores empty folders recreate «platforms» and «add-ons» folders Update Eclipse («Help > Install New Software») Software Site http://download.eclipse.org/eclipse/updates/3.5 Install ADT Plugin Set up SDK location Install API8 packages 35

Test Toolchain Can create an Android project? A sample project compiles? Driver for HTC Desire working? Sample application is installed correctly? Create a virtual device and run the emulator! 36

OUTLINE General Information Exercise Organization The Android Platform Homework 37

Next Android Lesson Monday, 04 October 2010 Programming introduction Live hacking First assignment Install the toolchain until then! 38

QUESTIONS? 39