Android. 2 24.09.2013 Mobile Systeme - Android



Ähnliche Dokumente
Mobile Systeme Android

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter

App-Entwicklung für Android

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS HSRM

Android GUI Entwicklung

Google Android API. User Interface. Eine knappe Einführung

Naviki GPS-Anwendungsentwicklung für Mobiltelefone

Einführung in Android

App Entwicklung für Android F O R T G E S C H R I T T E N E P R O G R A M M I E R U N G I N J A V A

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Android Programmierung mit Java Studiengang MI

Android Programmierung mit Java Studiengang MI

1 Der Einstieg in Java für Android

Smartphone Entwicklung mit Android und Java

Tutorial. Programmierung einer Android-Applikation. Teil 1

1. Software-Plattform Android Android. Was ist Android? Managed Code, Angepasste Java Virtual Machine

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Einführung in Android. 9. Dezember 2014

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

4.1 Download der App über den Play Store

Bewusster Umgang mit Smartphones

CADEMIA: Einrichtung Ihres Computers unter Windows

Ihr CMS für die eigene Facebook Page - 1

Informatik Sommercamp 2012

Android-Apps Google-Maps v2

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

FEHLER! TEXTMARKE NICHT DEFINIERT.

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Grundlagen von Python

Mobile Security (Android OS) Ein Vortrag zur Sensibilisierung eines Benutzers im Umgang mit Smartphones und Tablets mit dem Android OS.

Übung: Verwendung von Java-Threads

Duonix Service Software Bedienungsanleitung. Bitte beachten Sie folgende Hinweise vor der Inbetriebnahmen der Service Software.

Entwickeln für Android OS

ANLEITUNG ONECLICK WEBMEETING BASIC MIT NUR EINEM KLICK IN DIE WEBKONFERENZ.

Java: Vererbung. Teil 3: super()

TELIS FINANZ Login App

Walkabout: Location Based Services mit Android und dem Google Phone

Revox Joy S232 App D 1.0

Mobile App Development. - Alarm -

2. GUI-Programmierung für mobile Geräte

Internet Explorer Version 6

Übung - Arbeiten mit Android

Einführung in Eclipse und Java

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

LEHRSTUHL FÜR DATENBANKEN

AKTUALISIERUNG DER SOFTWARE (ANDROID 4.4) FÜR KIANO ELEGANCE 9.7 by ZANETTI

Anwenderdokumentation PersoSim

auf den ebook-reader Ausleihen und Nutzen von ebooks auf einem ebook-reader

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

Anleitung zur Webservice Entwicklung unter Eclipse

oder ein Account einer teilnehmenden Einrichtung also

Step by Step Webserver unter Windows Server von Christian Bartl

Handbuch. BIZS Mobil App

Internet und WWW Übungen

auf den E-Book-Reader

Zentrale Installation

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Update auf Windows 8.1 Schrittweise Anleitung

Mobile-Szenario in der Integrationskomponente einrichten

Apps am Smartphone. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

GeoPilot (Android) die App

Software-Engineering Grundlagen des Software-Engineering

Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.

Installationsanleitung für Update SC-Line

iphone-kontakte zu Exchange übertragen

PAUL App. Anleitung für Studierende und Lehrende

NODELOCKED LIZENZ generieren (ab ST4)

CLICK2DIAL4 APP. Funktionsübersicht

VIP-Programm. Herzlich Willkommen!

Der schnelle Weg zu Ihrer eigenen App

System-Update Addendum

Tutorial -

MAPS.ME. Benutzerhandbuch!

Installation der SAS Foundation Software auf Windows

Alles dabei mit Google Gratis-

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Für Windows 7 Stand:

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework

Eclipse 3.0 (Windows)

MetaQuotes Empfehlungen zum Gebrauch von

Meine Welt auf einen Blick erleben.

Java Entwicklung für Embedded Devices Best & Worst Practices!

Dictation Blue Die App zum Digta 7 Premium BT für Android-Smartphones

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

SECURE DOWNLOAD MANAGER

Kurzanleitung für das IdeaClouds-Whiteboard. 1. Ablauf eines Workshops... S Auf Whiteboard arbeiten... S FAQ.. S. 14

CADEMIA: Einrichtung Ihres Computers unter Mac OS X

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

In 12 Schritten zum mobilen PC mit Paragon Drive Copy 11 und Microsoft Windows Virtual PC

Zugriff auf OWA Auf OWA kann über folgende URLs zugegriffen werden:

OP-LOG

Anleitung. Lesezugriff auf die App CHARLY Termine unter Android Stand:

Transkript:

Android 24.09.2013

Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer speziellen JVM (Dalvik Virtual Machine DVM) ausgeführt -> Plattformunabhängigkeit der Anwendungen Im Vergleich zu Java ME sind fast alle Packages von Java SE enthalten Zusätzlich viele Android eigene APIs Derzeit aktuellste Version Android 4.3 Jelly Bean 2 24.09.2013 Mobile Systeme - Android

Smartphone-Features (Moore lässt grüßen) G1 (HTC Dream) (Herbst 2008) 528 Mhz, 192 MB RAM 3,2 Display (480x320 Pixel) BT, WLAN GPS, digitaler Kompass Beschleunigungssensor Samsung Galaxy S4 4 x 1,9 GHz, 2 GB RAM 5 Display (1920x1080 Pixel) BT, WLAN, NFC GPS, digitaler Kompass Beschleunigungs-, Nährungs- u. Umgebungslichtsensor, Gyroskop, IR, 3 24.09.2013 Mobile Systeme - Android

Mobile Devices Verkaufsstatistiken 2Q2013 Weltweite Verkäufe von Mobile Devices in 2Q13: 435 Millionen Davon Verkäufe von Smartphones in 2Q13: 225 Millionen (51,7%) 2,7% 3,3% 14,2% 79,0% Android ios Research in Motion Microsoft Bada Symbian Others Quelle: http://www.gartner.com/ Quelle: Gartner, http://www.gartner.com/newsroom/id/2573415 6 24.09.2013 Mobile Systeme - Android

% Smartphone-Marktanteile im Vergleich zum den Vorjahren (Neuverkäufe) 80,0% 70,0% 60,0% 50,0% 40,0% 30,0% 20,0% 10,0% 0,0% Marktanteil 4Q10 Marktanteil 4Q11 Marktanteil 4Q12 Marktanteil 2Q13 Quelle: http://www.gartner.com/ Quelle: Gartner 7 24.09.2013 Mobile Systeme - Android

Android History Juli 2005: Kauf der Firma Android Inc durch Google November 2007: Gründung der Open Handset Alliance Veröffentlichung des Android SDK für Entwickler Oktober 2008 Februar 2009 - Version 1.1 April 2009 September 2009 Oktober 2009 Januar 2010 Mai 2010 Dezember 2010 Februar 2011 Oktober 2011 - Veröffentlichung der ersten Version als open-source - Version 1.5 Cupcake - Version 1.6 Donut - Version 2.0 Eclair - Version 2.1 Eclair - Version 2.2 Froyo - Version 2.3 Gingerbread - Version 3.0 Honeycomp (Tablets) - Version 4.0 Ice Cream Sandwich (Tablets und Smartphones) 9 24.09.2013 Mobile Systeme - Android

Android History Juni 2012 - Version 4.1 Jelly Bean Februar 2013 - Version 4.2.2 Jelly Bean Juli 2013 - Version 4.3 Jelly Bean" 10 24.09.2013 Mobile Systeme - Android

Android OpenSource? Kernel: GPLv2 System: Apache Software License, 2.0 Google Apps: nicht im Sourcecode verfügbar (Maps, Gmail, Talk, ) Hersteller spezifische Treiber können closed-source sein (z.b für Kamera) Mods (z.b. CyanogenMod ): Aus verfügbaren Sourcecode erstellte Android-Derivate Aktuelle Android-Versionen für Geräte, die vom Hersteller keine Updates mehr erhalten Erweiterungen um zusätzliche Funktionalitäten Bootloader muss Austausch des Kernels und Systems ermöglichen 11 24.09.2013 Mobile Systeme - Android

Android Apps: Laufzeitumgebung / Entwicklung Dalvik Virtual Machine (DVM) zur Verarbeitung von Registermaschinencode zur effizienten Programmausführung auf Register-basierten Prozessoren. Spezifisches Dex-Bytecodeformat (Dateierweiterung.dex) SW-Entwicklung mithilfe des Java SE SDKs möglich Mithilfe des Native Development Kits (NDK) können auch native Funktionen in C oder C++ für Android-Geräte entwickelt und über das Java Native Interface (JNI) in Java-Apps eingebunden werden. Quelle: http://developer.android.com/ 12 24.09.2013 Mobile Systeme - Android

Dalvik VM (DVM) Spezielle VM die Register-basiert arbeitet. Dadurch lässt sich der Bytecode effizienter auf Register basierten Prozessoren ausführen. Eignes Format für den Bytecode: Dex-Format Entwicklung mithilfe des Java SE SDKs Java-Bytecode wird übersetzt in Dex (Dateierweiterung.dex) 13 24.09.2013 Mobile Systeme - Android

Android - Systemarchitektur Quelle: http://developer.android.com/guide/basics/what-is-android.html 14 24.09.2013 Mobile Systeme - Android

Die erste Anwendung File -> New -> Project Android Application Project 15 24.09.2013 Mobile Systeme - Android

API-Level Platform Version API Level Name Android 1.0 1 Android 1.1 2 Android 1.5 3 Cupcake Android 1.6 4 Donut Android 2.0 5 Eclair Android 2.0.2 6 Eclair Android 2.1.x 7 Eclair Android 2.2.x 8 Froyo Android 2.3, 2.3.1, 2.3.2 9 Gingerbread Android 2.3.3, 2.3.4 10 Gingerbread Android 3.0.x 11 Honeycomb Android 3.1.x 12 Honeycomb Android 3.2 13 Honeycomb Android 4.0, 4.0.1, 4.0.2 14 Ice Cream Sandwich Android 4.0.3 15 Ice Cream Sandwich Android 4.1, 4.1.1 16 Jelly Bean Android 4.2, 4.2.2 17 Jelly Bean Android 4.3 18 Jelly Bean 16 24.09.2013 Mobile Systeme - Android Siehe auch: http://developer.android.com/guide/appendix/api-levels.html

Verteilung der Versionen gezählt werden alle Android- Geräte, die innerhalb von 7 Tagen auf den Play-Store zugegriffen haben. (Stand: 4 September 2013) Quelle: http://developer.android.com/about/dashboards/index.html 17 24.09.2013 Mobile Systeme - Android

Die erste Anwendung 18 24.09.2013 Mobile Systeme - Android

Die erste Anwendung 19 24.09.2013 Mobile Systeme - Android

Struktur des generierten Projekts 20 24.09.2013 Mobile Systeme - Android

Erstellen einer neuen Emulator-Konfiguration Windows -> AVD (Android Virtual Device) Manager 21 24.09.2013 Mobile Systeme - Android

Erstellen einer neuen Emulator-Konfiguration 22 24.09.2013 Mobile Systeme - Android

Ausführen der Anwendung Über den Run -Button in Eclipse ggf. erscheint die Meldung Run As Hier Android Application auswählen Das AVD startet automatisch Wurde der Emulator gestartet so wird die Anwendung installiert und gestartet Der Emulator braucht für einen erneuten Start nicht geschlossen werden! 23 24.09.2013 Mobile Systeme - Android

Ausführen der Anwendung 24 24.09.2013 Mobile Systeme - Android

ADT logcat Nachfrage 25 24.09.2013 Mobile Systeme - Android

Starten auf einem Telefon 1. Telefon einrichten USB-Debugging unter Einstellungen -> Anwendungen -> Entwicklung aktivieren 2. Telefon anschließen (ggf. passende Treiber installieren) 3. Anwendung startet beim nächsten Start automatisch auf dem Telefon 26 24.09.2013 Mobile Systeme - Android

Activities

Activity Einer der Hauptbestandteile einer Anwendung Stellt eine Benutzeroberfläche dar, mit der der Anwender interagiert Eine Anwendung besteht aus beliebig vielen Activities Eine Activity wird als main gekennzeichnet, diese wird bei Programmstart als erstes angezeigt Alle Activitys laufen eigenständig und sind nur lose miteinander gekoppelt Somit direkter Datenaustausch nicht möglich Eine Activity kann eine andere aufrufen und auch Daten mitgeben 28 24.09.2013 Mobile Systeme - Android

AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.init.helloworld" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".helloworldactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> 29 24.09.2013 Mobile Systeme - Android

Benutzerinterface einer Activity Zusammengesetzt aus Views Widgets - Sichtbare Elemente mit denen der Benutzer interagiert Layouts Ordnen Widgets nach einem Layout an Werden in einer beliebigen Baumstruktur angeordnet Die Baumstruktur kann im Quellcode erzeugt werden Üblich ist aber sie in einer XML-Datei zu beschreiben Im Beispiel res/layout/main.xml 30 24.09.2013 Mobile Systeme - Android

main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/textview1" /> </LinearLayout> 31 24.09.2013 Mobile Systeme - Android

LinearLayout android:orientation="vertical" android:layout_width="wrap_content android:layout_height="wrap_content" android:layout_width="match_parent android:layout_height="wrap_content" android:layout_width="match_parent android:layout_height="match_parent" 32 24.09.2013 Mobile Systeme - Android

LinearLayout android:orientation="horizontal" android:layout_width="wrap_content android:layout_height="wrap_content" android:layout_width="wrap_content android:layout_height="match_parent" android:layout_width="match_parent android:layout_height="wrap_content" 33 24.09.2013 Mobile Systeme - Android

AbsoluteLayout 81 56 192 164 40 330 <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/absolutelayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/button1" android:layout_width="194dp" android:layout_height="wrap_content" android:layout_x="81dp" android:layout_y="40dp" android:text="@string/button1" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_x="56dp" android:layout_y="164dp" android:text="button" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="106dp" android:layout_x="192dp" android:layout_y="330dp" android:text="button" /> </AbsoluteLayout> 34 24.09.2013 Mobile Systeme - Android

Aufgabe 1. Erstellen Sie eine GUI mit verschiedenen Widgets und experimentieren Sie mit dem Layouteditor 35 24.09.2013 Mobile Systeme - Android

HelloWorldActivity.java package de.init.android.helloworld; import android.app.activity; import android.os.bundle; public class HelloWorldActivity extends Activity { /** Called when the activity is first created. */ @Override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } } 36 24.09.2013 Mobile Systeme - Android

Logging Das Android-Framework enthält eine Klasse um Log-Ausgaben zu erstellen. Dieses Log kann in der Entwicklungsumgebung angezeigt werden logcat. public static int Log.v(String tag, String msg); public static int Log.d(String tag, String msg); public static int Log.i(String tag, String msg); public static int Log.w(String tag, String msg); public static int Log.e(String tag, String msg); 37 24.09.2013 Mobile Systeme - Android

Logging - Beispiel public class MainActivity extends Activity { } private static final String TAG = "Mein TAG"; @Override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); Log.v(TAG, "Log Test"); } 38 24.09.2013 Mobile Systeme - Android

Die Klasse R Wird automatisch generiert R.layout enthält IDs für die Layouts R.id enthält alle IDs die für andere Views definiert wurden R.drawable enthält alle Bilder aus dem Ordner drawable R.string enthält alle Textresourcen Achtung es werden nur IDs gespeichert über die Referenzen zu den Objekten bezogen werden können! 39 24.09.2013 Mobile Systeme - Android

Zugriff auf Views über eine ID Am Beispiel des TextView aus der HelloWorld Activity TextView in der main.xml um ein android.id -Attribut erweitern: <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:id="@+id/textview1" /> + gibt an, dass eine neue ID erzeugt werden soll Beim Speichern wird R automatisch aktualisiert Zugriff im Quellcode: TextView textview1 = (TextView) findviewbyid(r.id.textview1); 40 24.09.2013 Mobile Systeme - Android

Zustände einer Activity Eine Activity kann verschiedene Zustände annehmen Für jeden Zustand kann eine zugehörige Methode überschrieben werden, die bei einem Zustandswechsel aufgerufen werden Quelle: http://developer.android.com/guide/topics/fundamentals/activities.html 41 24.09.2013 Mobile Systeme - Android

Zustände einer Activity Methode Beschreibung Nächster Zustand oncreate() Wird ausgeführt, wenn die Activity erstellt wird. onstart() Hier sollten alle Initialisierungen ausgeführt werden. onrestart() Wird ausgeführt nachdem die Activity gestoppt onstart() wurde und wieder ausgeführt wird. Hiernach folgt immer onstart() onstart() Wird ausgeführt bevor die Activity für den Benutzer sichtbar wird. Es folgt onresume(), wenn die Activity sichtbar wird, oder onstop() onresume() oder onstop() wenn die Activity versteckt ist. onresume() Wird als letzes Aufgerufen, bevor die Activity onpause() onstop() onpause() aktiv wird. Wird aufgerufen, wenn das System den Start oder das Fortsetzen einer anderen Activity vorbereitet. Wird aufgerufen, wenn die Activity nicht mehr für den Benutzer sichtbar ist. onresume() oder onstop() onrestart() oder ondestroy() ondestroy() Wird aufgerufen, bevor die Activity zerstört wird. - Quelle: http://developer.android.com/guide/topics/fundamentals/activities.html 42 24.09.2013 Mobile Systeme - Android

Aufgaben 2. Ändern Sie den Text des TextView hello_world aus der oncreate- Methode heraus. 3. Erstellen Sie eine Activity die alle Methoden der Zustandsänderung überschreibt. Geben Sie für jede Zustandsänderung eine Meldung im Log aus. 43 24.09.2013 Mobile Systeme - Android