android share a run

50
SHARE A RUN

Upload: philipp-lehmann

Post on 10-Jun-2015

1.993 views

Category:

Technology


0 download

DESCRIPTION

This is a pdf File which describes how android share a run work

TRANSCRIPT

Page 1: Android Share A Run

SHARE A RUN

Page 2: Android Share A Run

AGENDA

Grundlagen Einführung Android Die Applikation Share A Run Resümee (Probleme und Fazit) Demo

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 2

Page 3: Android Share A Run

GRUNDLAGEN

Page 4: Android Share A Run

Grundlagen – Die Idee

4Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch

Page 5: Android Share A Run

Grundlagen – Die Zielgruppe

zwischen 15 und 45 Jahren alt interessiert an neuen Technologien bürgerliche Mitte bis Oberschicht Freizeit- und Breitensportler Spaß am Laufen

5Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch

Page 6: Android Share A Run

Grundlagen – Anwendungsszenar io

6Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch

Page 7: Android Share A Run

GRUNDLAGEN – A N F OR DE R U N G E N

Aufteilung in Muss / Soll / Kann

Features

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 7

Page 8: Android Share A Run

GRUNDLAGEN – M U S S F E A T U R E S

Ortung

Wettkampf (Punktevergabe)

Höhenberechnung

Visualisierung des Lauffortschritts

Kontaktplattform

Benutzerverwaltung

Kommunikation zwischen Endgerät und Server

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 8

Page 9: Android Share A Run

GRUNDLAGEN – S OL L F E A T U R E S

Sprachausgabe

Geschwindigkeitsmessung

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 9

Page 10: Android Share A Run

GRUNDLAGEN – K A N N F E A T U R E S

Updatebares Bewertungsprofil

Einzelspielermodus

Online Teilnehmerstatistik

Run Einstellungsparameter

Multi Run

Vor Verabredung

Anti Betrug

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 10

Page 11: Android Share A Run

ANDROID

Page 12: Android Share A Run

ANDROID - B A C K G R OU N D

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 12

Android ist Open Source und umfasst

Betriebssystem für mobile Endgeräte,

Middleware, Applikationen und SDK

Nov 07 Open Handset Alliance kündigt Android an

Sept 08 T-Mobile G1 wird vorgestellt

Android 1.0 SDK

Okt 08 Source Code wird veröffentlich

Apr 09: Android 1.5 SDK

Page 13: Android Share A Run

ANDROID – E N T W IC K L U N G

Java als Programmiersprache

Android benutzt eigene VM DalvikVM

DalvikVM basiert auf Linux Kernel

Jede Applikationen läuft auf eigenem Prozess und DalvikVM Instanz

Android Applikation müssen sich nicht selbst beenden, sondern werden vom

System beendet (bei Ressourcenmangel)

Anwendungen können auf Android Market angeboten werden

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 13

Page 14: Android Share A Run

ANDROID - A C T IVIT IE S Anzeige des graphischen User Interface Jeder Screen erbt von Activity Activties stellen Informationen dar oder reagieren auf Interaktionen des

Users

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 14

Page 15: Android Share A Run
Page 16: Android Share A Run

ANDROID - S E R VIC E S

besitzen kein User Interface

sind nicht sichtbar und laufen im Hintergrund

werden fortgesetzt auch wenn Activities nicht aktiv oder sichtbar sind

Services werden von Activities gesteuert

Callbacks benachrichtigen Activity wenn ein bestimmtes Ereignis auftritt

Service Schnittstelle wird mit Android Interface Definition Language definiert (.aidl)

interface IService {double getDownloadTime();double getFilename();double getFilepath();

}

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 16

Page 17: Android Share A Run

ANDROID - L A Y OU T & G U I Layout ist getrennt von der Business Logik Layouts werden in XML Dateien definiert:

<LinearLayout . . . > <Button android:id="@+id/buttonShare"android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello, I am a Button“/>

</LinearLayout>

Zugriff auf XML Ressource

onCreate(){Button button = (Button) findViewById(R.id.buttonShare);button.setTextColor(Color.RED);

}

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 17

Page 18: Android Share A Run

ANDROID - M A N IF E S T.XM L Jede Applikation benötigt eine Android Manifest.xml-Datei

Manifest enthält Informationen über die Applikation, die das Android System

benötigt um den Code der Applikation auszuführen

<manifest><uses-permission android:name="android.permission.BLUETOOTH"/> <application>

<uses-library> … </uses-library><activity android:name=".StartWindow">

. . . </activity><service android:name=".ShareARunService"></service>

</application><uses-sdk android:minSdkVersion="3"/>

</manifest>

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 18

Page 19: Android Share A Run

ANDROID - E N T W IC K L U N G S U M G E B U N G

JDK 5 or 6 Eclipse 3.3 or 3.4 Android Development Tools Plugin Android SDK 1.5

Tools: Dalvik Debug Monitor Service Android Emulator Android Virtual Devices LogCat FileExplorer GPS Daten simulieren

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 19

Page 20: Android Share A Run

APPLIKATION

Page 21: Android Share A Run

Die Applikat ion – Technologien

XMPP (Smack Bibliothek)

Google Maps

GPS

Text To Speech

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch21

Philipp und Stefan

Nha-Phuong und Robert

Page 22: Android Share A Run

Die Applikat ion – Archit ekt ur

UserWindow

ConfigurationWizardStart

RunSettingWindow

RunStartWindow RunWindow

MapsGPSWindow

StatisticWindow

XMPPService GPSService

ConfigurationWizardSetup

Page 23: Android Share A Run

Die Applikat ion – XM PP

Extensible Messaging and Presence Protocol

XML basiert Instant Messaging direkte Kommunikation zwischen

Android Endgeräten Übertragung von Punkten und Status

Nachrichten

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch23

Page 24: Android Share A Run

DIE APPLIKATION - XM P P E XA M P L E

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 2 4

Registriert•Implementiert

IXMPPUICallback.aidl

Erstellt Instanz•Implementiert

IXMPPService.aidl•Implementiert

XMPPServiceCallback.java

Verbindungsaufbau•Implementiert

Smackable.java•Verbindungsaufbau• Senden• Empfangen

Nachricht empfangen•Greift auf Methoden

des XMPPServiceCallbackInterface zu.

•Übergibt Nachricht an Service

Broadcast zu Activities•Leitet Nachricht an alle

angemeldeten Activities weiter

Handler•Nachricht wird an

Handler übergeben•Stellt Nachricht auf

Screen dar

Page 25: Android Share A Run

SHARE A RUN - G P S

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 2 5

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates("gps",5,10,locationListener);

private final LocationListener locationListener = newLocationListener() {

public void onLocationChanged(Location l) {l.getLatitude();l.getLongitude();l.getAltitude();l.getSpeed();

Location.distanceBetween(oldLatitude, oldLongitude, newLatitude, newLongitude, result[0]);

}}

Page 26: Android Share A Run

SHARE A RUN - G P S

Distanz zum Ursprung: Distanz von: Startwerten/neuen Werten

Wegberechnung: Distanz von: alten Werten/neuen Werten Gesamtweg = Gesamtweg + Distanz neue Werte werden zu alten Werten

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 2 6

Page 27: Android Share A Run

SHARE A RUN - G P S

Höhenberechnung:

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 2 7

10 Meter

5 MeterHyp = 11.18

Long /Lat/Alt Long /Lat

Alt

Page 28: Android Share A Run

SHARE A RUN - G P S L OG

GPX File:<?xml version="1.0" encoding="UTF-8" standalone="no" ?><gpx xmlns="http://www.topografix.com/GPX/1/1" xm …..

<metadata> … </metadata><trk><name>ShareARun</name><trkseg>

<trkpt lat="48.74176740646362" lon="9.100788831710815"><ele>444.0</ele><time>2008-10-06T09:18:33Z</time>

</trkpt></trkseg>

</trk></gpx>

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 2 8

Page 29: Android Share A Run

SHARE A RUN – T E XT T O S P E E C H

Installieren der TTS Anwendung auf dem Endgerät Einbinden der Library in der eigenen Anwendung

Codebeispiel:

import com.google.tts.TTS;private TTS myTts;private TTS.InitListener ttsinitListner = new TTS.InitListener() {

public void onInit(int version) {myTts.speak(„Share a run“, 0, null);

}};myTts = new TTS(GPSTracker.this, ttsinitListner, true);

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 2 9

Page 30: Android Share A Run

SHARE A RUN – M A P VIE W

Verwendung der Google Maps API

Einbinden im Manifest: <uses-library android:name="com.google.android.maps" />

<uses-permission android:name="android.permission.INTERNET" />

Layout definieren

Layout in Activity verwenden

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 30

Page 31: Android Share A Run

SHARE A RUN – M A P VIE W

Layout<com.google.android.maps.MapView android:id="@+id/mapview"android:layout_width="fill_parent" android:layout_height="fill_parent"android:clickable="true" android:apiKey="Your Maps API Key" />

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 31

Page 32: Android Share A Run

SHARE A RUN – M A P VIE W

public class HelloMapView extends MapActivity {…

MapView mapView = (MapView) findViewById(R.id.mapview); MapController mc = mapview.getController();mc.setCenter(geopoint);mc.animateTo(geopoint);

…}

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 32

Page 33: Android Share A Run

ANDROID P R O A N D CON T R A

Page 34: Android Share A Run

PRO

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 34

Page 35: Android Share A Run

PRO – E N T W IC K L U N G S U M G E B U N G

Einfach einzubinden in bestehende Eclipse Platform (Software Updates)

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 35

Generated R.java Interface Activity und Code Behind

Page 36: Android Share A Run

PRO – E N T W IC K L U N G S U M G E B U N G

Eclipse-Debugger wird verwendet Umfangreiche Debugmöglichkeiten

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 36

Installation Einfach auf Gerät zu installieren Muss nicht Zertifiziert werden

Page 37: Android Share A Run

PRO – S DK

Zentrale Verwaltung der Activities

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 37

Einfache Benutzung mehrerer Sprachen

Automatische Verwendung

Umfangreiche Klassenbibliothek

Page 38: Android Share A Run

PRO – S DK

Übersicht aller Prozesse pro Emulator

Logging tool LogCat

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 38

Interaktion mit Device durch Emulator Control Übersicht aller verwendeten Threads, freier und

belegter Speicher und Dateien

Page 39: Android Share A Run

PRO – E M U L A T OR

Umfangreiche Testumgebung Fast 1:1 zu Gerät Emulation von Bewegung Emulation von GPS Mehrere Emulatoren

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 39

Page 40: Android Share A Run

CONTRA

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 0

Page 41: Android Share A Run

CONTRA – E N T W IC K L U N G S U M G E B U N G

Generated R.java R.java lässt sich nicht manuell

generieren

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 1

Layout-Designer unzureichend

Page 42: Android Share A Run

CONTRA – S DK

Versionen nicht kompatibel(nicht Abwärtskompatibel)

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 2

Multithreading verwirrend

Page 43: Android Share A Run

CONTRA – S DK

Lifecycle für Neueinsteiger schlecht zu durchschauen.

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 3

Page 44: Android Share A Run

CONTRA – E M U L A T OR

Oft Disconnected Emulator-Bug unter MS Vista GPS-Bug (maximal 2 Koordinatensätze) Startet langsam

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 4

Page 45: Android Share A Run

CONTRA – DE VIC E

Keine Multi-Touch-Funktion Relativ schlechter GPS-Empfänger

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 5

Page 46: Android Share A Run

M USS - F E A T U R E S

Ortung

Wettkampf (Punktevergabe)

Höhenberechnung

Visualisierung des Lauffortschritts

Kontaktplattform

Kommunikation zwischen Endgerät und Server

Benutzerverwaltung

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 6

Kommunikation zwischen Endgerät und Endgerät

( )

Page 47: Android Share A Run

SOLL - F E A T U R E S

Sprachausgabe

Geschwindigkeitsmessung

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 7

Page 48: Android Share A Run

KANN - F E A T U R E S

Updatebares Bewertungsprofil

Einzelspielermodus

Online Teilnehmerstatistik

Run Einstellungsparameter

Multi Run

Vor Verabredung

Anti Betrug

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 8

Page 49: Android Share A Run

ORGANISATION

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4 9

Page 50: Android Share A Run

WIR – S HA R E A R U N

5 0Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch

Da nke f ür die A uf me r ks a mke it !!!E U E R S HA R E A R U N - T E A M