Praktikum Entwicklung von Mediensystemen (Android) Sommersemester - - PowerPoint PPT Presentation

praktikum entwicklung von mediensystemen android
SMART_READER_LITE
LIVE PREVIEW

Praktikum Entwicklung von Mediensystemen (Android) Sommersemester - - PowerPoint PPT Presentation

Praktikum Entwicklung von Mediensystemen (Android) Sommersemester 2014 Simon Eumes, Dr. Alexander De Luca Today Organization Android 101 Hands-On Assignment 01 April 11, 2014 PEM (Android) - SS


slide-1
SLIDE 1

Praktikum Entwicklung von Mediensystemen (Android)

Sommersemester 2014

Simon Eumes, Dr. Alexander De Luca

slide-2
SLIDE 2

Today

  • Organization
  • Android 101
  • Hands-On
  • Assignment 01

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 2 ¡

slide-3
SLIDE 3

Organization

  • Android!
  • 6 ECTS
  • Bachelor: Vertiefendes Thema
  • Master: Gruppenpraktikum
  • Thursday, 14-16h, Amalienstr. 73a, 106
  • eumes@cip.ifi.lmu.de
  • http://www.medien.ifi.lmu.de/lehre/ss14/pem/
  • Hand in assignments via Uniworx

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 3 ¡

slide-4
SLIDE 4

Roadmap

  • April, May: Lectures

– Individual assignments

  • May, June, July: App development in teams

– Groups of 4 (tbc) – 4 Milestone presentations (everyone is up once)

  • July: Final presentation and showcase
  • Next lectures: 24.04. and 08.05.

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 4 ¡

slide-5
SLIDE 5

ANDROID 101

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 5 ¡

slide-6
SLIDE 6

Android in a Nutshell

  • AOSP maintaining code, open source
  • Linux subsystem
  • Specialized Java VM (Dalvik and ART)
  • Currently version 4.4 (KitKat)
  • Google adds additional services

– Google Play Store – Google Apps (Mail, Chrome, Maps, …)

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 6 ¡

slide-7
SLIDE 7

Lots of Cool Features

  • Multiple sensors

– Accelerometer, gyroscope, magnetometer,

  • Communication interfaces

– NFC, Bluetooth LE, Wifi, cellular

  • GPS and cell location
  • Cameras
  • High definition displays
  • Hardware keys and virtual controls

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 7 ¡

slide-8
SLIDE 8

Programming Languages

  • Mainly: Java (converted to Dalvik bytecode)

– Baseline 1.6, some features of 1.7+ – Limited namespace from classic JDK – Additional namespaces for new features

  • Resources: XML

– Layouts – Resource files (localizations, settings)

  • NDK for native C/C++ programming

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 8 ¡

slide-9
SLIDE 9

System Resources

  • Apps compete for the “main” display
  • Could be paused/terminated at all time
  • Can be interrupted by various events

– Phone call – App switch – …

  • Limited number of resources available

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 9 ¡

Limitations and Things to Consider

slide-10
SLIDE 10

Network Connectivity

  • Changing network availability
  • Flaky connectivity and unpredictable bandwidth
  • Plan accordingly

– Keep the in/out data small – Cache static data

  • Network requests must be executed on separate

threads (i.e. not on main thread)

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 10 ¡

Limitations and Things to Consider

slide-11
SLIDE 11

Device Fragmentation

  • Multitude of different device configurations out in

the wild

– Screen size and resolution – Features and sensors – …

  • No standard configuration that can be targeted
  • Low adaptation rate of new Android versions (if

available at all)

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 11 ¡

Limitations and Things to Consider

slide-12
SLIDE 12

Version Distribution

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 12 ¡ http://developer.android.com/about/dashboards/index.html

slide-13
SLIDE 13

Android Studio (IntelliJ)

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 13 ¡

Developer Tools

slide-14
SLIDE 14

Android Developer Tools (Eclipse)

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 14 ¡

Developer Tools

slide-15
SLIDE 15

SDK and Emulator

Emulator images for almost all Android versions Intel provides x86 images that vastly increase performance

(install via SDK Manager)

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 15 ¡

Developer Tools

slide-16
SLIDE 16

Project Structure

/src

Source files within respective packages

/res

Resources, including layouts, image assets and localizations

/libs

Precompiled libraries (jars) used for the project

/gen

Auto-generated files (changes will be overwritten)

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 16 ¡

slide-17
SLIDE 17

Manifest.xml

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 17 ¡

Anatomy of an Android App

  • General app settings

– App unique identifier (package) – API version targets

  • Contains available Activities and Services
  • Lists required permissions
  • Additional ways to define IntentFilter,

BroadcastReceiver and Provider

  • Can also be used specify hardware requirements
slide-18
SLIDE 18

Activities & Services

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 18 ¡

Anatomy of an Android App

  • Activity is main UI element that is being displayed
  • Normally takes up the entire screen
  • Specific lifecycle for various states
  • New Activities will be stacked on top
  • Long running operations should be handled in a

Service

  • Different runtime behavior, running in background
  • Multiple Activities can bind to one service
slide-19
SLIDE 19

Layouts & Resources

  • UI layouts are defined in special XML files
  • All resources automatically have a unique id

assigned which are used as a reference throughout the app

  • Easy to adapt localization functionality
  • Automatic resource selection based on device

capabilities

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 19 ¡

Anatomy of an Android App

slide-20
SLIDE 20

HANDS-ON

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 20 ¡

slide-21
SLIDE 21

ANDROID PARTS DAILIES

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 21 ¡

slide-22
SLIDE 22

Activitiy

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 22 ¡

Android Parts

http://developer.android.com/training/basics/activity-lifecycle/starting.html

slide-23
SLIDE 23

Intent & IntentFilter

  • Intent is used to indicate desire to perform action

– Make a call – Start an Activity

  • IntentFilter automatically registers for Intents that

can be handled

– React to Urls – Default startup activity

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 23 ¡

Android Parts

slide-24
SLIDE 24

Design Pattern

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 24 ¡

ActionBar

Command and control center

NavigationDrawer

Navigation options,

  • verlaying the content

area

Content Area

App content

http://developer.android.com/design/get-started/ui-overview.html#app

slide-25
SLIDE 25

ActionBar

App Icon

Customize to make it your

  • wn

Action Buttons

The most important actions at your fingertip

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 25 ¡

Design Pattern

http://developer.android.com/design/patterns/actionbar.html

View Control

Toggle between different data views

Action Overflow

Infrequently used items are grouped and hidden

slide-26
SLIDE 26

NavigationDrawer

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 26 ¡

Design Pattern

http://developer.android.com/design/patterns/navigation-drawer.html

slide-27
SLIDE 27

ADDITIONAL INFORMATION

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 27 ¡

slide-28
SLIDE 28

Best Practices

  • Make it snappy (asynchronous operations)
  • Do not block the main thread
  • Be aware of orientation changes and how to

handle (or disable) them

  • If you need a global app context, think about

subclassing Application

  • Make use of external libraries

– Http/Rest, Testing, Injection, Eventbus

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 28 ¡

slide-29
SLIDE 29

Assignment 01

  • Individual assignment
  • Set up development environment
  • First steps with Android
  • Layouts, Widgets, Interaction, http
  • Due in 2 weeks (24.04.)
  • Submission via Uniworx

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 29 ¡

slide-30
SLIDE 30

Next Lecture

  • Next lecture in 2 weeks (28.04.), 14.00h
  • Specific topics you like to learn more about?

– Sensors – Web – Maps – UI – Animations – …

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 30 ¡

slide-31
SLIDE 31

Resources

  • Android Developers

– http://developer.android.com/design – http://developer.android.com/training – http://developer.android.com/guide

  • Google IO Session Recordings

– https://developers.google.com/events/io/2012 – https://developers.google.com/events/io/2013

  • Google IO Schedule App

– https://code.google.com/p/iosched

April ¡11, ¡2014 ¡ PEM ¡(Android) ¡-­‑ ¡SS ¡2014 ¡ ¡ 31 ¡