Praktikum Entwicklung von Mediensystemen mit Android Introduction to Android

Similar documents
Praktikum Entwicklung von Mediensystemen mit Android

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

Praktikum Mobile Productivity

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

Mobile Computing. Introduction to Android

Mobile and Wireless Systems Programming

Android - open source mobile platform

SHWETANK KUMAR GUPTA Only For Education Purpose

Android Development Tutorial. Yi Huang

Android Software Development Kit (Part I)

Introduction To Android

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

Introduction to Android Application Development. Mike Kvintus Principal Engineer JDSU

Android App Development

Developer s overview of the Android platform

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

Android App Development

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

ANDROID SYLLABUS. Advanced Android

PAPER ON ANDROID ESWAR COLLEGE OF ENGINEERING SUBMITTED BY:

Android. (XKE Mars 2009) Erwan Alliaume.

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

Chapter 1 Hello, Android

Android Overview. Francesco Mercaldo, PhD

IJRDTM Kailash ISBN No Vol.17 Issue

Introduction to Android

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

Software Development & Education Center ANDROID. Application Development

CS260 Intro to Java & Android 04.Android Intro

Android Ecosystem and. Revised v4presenter. What s New

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

UNIT:2 Introduction to Android

Introduction to Android

Android Programmierung leichtgemacht. Lars Vogel

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

DROID. By S.Gokulakrishnan AP/CSE SCSVMV

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

Mobile Application Development - Android

Android Basics. - Bhaumik Shukla Android Application STEALTH FLASH

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

Android Development Tools = Eclipse + ADT + SDK

SD Module- Android Programming

Android App Development. Ahmad Tayeb

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

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

Introduction to Mobile Application and Development

BCA 6. Question Bank

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

Mobile and Ubiquitous Computing: Android Programming (part 1)

Mobile Application Development

COSC 3P97 Mobile Computing

Android App Development Workshop

Android Application Development Course 28 Contact Hours

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

Android In Industrial Applications. A Field Report

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

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

Introduction What is Android?

ANDROID NATIVE APP: INTRODUCTION TO ANDROID. Roberto Beraldi

COPYRIGHTED MATERIAL. Hello, Android

Table of content. Introduction to Android. Members of OHA.. A look of OHA on Android.

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

ios vs Android By: Group 2

Ahmed Ali Big fan of Android

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

FutureWalker

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


Distributed Systems Introduction. Matthias Kovatsch Distributed Systems Group

CS378 - Mobile Computing. Anatomy of an Android App and the App Lifecycle

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.

Research on Improving performance and Battery Backup of Android Mobile with help of Cyanogen Mod, and latest kernel

Developing Android applications in Windows

ANDROID COURSE BROCHURE

Real-Time Embedded Systems

Embedded Systems Programming - PA8001

Course Syllabus. Course Title. Who should attend? Course Description. Android ( Level 1 )

Introduction to Android

Android is a software stack for mobile devices and comprises middleware, operating system and core

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

Android for Java Developers Dr. Markus Schmall, Jochen Hiller

Lecture 1 - Introduction to Android

Hello, Android. Chapter 1

How ercp stacks up against Android and other Mobile Rich Client Platforms. Ken Walker, J9 Java Class Libraries David Girle, Client Solutions WPLC

If you don t have the JDK, you will need to install it. 1. Go to

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

Android OS and Power Architecture

Android Online Training

Abstract. 1. Introduction

COLLEGE OF ENGINEERING, NASHIK-4

Programming Concepts and Skills. Creating an Android Project

CS 4518 Mobile and Ubiquitous Computing Lecture 2: Introduction to Android. Emmanuel Agu

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

Android Fundamentals - Part 1

Android Programming in Bluetooth Cochlea Group

ITG Software Engineering

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

Android Training Overview (For Demo Classes Call Us )

1Hello, Android COPYRIGHTED MATERIAL

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

Transcription:

LFE Medieninformatik Ÿ Andreas Butz (Dozent), Gregor Broll, Alexander De Luca, Max-Emanuel Maurer Praktikum Entwicklung von Mediensystemen mit Android Introduction to Android

Today Schedule Organizational Stuff Introduction to Android Exercise 1 2

Schedule Two phases: individual and team phase Phase 1 Individual Phase: Introduction to basics about Android Exercises 1 to 4 Each student works on exercises himself/herself Weekly meetings Phase 2 Project Phase: Concept and implementation of an Android application Topic: mobile student services Students work in teams Regular milestone meetings 3

Topic: Mobile Services for Students Practical as part of a greater effort at LFE Media Informatics to investigate mobile services for students Services tailored to students and their requirements Adaptation of existing services/information to mobile usage Creation of new, more adapted mobile services Collaboration with LMU-IT (Herr Diekamp) Practical to develop prototypes that use real info and services Practical can build upon previous efforts Diploma thesis by Tanja Herting (analysis of requirements, LMUApp) Practical in winter term 2009/10 (example applications) Practical can re-use interfaces to LSF from previous work 4

Mobile Services for Students - Examples LMUApp Stoodle ProfCall 5

Timeline Date 29.04.2010 06.05.2010 13.05.2010 20.05.2010 27.05.2010 03.06.2010 10.06.2010 22./29.07. Topic/Activity Introduction and Overview of the Android Platform Implementing a User Interface Christi Himmelfahrt Storing, Retrieving and Exposing Data Brainstorming, Application Design Fronleichnam Project Phase Starts (Milestones) Final Presentation 6

Organizational Stuff I 4 SWS Weekly meetings Thursday 14:00 s.t. 16:00 Room 105, Amalienstraße 17 Room for the practical parts: Medienlabor 103, Amalienstraße 17 Special accounts required Open during normal working times (8:00 17:00) 1 key for each group Homepage: http://www.medien.ifi.lmu.de/pem 7

Organizational Stuff II Students work in teams SVN accounts for each team svn://tracsvn.medien.ifi.lmu.de/repos/pem_team[number] (e.g. svn://tracsvn.medien.ifi.lmu.de/repos/pem_team1) Students check their exercises in with their group s SVN repository Needed Accounts SVN username Medienlabor-Kennung Belegungsplan Medienlabor 8

Teams Team 1 Kehr, Mautner, Fichtner Team 2 Schauer, Ateia, Hemme, Viegener Team 3 Huff, Vodicka, Heller, Tevi Team 4 Schmidmaier, Held, Bauer 9

Technology SVN 10

Technology SVN I SVN - General Version control system Enables collective editing of shared source code Data stored in a Repository which is accessed over the network Editing on local copies of the files Old version available on the server When possible, files will be merged automatically when edited by multiple users at the same time Similar to CVS 11

Technology SVN II SVN First Steps (using Tortoise SVN) 1. Download a SVN Client like Tortoise SVN for Windows http://tortoisesvn.net/ 2. Checkout your team repository (creates a local copy of the repository) Create an empty folder, open it, right-click and choose Checkout. 12

Technology SVN III SVN First Steps (using Tortoise SVN) 3. Each time you start working perform the Update command. 4. Each time you re done working perform a Commit. Both commands are located in the right-click menu. 5. Further functionalities are available in the right-click menu like delete, rename and more. Attention: Do not use the OS-functionalities for this functions. And do not touch the hidden.svn-folders, especially do not copy an svn-folder (use Export-Command). For further Information read the German SVN introduction by Richard Atterer, which can be found here: http://www.medien.ifi.lmu.de/fileadmin/mimuc/mmp_ss04/pr ojektaufgabe/mmp-subversion.pdf 13

An Introduction to Android - Outline What is Android? Installation Getting Started Anatomy of an Android Application Life Cycle of an Android Application 14

What is Android? Released in Nov. 2007 rumored to be some kind of GPhone Open, free mobile platform with a complete software stack Operating system Middleware Key mobile applications Developed by the Open Handset Alliance Built on the open Linux kernel Custom Dalvik virtual machine for mobile environments Applications written in Java Open source; Apache v2 open source license Applications can access all core functionalities of a mobile device No differentiation between core and 3rd party applications Can be extended to incorporate new technologies 15

Open Handset Alliance Group of more than 30 technology and mobile companies led by Google Mobile Operators, e.g. China Mobile, KDDI, NTT DoCoMo, T-Mobile, Sprint Nextelk, Telefonica Semiconductor Companies, e.g. Broadcom, Intel, Nvidia, Qualcomm, SiRF, Texas Instruments Handset Manufactureres, e.g. HTC, LG, Motorola, Samsung Software Companies, e.g. ebay, Google, Goal: to accelerate innovation in mobile and offer consumers a richer, less expensive, and better mobile experience Android as the first project towards an open and free mobile experience, but also commercial deployment URL: www.openhandsetalliance.com/index.html Source: www.openhandsetalliance.com/ 16

Android Features Application framework enabling reuse and replacement of components Dalvik virtual machine optimized for mobile devices (register based) Integrated browser based on the open source WebKit engine Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional) SQLite for structured data storage Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) GSM Telephony (hardware dependent) Bluetooth, EDGE, 3G, and WiFi (hardware dependent) Camera, GPS, compass, and accelerometer (hardware dependent) Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE Source: http://code.google.com/android/index.html 17

Android Architecture Source: http://code.google.com/android/index.html 18

Linux Kernel Linux kernel version 2.6 Abstraction layer between hardware and the software stack Core services Security Memory management Process management Network stack Driver model Source: http://code.google.com/android/index.html 19

Libraries C/C++ libraries used by various Android components Developers can use their capabilities through the application framework Includes: Media Libraries: includes MPEG4, H.264, MP3, JPG, PNG, WebKit/LibWebCore: web browser engine SQLite: relational database engine Libraries/engines for 2D and 3D graphics Source: http://code.google.com/android/index.html 20

Android Runtime Core libraries provide Java functionalities Dalvik virtual machine relies on Linux kernel for e.g. threading or low-level memory management Devices can run multiple Dalvik VMs, every Android application runs with its own instance of Dalvik VM VM executes optimized Dalvik Executable files (.dex) Dx-tool transforms compiled Java-files into dex-files Source: http://code.google.com/android/index.html 21

Applications /Application Framework Core applications, e.g. contacts, mail, phone, browser, calender, maps, Full access to all framework APIs for core applications Simplified reuse of components Applications written in Java Source: http://code.google.com/android/index.html 22

Core Android Packages android.util android.os contains various low-level utility classes, such as specialized container classes, XML utilities, etc. provides basic operating system services, message passing, and inter-process communication. android.graphics is the core rendering package. android.text, android.text.method, android.text.style, and android.text.util supply a rich set of text processing tools, supporting rich text, input methods, etc. android.database contains low-level APIs for working with databases. android.content provides various services for accessing data on the device: applications installed on the device and their associated resources, and content providers for persistent dynamic data. android.view is the core user-interface framework. android.widget supplies standard user interface elements (lists, buttons, layout managers, etc) built from the view package. android.app provides the high-level application model, implemented using Activities. 23

Android Version History Version Features 1.5 Cupcake 1.6 Donut 2.0/2.1 Eclair 30.04.2009: Onscreen-Keyboard with Autocomplete, Screen switch Animations, Video upload 15.09.2009: Screenshots on the android market, Voice Search, WVGA resolutions, 12.01.2010: Speed improvements, More screen resolutions (dip), Camera flash support, Live wallpapers, Multitouch support 24

Installing SDK Please follow instructions from the Android doc Download and install the Android SDK SDK includes documentation, tools and examples Set up your IDE; Eclipse (Java EE) recommended Install Eclipse Android Development Tools (ADT) plugin, connect it with the Android SDK and Download your Platforms http://developer.android.com/sdk/index.html 25

Installing SDK Create an Android project Standard Eclipse procedure Automatically creates folders and a Manifest file Can also be used to create a demo project Set up a launch configuration Run application from menu or Define settings for run configuration (project, activity, emulator options, ) from Run > Open Run Dialog > Run Android application in emulator Be Patient! The emulator takes while to boot up. Keep it open once it was started! 26

The Nexus One Source: Wikimedia Commons 27

Hello Android I 28

Hello Android II Source: http://code.google.com/android/index.html 29

Hello Android III Source: http://code.google.com/android/index.html 30

Hello Android IV 31

Anatomy of an Android Application 4 main building blocks for Android applications Activity Intent Receiver Service Content Provider AndroidManifest.xml lists all components of an application, their capabilities and requirements Source: http://code.google.com/android/index.html 32

Activity Single, focused thing or task Extends the Activity base class Refers to a single screen in a (multiscreen) application Displays a UI, interacts with user, responds to events 2 main methods: oncreate(bundle): initialization of activity, set UI, onpause(): leaving an activity Moving through screens by starting other activities Activities managed by activity stack New activity put on top of the stack 4 states: active/running, paused, stopped, killed/shut down Source: http://code.google.com/android/index.html 33

Intents and Intent Filters Intent Abstract description of an operation/action to be performed Mostly used for launching activities; glue between activities Action: general action to be performed, e.g. VIEW_ACTION, EDIT_ACTION, MAIN_ACTION, Data: data to operate on, expressed as a URI Example: VIEW_ACTION content://contacts/1 Intent Filter Describes what Intents an activity can handle Activities publish Intent Filters describing their capabilities/ how they can handle certain Intents and their actions Navigating between screens is accomplished by resolving Intents => system matches Intents and Intent Filters Activity calls method startactivity(myintent) 34

Intent Receiver, Service, Content Provider Intent Receiver Used to execute code upon an external event, e.g. phone rings Usually no UI; may use the NotificationManager Service Application component running in the background Runs indefinitely, no UI, no interaction with user E.g. media player Content Provider Used to share data with other applications 35

Life Cycle of an Android Application Each Android application runs in its own Linux process Process s lifetime not directly controlled by application Determined by the system, depending on running applications, their importance, available memory Components (Activity, Service, Intent Receiver) impact the lifetime of the application s process Importance hierarchy for killing processes based on Components running in them The state of these components 36

Android s Importance Hierarchy 1. Foreground Process Required for current user activities E.g. running an Activity at the top of the screen 2. Visible Process Activity is visible but not in the foreground (onpause()) E.g. previous activity displayed behind a foreground dialog 3. Service Process Holds a Service, not directly visiblee.g. media player, network up/download 4. Background Process Holds an Activity that is currently not visible (onstop()) Can be killed at any time to reclaim memory 5. Empty Process Holds no active application components 37

Exercise 1 Follow the Hello Android example Add a picture to the Hello Android -text Submit your solution using SVN Create your personal folder nachname in the SVN-repository of your group Create a folder for each exercise named exercisex and put all necessary source files there Submit your solution until Wednesday, 05.05.10, 12p.m. Source: http://code.google.com/android/index.html 38

Links Android website: http://code.google.com/android/ YouTube: Androidology 39

Fragen? Viel Spaß! 40