Mobile Systeme Android 07.04.2011



Ähnliche Dokumente
Android Mobile Systeme - Android

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

Naviki GPS-Anwendungsentwicklung für Mobiltelefone

Android-Apps weitere Möglichkeiten

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

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS HSRM

Mobile App Development. - Alarm -

Seminar Multimediale Werkzeuge Sommersemester 2011

Teil I Augmented Learning - Vortragender: Krischan Udelhoven. Teil II Android - Vortragender: Folker Hoffmann

Einführung in Android. 9. Dezember 2014

Android GUI Entwicklung

Smartphone Entwicklung mit Android und Java

Java: Vererbung. Teil 3: super()

Einführung in Android

2. Hintergrundverarbeitung in Android: Services und Notifications

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

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Grundlagen von Python

Tutorial. Programmierung einer Android-Applikation. Teil 1

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Android Programmierung mit Java Studiengang MI

Android Programmierung mit Java Studiengang MI

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

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

1 Der Einstieg in Java für Android

Ihr CMS für die eigene Facebook Page - 1

Applications Applets (eingeschränkte Rechte)

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

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

Programmieren in Java

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

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

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo

Internet und WWW Übungen

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

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

Entwickeln für Android OS

Übungen zur Android Entwicklung

Tutorial -

Installation von NetBeans inkl. Glassfish Anwendungs-Server

iphone-kontakte zu Exchange übertragen

Übung: Verwendung von Java-Threads

Browsereinstellungen für moneycheck24 in Explorer unter Windows

Datensicherung und Wiederherstellung

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Handbuch. BIZS Mobil App

2. Word-Dokumente verwalten

Übung - Datensicherung und Wiederherstellung in Windows 7

Internet Explorer Version 6

Mobile-Szenario in der Integrationskomponente einrichten

Java-Tutorium WS 09/10

GeoPilot (Android) die App

Zentrale Installation

Software-Engineering Grundlagen des Software-Engineering

MAPS.ME. Benutzerhandbuch!

App Entwicklung mit dem Android SDK

Tutorial: Wie kann ich Dokumente verwalten?

Installationsleitfaden kabelsafe backup professional unter MS Windows

SEW Übung EMFText. 1 Aufgabe. 2 Domänenbeschreibung. 3 Installation von Eclipse/EMFText. 4 Schritt-für-Schritt Anleitung. 4.

Inhaltsverzeichnis Dokumentverwaltung Organisation von Dokumenten Ordner erstellen Dokumente im Dateisystem behandeln...

Wiederkehrende Bestellungen. Tipps & Tricks

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

Diese sind auf unserer Internetseite im Downloadbereich für den Palm zu finden:

CADEMIA: Einrichtung Ihres Computers unter Windows

Installationsleitfaden kabelsafe backup home unter MS Windows

NEUES BEI BUSINESSLINE WINDOWS

Multimedia Engineering II - Übung 2

Anleitung zur Webservice Entwicklung unter Eclipse

Updateanleitung für SFirm 3.1

Kleines Handbuch zur Fotogalerie der Pixel AG

Terminabgleich mit Mobiltelefonen

Im vorliegenden Tutorial erfahren Sie, wie Sie in myfactory Postfächer für den Posteingang und den Postausgang anlegen.

Bilder zum Upload verkleinern

Kurzeinführung Excel2App. Version 1.0.0

Im folgenden wird die Outlookanbindung an organice/pi beschrieben.

IBM SPSS Statistics Version 22. Installationsanweisungen für Windows (Lizenz für gleichzeitig angemeldete Benutzer)

Windows 8.1. Grundkurs kompakt. Markus Krimm, Peter Wies 1. Ausgabe, Januar inkl. zusätzlichem Übungsanhang K-W81-G-UA

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

NODELOCKED LIZENZ generieren (ab ST4)

Individuelle Formulare

Installationsanleitung für Update SC-Line

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Wo Ist Mein Kind App

Anleitung Captain Logfex 2013

OUTLOOK-DATEN SICHERN

Step by Step Softwareverteilung unter Novell. von Christian Bartl

Prodanet ProductManager WinEdition

Informatik Sommercamp 2012

MSDE 2000 mit Service Pack 3a

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

Workshop: Eigenes Image ohne VMware-Programme erstellen

Starten der Software unter Windows 7

GEORG.NET Anbindung an Ihr ACTIVE-DIRECTORY

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Diese Daten fließen dann sowohl der Arbeitszeitverwaltung der Mitarbeiter, dem Tätigkeitsnachweis und der Nachkalkulation von Projekten zu.

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Step by Step Webserver unter Windows Server von Christian Bartl

Transkript:

Mobile Systeme Android 07.04.2011

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 3.0 Honeycomb, kaum HW support 2 07.04.2011 Mobile Systeme - Android

Android - Systemarchitektur Quelle: http://developer.android.com/guide/basics/what-is-android.html 3 07.04.2011 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) 4 07.04.2011 Mobile Systeme - Android

Typische Smartphones Motorola Milestone 2 CPU ARM Cortex A8 1000 Mhz 512 Mb RAM 8 Gb interner Speicher 3,7 Zoll LCD 854 x 480 Pixel GPS Beschleunigungssensor Temparatursensor Digitaler Kompass 5 07.04.2011 Mobile Systeme - Android

Die erste Anwendung File -> New -> Project Android Project 6 07.04.2011 Mobile Systeme - Android

Ordnerstruktur des generierten Projekts 7 07.04.2011 Mobile Systeme - Android

Erstellen einer neuen Emulator-Konfiguration Windows -> Android SDK and AVD Manager 8 07.04.2011 Mobile Systeme - Android

Erstellen einer neuen Emulator-Konfiguration 9 07.04.2011 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! 10 07.04.2011 Mobile Systeme - Android

Ausführen der Anwendung 11 07.04.2011 Mobile Systeme - Android

Starten auf einem Telefon 1. Telefon einrichten USB-Debugging unter Einstellungen -> Anwendungen -> Entwicklung aktivieren 2. Telefon anschließen 3. Anwendung startet beim nächsten Start automatisch auf dem Telefon 12 07.04.2011 Mobile Systeme - Android

Activity

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 bezeichnet, 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 14 07.04.2011 Mobile Systeme - Android

AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="init.android.helloworld" android:versioncode="1" android:versionname="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name android:debuggable="true"> <activity android:name=".helloworld 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> <uses-sdk android:minsdkversion="8" /> </manifest> 15 07.04.2011 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 16 07.04.2011 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> 17 07.04.2011 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); } } 18 07.04.2011 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! 19 07.04.2011 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); 20 07.04.2011 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 21 07.04.2011 Mobile Systeme - Android

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

Andere Acticities anzeigen - Intents Beispiel zum Aufruf einer Activity mit dem Namen Activity2 : final Intent intent= new Intent(this,Activity2.class); startactivity(intent); Zusätzlich in der AndroidManifest.xml : <application <activity android:name="activity2"></activity> </application> 23 07.04.2011 Mobile Systeme - Android

Activity Backstack Ruft eine Activity eine andere auf, so wird die alte auf dem Backstack abgelegt. Drückt der Benutzer die Zurücktaste, so wird die vorherige Activity wieder aktiviert. Quelle: http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html 24 07.04.2011 Mobile Systeme - Android

Oberflächenereignisse Reagieren auf Oberflächenereignisse mithilfe eines Listerners Beobachter Aufrufendes Ereignis... button.setonclicklistener( new View.OnClickListener(){ );... } @Override public void onclick(view v){ } View.OnClickListener Klick auf View View.OnKeyListener Tastatureingabe View.onTouchListener TouchScreen Seit API 1.6: xml-attribut: android:onclick android:onclick= shownotification1 In der Activity implementierung der Methode: public void shownotification1(view view) {...} 25 07.04.2011 Mobile Systeme - Android

Toast import android.widget.toast;... Toast.makeText(this,"HelloToast",Toast.LENGTH_SHORT).show(); 26 07.04.2011 Mobile Systeme - Android

Notifications final NotificationManager notificationmanager = NotificationManager) getsystemservice(context.notification_service); Notification notification = new Notification (android.r.drawable.sym_def_app_icon,"hello Notification", System.currentTimeMillis()); Intent notificationintent = new Intent( this, HelloNotificationActivity.class); PendingIntent contentintent = PendingIntent.getActivity( this, 0, notificationintent, 0); notification.setlatesteventinfo(getapplicationcontext(), "Test", "HelloNotification", contentintent); notification.flags = notification.flag_auto_cancel; notificationmanager.notify(notification_id, notification); 27 07.04.2011 Mobile Systeme - Android

Notifications 28 07.04.2011 Mobile Systeme - Android

Aufgaben 1. Erstellen Sie eine Activity die alle Methoden der Zustandsänderung implementiert. Geben Sie für jede Zustandsänderung eine Meldung im Log aus (Log.v). 2. Erstellen Sie eine GUI mit verschiedenen Widgets 3. Erstellen Sie ein Programm, welches beim Drücken auf einen Button ein Toast erstellt. 4. Erstellen Sie ein Programm, welches beim Drücken auf einen Button eine Notification erstellt. 5. Erweitern Sie Ihr Programm um eine weitere Activity, die mittels eines Buttons aufgerufen werden kann. Ausserdem soll es möglich sein von der ursprünglichen Activity Daten vom Typ String an die neue Activity zu übergeben. Beachten Sie den Backstack. 29 07.04.2011 Mobile Systeme - Android

Canvas 1. Erstellen einer eigenen Klasse, abgeleitet von View public class CanvasTestView extends View {...} 2. Überschreiben der Methode ondraw protected void ondraw(canvas canvas) {...} 3. invalidate() veranlasst ein neuzeichnen 30 07.04.2011 Mobile Systeme - Android

Beispiel ondraw() protected void ondraw(canvas canvas) { int height = canvas.getheight(); int width = canvas.getwidth(); Paint paint = new Paint(); paint.setcolor(color.ltgray); canvas.drawrect(0, 0, width, height, paint); } paint.setcolor(color.blue);...... 31 07.04.2011 Mobile Systeme - Android

Touchscreen int x1,y1,x2,y2;... public boolean ontouch(view v, MotionEvent event) { x1=event.getx(); y1=event.gety(); //multitouch: x2=event.getx(1); y2=event.gety(1); invalidate(); } 32 07.04.2011 Mobile Systeme - Android

Sensoren Beispiel Accelerometer private SensorManager msensormanager; private Sensor maccelerometer; public void oncreate(bundle savedinstancestate) {... msensormanager = (SensorManager) getsystemservice(sensor_service); maccelerometer = msensormanager.getdefaultsensor(sensor.type_accelerometer);... } 33 07.04.2011 Mobile Systeme - Android

Sensoren Beispiel Accelerometer protected void onresume() { super.onresume(); msensormanager.registerlistener(this, maccelerometer, SensorManager.SENSOR_DELAY_UI); } protected void onpause() { super.onpause(); msensormanager.unregisterlistener(this); } 34 07.04.2011 Mobile Systeme - Android

Sensoren Beispiel Accelerometer... implements SensorEventListener... public void onsensorchanged(sensorevent event) { x=event.values[0]; y=event.values[1]; z=event.values[2]; } 35 07.04.2011 Mobile Systeme - Android