SlideShare une entreprise Scribd logo
1  sur  50
Télécharger pour lire hors ligne
SHA RE A RUN
A GENDA

          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
GRUNDL A GEN
Gr undlagen – Die Idee




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   4
Gr undlagen – Die Zielgr uppe

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




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   5
Gr undlagen – A nwendungs s zenar io




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   6
GRUNDL A GEN – 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
GRUNDL A GEN – 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
GRUNDL A GEN – 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
GRUNDL A GEN – 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
A NDROID
A NDROID - B A C K G R OU N D




                                                                     Nov 07    Open Handset Alliance kündigt Android an
         Android ist Open Source und umfasst                         Sept 08 T-Mobile G1 wird vorgestellt

         Betriebssystem für mobile Endgeräte,                                  Android 1.0 SDK
                                                                     Okt 08    Source Code wird veröffentlich
         Middleware, Applikationen und SDK
                                                                     Apr 09:   Android 1.5 SDK

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch                                                    12
A NDROID – 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
A NDROID - A C T IV IT 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
A NDROID - S E R V IC 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
A NDROID - 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
A NDROID - 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
A NDROID - 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
A PPL IKATION
Die A pplikat ion – Technologien
        XMPP (Smack Bibliothek)                               Philipp und
                                                               Stefan

        Google Maps

        GPS                                                   Nha-Phuong
                                                               und Robert

        Text To Speech


21                     Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch
Die A pplikat ion – A r chit ekt ur
 Configuration   Configuration              MapsGPS
  WizardStart    WizardSetup                Window




                 RunSetting      RunStart                Statistic
UserWindow                                  RunWindow
                  Window         Window                  Window




 XMPPService                                            GPSService
Die A pplikat ion – XM PP
        Extensible Messaging and Presence
         Protocol
        XML basiert
        Instant Messaging
        direkte Kommunikation zwischen
         Android Endgeräten
        Übertragung von Punkten und Status
         Nachrichten




23                      Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch
DIE A PPL IKATION - XM P P E XA M P L E




         Handler
         Registriert                                 Broadcast zu Activities
                                                     Erstellt Instanz          Verbindungsaufbau
                                                                               Nachricht empfangen
         •Implementiert an
         •Nachricht wird                             •Implementiert an alle
                                                     •Leitet Nachricht         •Implementiert
                                                                               •Greift auf Methoden
          IXMPPUICallback.aidl
          Handler übergeben                           IXMPPService.aidl
                                                       angemeldeten             Smackable.java
                                                                                des
         •Stellt Nachricht auf                         Activities weiter
                                                     •Implementiert            •Verbindungsaufbau
                                                                                XMPPServiceCallback
          Screen dar                                  XMPPServiceCallback.     •Interface zu.
                                                                                 Senden
                                                      java                     • Empfangen
                                                                               •Übergibt Nachricht an
                                                                                Service




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch                                      24
SHA RE A RUN - G P S
    LocationManager lm =
    (LocationManager)getSystemService(Context.LOCATION_SERVICE);
    lm.requestLocationUpdates("gps",5,10,locationListener);

    private final LocationListener locationListener = new
    LocationListener() {
        public void onLocationChanged(Location l) {
           l.getLatitude();
           l.getLongitude();
           l.getAltitude();
           l.getSpeed();

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


Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch     25
SHA RE 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   26
SHA RE A RUN - G P S
                                                                       Alt

          Höhenberechnung:

                                                 Hyp = 11.18
                                                                             5 Meter




                                                     10 Meter


             Long /Lat/Alt                                           Long /Lat




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch                     27
SHA RE 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   28
SHA RE 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         29
SHA RE A RUN – M A P V IE 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
SHA RE A RUN – M A P V IE 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
SHA RE A RUN – M A P V IE 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
A NDROID P R O A N D C ON T R A
PRO




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   34
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)



                             Generated R.java
                              Interface Activity und Code Behind




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch      35
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



   Installation
    Einfach auf Gerät zu installieren

    Muss nicht Zertifiziert werden


Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   36
PRO – S DK

                                     Zentrale Verwaltung der Activities


                                     Einfache Benutzung mehrerer
                                      Sprachen
                                     Automatische Verwendung

                                     Umfangreiche Klassenbibliothek

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch         37
PRO – S DK
                                                                Übersicht aller Prozesse
                                                                 pro Emulator
                                                                Logging tool LogCat



       Interaktion mit Device durch Emulator Control
       Übersicht aller verwendeten Threads, freier und
        belegter Speicher und Dateien

Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch                          38
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
CONTRA




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   40
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


                                  Layout-Designer unzureichend




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   41
CONTRA – S DK

                                     Versionen nicht kompatibel
                                      (nicht Abwärtskompatibel)




                                     Multithreading verwirrend



Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   42
CONTRA – S DK

                                     Lifecycle für Neueinsteiger schlecht
                                      zu durchschauen.




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch       43
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   44
CONTRA – DE V IC E

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




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   45
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
                                                       Endgerät

                   Benutzerverwaltung


Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   46
SOL L - F E A T U R E S

                   Sprachausgabe

                   Geschwindigkeitsmessung




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   47
KA NN - 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   48
ORGA NISATION




Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch   49
WIR – S HA R E A R U N




                         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




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

Contenu connexe

En vedette

Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...
Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...
Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...AllFacebook.de
 
statistische evaluierung - mozartjahr 2006
statistische evaluierung - mozartjahr 2006statistische evaluierung - mozartjahr 2006
statistische evaluierung - mozartjahr 2006guestc9b470
 
Persona für Produktentwicklung, Beispiele und Ideen wie man Persona Entwickelt
Persona für Produktentwicklung, Beispiele und Ideen wie man Persona EntwickeltPersona für Produktentwicklung, Beispiele und Ideen wie man Persona Entwickelt
Persona für Produktentwicklung, Beispiele und Ideen wie man Persona Entwickeltpcampger
 
Introduction To Statistics
Introduction To StatisticsIntroduction To Statistics
Introduction To Statisticsalbertlaporte
 
Content Marketing als Erfolgsfaktor
Content Marketing als ErfolgsfaktorContent Marketing als Erfolgsfaktor
Content Marketing als ErfolgsfaktorCommandante Berlin
 
TOP Investment Konferenz 2012 - Thomas Knigge/Franklin Templeton
TOP Investment Konferenz 2012 - Thomas Knigge/Franklin TempletonTOP Investment Konferenz 2012 - Thomas Knigge/Franklin Templeton
TOP Investment Konferenz 2012 - Thomas Knigge/Franklin Templetoniac-aktienclub
 
10 Punkte Checkliste für Business Development von HR-Service Unternehmen
10 Punkte Checkliste für Business Development von HR-Service Unternehmen10 Punkte Checkliste für Business Development von HR-Service Unternehmen
10 Punkte Checkliste für Business Development von HR-Service UnternehmenBarbara Braehmer
 
Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job Posting
 Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job Posting Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job Posting
Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job PostingBarbara Braehmer
 
API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung Stefan Kienzl
 
JTL-Connector | Anpassung & Erweiterung der Endpoints
JTL-Connector | Anpassung & Erweiterung der EndpointsJTL-Connector | Anpassung & Erweiterung der Endpoints
JTL-Connector | Anpassung & Erweiterung der EndpointsJTL-Software
 
JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...
JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...
JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...JTL-Software
 
Digital Marketing - Reduktion von technischen Risiken
Digital Marketing - Reduktion von technischen RisikenDigital Marketing - Reduktion von technischen Risiken
Digital Marketing - Reduktion von technischen RisikenSwissQ Consulting AG
 
Lügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeLügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeJohann-Peter Hartmann
 
Datenanalyse mit R
Datenanalyse mit RDatenanalyse mit R
Datenanalyse mit RF789GH
 

En vedette (17)

Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...
Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...
Medien im Wandel – Markenerlebnis auf allen Kanälen am Beispiel von “The Voic...
 
statistische evaluierung - mozartjahr 2006
statistische evaluierung - mozartjahr 2006statistische evaluierung - mozartjahr 2006
statistische evaluierung - mozartjahr 2006
 
statistic evaluation - mozartjahr 2006
statistic evaluation - mozartjahr 2006statistic evaluation - mozartjahr 2006
statistic evaluation - mozartjahr 2006
 
Persona für Produktentwicklung, Beispiele und Ideen wie man Persona Entwickelt
Persona für Produktentwicklung, Beispiele und Ideen wie man Persona EntwickeltPersona für Produktentwicklung, Beispiele und Ideen wie man Persona Entwickelt
Persona für Produktentwicklung, Beispiele und Ideen wie man Persona Entwickelt
 
Investor Relations 2.0 study - Press release (German)
Investor Relations 2.0 study - Press release (German)Investor Relations 2.0 study - Press release (German)
Investor Relations 2.0 study - Press release (German)
 
Introduction To Statistics
Introduction To StatisticsIntroduction To Statistics
Introduction To Statistics
 
Content Marketing als Erfolgsfaktor
Content Marketing als ErfolgsfaktorContent Marketing als Erfolgsfaktor
Content Marketing als Erfolgsfaktor
 
Fdi
FdiFdi
Fdi
 
TOP Investment Konferenz 2012 - Thomas Knigge/Franklin Templeton
TOP Investment Konferenz 2012 - Thomas Knigge/Franklin TempletonTOP Investment Konferenz 2012 - Thomas Knigge/Franklin Templeton
TOP Investment Konferenz 2012 - Thomas Knigge/Franklin Templeton
 
10 Punkte Checkliste für Business Development von HR-Service Unternehmen
10 Punkte Checkliste für Business Development von HR-Service Unternehmen10 Punkte Checkliste für Business Development von HR-Service Unternehmen
10 Punkte Checkliste für Business Development von HR-Service Unternehmen
 
Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job Posting
 Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job Posting Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job Posting
Personalmarketing 2.0 - 7 geheime Experten-Tipps zu Social Job Posting
 
API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung API Authentifizierung und Autorisierung
API Authentifizierung und Autorisierung
 
JTL-Connector | Anpassung & Erweiterung der Endpoints
JTL-Connector | Anpassung & Erweiterung der EndpointsJTL-Connector | Anpassung & Erweiterung der Endpoints
JTL-Connector | Anpassung & Erweiterung der Endpoints
 
JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...
JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...
JTL-Connector | Entwicklung neuer Schnittstellen und Anbindung weiterer Platt...
 
Digital Marketing - Reduktion von technischen Risiken
Digital Marketing - Reduktion von technischen RisikenDigital Marketing - Reduktion von technischen Risiken
Digital Marketing - Reduktion von technischen Risiken
 
Lügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-VerträgeLügen, schlimme Lügen und IT-Verträge
Lügen, schlimme Lügen und IT-Verträge
 
Datenanalyse mit R
Datenanalyse mit RDatenanalyse mit R
Datenanalyse mit R
 

Android Share A Run

  • 1. SHA RE A RUN
  • 2. A GENDA  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
  • 4. Gr undlagen – Die Idee Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 4
  • 5. Gr undlagen – Die Zielgr uppe  zwischen 15 und 45 Jahren alt  interessiert an neuen Technologien  bürgerliche Mitte bis Oberschicht  Freizeit- und Breitensportler  Spaß am Laufen Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 5
  • 6. Gr undlagen – A nwendungs s zenar io Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 6
  • 7. GRUNDL A GEN – 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
  • 8. GRUNDL A GEN – 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
  • 9. GRUNDL A GEN – 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
  • 10. GRUNDL A GEN – 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
  • 12. A NDROID - B A C K G R OU N D Nov 07 Open Handset Alliance kündigt Android an Android ist Open Source und umfasst Sept 08 T-Mobile G1 wird vorgestellt Betriebssystem für mobile Endgeräte, Android 1.0 SDK Okt 08 Source Code wird veröffentlich Middleware, Applikationen und SDK Apr 09: Android 1.5 SDK Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 12
  • 13. A NDROID – 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
  • 14. A NDROID - A C T IV IT 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
  • 15.
  • 16. A NDROID - S E R V IC 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
  • 17. A NDROID - 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
  • 18. A NDROID - 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
  • 19. A NDROID - 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
  • 21. Die A pplikat ion – Technologien  XMPP (Smack Bibliothek) Philipp und Stefan  Google Maps  GPS Nha-Phuong und Robert  Text To Speech 21 Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch
  • 22. Die A pplikat ion – A r chit ekt ur Configuration Configuration MapsGPS WizardStart WizardSetup Window RunSetting RunStart Statistic UserWindow RunWindow Window Window Window XMPPService GPSService
  • 23. Die A pplikat ion – XM PP  Extensible Messaging and Presence Protocol  XML basiert  Instant Messaging  direkte Kommunikation zwischen Android Endgeräten  Übertragung von Punkten und Status Nachrichten 23 Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch
  • 24. DIE A PPL IKATION - XM P P E XA M P L E Handler Registriert Broadcast zu Activities Erstellt Instanz Verbindungsaufbau Nachricht empfangen •Implementiert an •Nachricht wird •Implementiert an alle •Leitet Nachricht •Implementiert •Greift auf Methoden IXMPPUICallback.aidl Handler übergeben IXMPPService.aidl angemeldeten Smackable.java des •Stellt Nachricht auf Activities weiter •Implementiert •Verbindungsaufbau XMPPServiceCallback Screen dar XMPPServiceCallback. •Interface zu. Senden java • Empfangen •Übergibt Nachricht an Service Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 24
  • 25. SHA RE A RUN - G P S LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); lm.requestLocationUpdates("gps",5,10,locationListener); private final LocationListener locationListener = new LocationListener() { public void onLocationChanged(Location l) { l.getLatitude(); l.getLongitude(); l.getAltitude(); l.getSpeed(); Location.distanceBetween(oldLatitude, oldLongitude, newLatitude, newLongitude, result[0]); } } Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 25
  • 26. SHA RE 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 26
  • 27. SHA RE A RUN - G P S Alt  Höhenberechnung: Hyp = 11.18 5 Meter 10 Meter Long /Lat/Alt Long /Lat Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 27
  • 28. SHA RE 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 28
  • 29. SHA RE 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 29
  • 30. SHA RE A RUN – M A P V IE 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
  • 31. SHA RE A RUN – M A P V IE 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
  • 32. SHA RE A RUN – M A P V IE 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
  • 33. A NDROID P R O A N D C ON T R A
  • 34. PRO Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 34
  • 35. 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) Generated R.java  Interface Activity und Code Behind Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 35
  • 36. 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 Installation  Einfach auf Gerät zu installieren  Muss nicht Zertifiziert werden Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 36
  • 37. PRO – S DK  Zentrale Verwaltung der Activities  Einfache Benutzung mehrerer Sprachen  Automatische Verwendung  Umfangreiche Klassenbibliothek Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 37
  • 38. PRO – S DK  Übersicht aller Prozesse pro Emulator  Logging tool LogCat  Interaktion mit Device durch Emulator Control  Übersicht aller verwendeten Threads, freier und belegter Speicher und Dateien Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 38
  • 39. 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
  • 40. CONTRA Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 40
  • 41. 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  Layout-Designer unzureichend Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 41
  • 42. CONTRA – S DK  Versionen nicht kompatibel (nicht Abwärtskompatibel)  Multithreading verwirrend Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 42
  • 43. CONTRA – S DK  Lifecycle für Neueinsteiger schlecht zu durchschauen. Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 43
  • 44. 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 44
  • 45. CONTRA – DE V IC E  Keine Multi-Touch-Funktion  Relativ schlechter GPS-Empfänger Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 45
  • 46. 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 Endgerät Benutzerverwaltung Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 46
  • 47. SOL L - F E A T U R E S Sprachausgabe Geschwindigkeitsmessung Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 47
  • 48. KA NN - 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 48
  • 49. ORGA NISATION Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 49
  • 50. WIR – S HA R E A R U N 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 Nha-Phuong Nguyen | Philipp Lehmann | Robert Krüger | Stefan Zülch 50