DIPLOMARBEIT. Minh Quan Hoang

Größe: px
Ab Seite anzeigen:

Download "DIPLOMARBEIT. Minh Quan Hoang"

Transkript

1 Fakultät Informatik, Institut für Systemarchitektur, Professur Rechnernetze DIPLOMARBEIT Eingereicht von: Minh Quan Hoang Matrikel-Nr.: Konzeption und prototypische Implementierung einer Software für das Betriebssystem Android zur Messung von WLAN-Abdeckungen (Site Survey) Betreuer: Dr. rer. nat. Dietbert Gütter Betreuender HSL.: Prof. Dr. habil. Alexander Schill Abgabedatum:

2 2

3 ERKLÄRUNG Ich erkläre, dass ich die vorliegende Arbeit selbständig, unter Angabe aller Zitate und nur unter Verwendung der angegebenen Literatur und Hilfsmittel angefertigt habe. Dresden, den Minh Quan Hoang 3

4 4

5 AUFGABENSTELLUNG 5

6 6

7 DANKSAGUNG Ein herzliches Dankeschön geht an alle, die mich bei der Erstellung meiner Diplomarbeit unterstützt haben. Ganz besonders Bedanken möchte ich mich bei Herrn Prof. Dr. rer. nat. habil. Dr. h. c. Alexander Schill und Herrn Dr. rer. nat. Diebert Gütter für die tatkräftige Unterstützung und Betreuerung bei der Erstellung meiner Diplomarbeit. Vielen Dank für die hilfreichen Anregungen und die Geduld. Auch bei Herrn Dr. rer. nat. Diebert Gütter möchte ich mich nochmals für das vielen Stunden Korrekturlesen bedanken. Zudem möchte ich meinen Eltern danken, die mich nicht nur finanziell, sondern auch moralisch immer unterstützt und mir den Rücken gestärkt haben. 7

8 8

9 INHALTSVERZEICHNIS Diplomarbeit... 1 Erklärung... 3 Aufgabenstellung... 5 Danksagung... 7 Inhaltsverzeichnis... 9 Kapitel 1: Einleitung Motivation Anforderung und Zielsetzung Gliederung Kapitel 2: Grundlagen WLAN Reichweite von WLAN Dämpfung, Strahlung und Störende Einflüsse Sendeleistung Android Grundlagen und Eigenschaften von Android Programmierung für Android Verwandte Arbeit Stand der Technik Kapitel 3: Konzept Theorie der Arbeit Kapitel 4: Implementierung Überblick des Programms Darstellung das Programmlayout Layout von Programmoberfläche Layout zur Grafikdateidarstellung Funktionen Activity Initialisierung MapView Kapitel 5: Validierung und Bewertung Validierung

10 5.2. Bewertung Kapitel 6: Zusammenfassung und Ausblick Zusammenfassung Ausblick Anhang Android- Marktanteil Applikations- und Spielanzahl Wachstumsdiagramm Kostenlose und kostenpflichtige Applikationen Versionsverteilung in Abbildungsverzeichnis Tabellenverzeichnis Formelverzeichnis Code-Listing Literatur

11 KAPITEL 1: EINLEITUNG 1.1. Motivation Kaum ein Bereich der Informationstechnologie entwickelt sich gegenwärtig so sehr schnell wie Wireless - LAN (WLAN). WLAN kommt überall zum Einsatz wo Kabel unpraktisch wären. Die Forderungen von WLAN steigen immer in Richtung höheren Datendurchsatzes und größerer Reichweiten. Ein wichtiger Punkt, der im Zusammenhang mit WLAN - Netzwerken beachtet werden muss, sind die Sendeleistungen, Dämpfungen und die Reichweite von WLAN-Antennen. Demzufolge spielt die Abmessung der WLAN Signalstärke bei jeder Netzwerkinstallation eine große Rolle Anforderung und Zielsetzung Im Rahmen der Diplomarbeit sollen Möglichkeiten und Grenzen des Betriebssystems Android für o.g. Aufgabe untersucht werden. Dazu sind betriebssysteminterne Schnittstellen zu diskutieren, sowie die Nutzung frei verfügbarer Dienste, wie Google- Maps. Auf dieser Basis ist ein Programm zu realisieren, das Messwerterfassungen mit Hilfe von Smartphones bzw. Tablets realisieren kann, ebenso ein Auswerteprogramme für bürotypische Rechner. Anschließend soll eine verbesserte Version prototypisch konzipiert und implementiert werden, die eine verteilte Arbeit eines Planungsservers mit evtl. mehreren dezentralen Mess-Smartphones verwirklicht. Der Prototyp sollte für Demonstrationszwecke und für den Einsatz in der Lehre geeignet sein Gliederung In Kapitel 2 werden grundlegende Begriffe und die verwandte Forschungsarbeit erläutert. Das Kapitel bildet die Grundlagen von WLAN und Android. Kapitel 3 beschreibt die dazugehörigen Konzepte dieser Arbeit. Es befasst sich unter anderem mit dem Überblick der Arbeit und der Zusammenfassung der Grundidee. Im nächsten Kapitel (Kapitel 4) wird genauer auf die einzelnen Phasen der Implementierung eingegangen. Dabei handelt es sich um den Entwurf, die Gestaltung, das Layout sowie die Funktionen des Programms. Im vorletzten Kapitel (Kapitel 5) werden die Validierung und anschließend die Bewertung der durchgeführten Testschritte, wie zum Beispiel die Abmessung der WLANs in einem Standort, genauer beschrieben. 11

12 Im letzten Kapitel (Kapitel 6) werden nochmals alle wichtigen Punkte der Arbeit zusammengefasst. Dabei wird kurz auf die Ziele zurückgegriffen, die zu Beginn der Arbeit gesetzt wurden, welche Probleme bei den Untersuchungen entstanden, welche Lösungsvorschläge gebracht werden und welchen Ausblick es auf die Zukunft hat. 12

13 KAPITEL 2: GRUNDLAGEN 2.1. WLAN WLAN ist die Abkürzung für Wireless Local Area Network und bezeichnet ein lokales bzw. örtliches drahtloses Computernetzwerk. Heutzutage wird WLAN fast überall eingesetzt, um das Netzwerk in alle Bereiche zu tragen, ohne dabei Kabel verlegen zu müssen. WLAN ist eine sichere und einfache Lösung, um den Internet Zugang mittels eines mobilen Gerätes wie zum Beispiel: Notebook, PDA usw. zu ermöglichen. Laut [2] haben WLANs größere Sendeleistungen und Reichweiten im Gegensatz zum Wireless Personal Area Network (WPAN), und bieten im Allgemeinen höhere Datenübertragungsraten. Ein WLAN - Netzwerk basiert im Normalfall auf dem Standard "IEEE " und dessen Ergänzungen und Erweiterungen. IEEE ist die Abkürzung für "Institute of Electrical and Electronics Engineers" und stellt einen allgemein gültigen Industriestandard da. Ein WLAN-Netzwerk arbeitet mit einem sog. Frequenzband, welches sich in Abhängigkeit des eingesetzten IEEE-Standards unterscheidet. Innerhalb dieses Bandes sind die Frequenzen mit einer Breite von MHz einem Kanal zugeordnet. Das bedeutet, dass je nach IEEE-Standard eine unterschiedliche Anzahl von Kanälen zur Datenübertragung zur Verfügung steht. [1] Die folgende Tabelle zeigt die wesentlichen Unterschiede der WLAN Standards: IEEE - Standard Frequenzband Übertragungsrate Anzahl der Kanäle maximale Sendeleistung ,40 2,48 GHz 2 MBit/s a 5,15 5,725 GHz 54 MBit/s dbm (1W) b 2,40 2,4835 GHz g 2,40 2,4835 GHz 11 MBit/s dbm (100mW) 54 MBit/s dbm (100mW) Tabelle 1: Die Parameter von WLAN Standards [1,4] 13

14 In der Praxis werden die IEEE Standards auf dem WLAN Router (Access Point 1 ) eingestellt. Wenn der WLAN Adapter von dem Client ein Netzwerk findet, übernimmt er automatisch alle Parameter von WLAN wie Standard, Frequenz und Kanal. Bei WLAN Netzwerken sind die Qualität des Funkgebietes und dessen Schnelligkeit sehr wichtig. Je weiter man sich von der Sendequelle entfernt, umso geringer wird die Übertragungsgeschwindigkeit. Im Zusammenhang mit WLAN Netzwerke zu beachtende wichtige Punkte sind Reichweite, Dämpfungen und die Sendeleistungen von WLAN Antennen Reichweite von WLAN Die Reichweiten bei WLAN sind von mehreren Faktoren abhängig, z.b.: Verwendete Frequenz Das Gelände, die Sichtverhältnisse sowie der Aufstellungsort der Antenne Antennengewinn und abgestrahlte Sendeleistung Dämpfung der Kabel Qualität der Geräte (WLAN Router / Access Points) Benötigte Übertragungsbandbreite Die Reichweite des Netzwerks lassen sich durch eine externe WLAN Antenne bei vielen Access Points und WLAN - Routern deutlich erhöhen, auch die Signalqualität. Selbstverständlich steigt der Datendurchsatz dadurch in den meisten Fällen auch. Abbildung 1: Ein Access Point versorgt möglichst hohes Gebiet 1 : Der Access Point ist eine zentrale Komponente von den WLAN Installationen, dient als funktechnischer Ersatz eines Hubs und spannt eine lokale Funkzelle auf. Zum drahtgebundenen Netz übernimmt der Access Point die Funktion einer Bridge. [3] 14

15 [1] gibt an, dass ein normale IEEE WLAN Adapter ohne Besonderheiten eine Reichweite von etwa m im Freien haben. Mit aktueller Technik kann die Reichweite auf 90m in geschlossenen Räumen erhöht werden. [4] empfiehlt, dass man bei der Reichweitenbetrachtung immer eine Reserve einrechnen sollte, besonders wenn eine Verbindung über größer Strecken und im Freien aufgebaut wird, da Witterungseinflüsse, Vegetation oder sonstige Hindernisse, die eventuell auch nachträglich installiert werden, die Reichweite einschränken Dämpfung, Strahlung und Störende Einflüsse Um die Leistung anzugeben, die eine Antenne in Sende- und Empfangsrichtung bezogen auf eine Vergleichsantenne abgibt oder empfängt, benutzt man den Begriff Antennengewinn. Ein Antennengewinn wird in der Einheit dbi angegeben. Diese Angabe gibt bei WLAN-Antennen an, wie viel besser deren Sende- und Empfangsleistung ist im Vergleich zu einer Antenne, die in alle Richtungen gleichmäßig sendet [5]. Je höher der Antennengewinn desto mehr Leistung wird abgestrahlt und desto mehr wird das Empfangssignal verstärkt. Somit erhöht sich die Reichweite und der Datendurchsatz kann verbessert werden. Zur Verbesserung eine WLAN Verbindung kann es daher oft schon ausreichen, auf einer Seite der Funkverbindung eine WLAN Antenne mit höherem Gewinn zu installieren [4]. Dem Antennengewinn entgegen wirkt die Dämpfung des Antennen Kabels, der Stecker und Adapter. Je höher die Frequenz, desto größer wird die Dämpfung. Dickere Kabel haben in der Regel eine geringere Dämpfung. Um bei einem WLAN die maximale Reichweite zu erzielen, sollte man den Weg vom Sender (Router / Access Point) zur Antenne so kurz wie möglich halten und ein passendes Kabel mit niedriger Dämpfung verwenden. Abbildung 2: Diagramm zur Strahlungsintensität [2] 15

16 In der Nachrichtentechnik verwendet man oft die Maßeinheit Dezibel (db). Das Dezibel ist ein logarithmisches Maß und vereinfacht die Berechnung der Verstärkung, Leistung bzw. Dämpfung komplexer Systeme oder zusammenhängender Netzwerkkomponenten. Um die Verstärkung eines Gesamtsystems, bestehend aus Sender, Kabeln, Steckverbindungen und Antenne zu berechnen, werden lediglich die einzelnen db Werte addiert bzw. subtrahiert. Eine Veränderung um 3 db entspricht immer einer Verdoppelung bzw. Halbierung. Diese Angabe gibt bei WLAN Kabeln oder Steckern an, wie sehr sie die Funkwellen und damit die Sendeleistung dämpfen. Gewinn in db = 10 x log 10 (P Antenne / P Bezugsantenne ) Formel 1: Gewinnberechnung mittels Leistungen Die Einheit Dezibel Milliwatt (dbm) gibt einen Leistungspegel bezogen auf ein Milliwatt an. 0 dbm entsprechen einer Leistung von 1 mw. 20 dbm entsprechen 100 mw. dbm ist eine absolute Angabe. Normale WLAN Geräte senden etwa mit 17 dbm, das entspricht 50 mw. Diese Angabe gibt bei WLAN Geräten an, wie stark diese senden. [5] Allgemein können WLAN Netzwerke laut [1] durch folgende Hindernisse gestört werden: Leitbauwände (kleine Einschränkung) Metalle und Stahlbeton (große Einschränkung) Dicht belaubte Bäume (mittlere Einschränkung) Das Störpotential für WLAN Netzwerke steigt mit der elektrischen Leitfähigkeit des Störmaterials an. Je größer die Störung ist umso weiter sinkt die Sende- und Empfangsleistung und damit die Verbindungsgeschwindigkeit Sendeleistung Man bezeichnet die Sendeleistung häufig auch als Strahlungsleistung. Sendeleistung ist ein Leistungsmerkmal für jedes WLAN Gerät. [6] Je höher ihr Wert ist, desto größer ist auch die theoretische Reichweite. Die Sendeleistung wird in mw oder dbm angegeben. Die Umrechnung von mw nach dbm erfolgt über folgende Formel: L (dbm) = 10 x log 10 ( ) Formel 2: Sendeleistungsumrechnung Ein Beispiel von [6] zeigt die Berechnung der Sendeleistung aus Gerätekombination: ein Wireless Access Point D - Link DWL - 900AP+ mit einer Sendeleistung von 30 mw (ca. 14,77 db) und einer Empfindlichkeit von 79 db bei 11 Mbps, 2m langes RG

17 Kabel mit zwei Steckern, wobei das Kabel eine Dämpfung von 0,42 db aufweist und die beiden Stecker einen Verlust von 0,3 db verursachen, externe Antenne ANT mit einem Antennengewinn (Gain) von 8,5 dbi. P Sendeleistung = Ausgangsleistung Kabeldämpfung Steckerdämpfung + Antennengewinn Formel 3: Sendeleistungsberechnung aus Gerätekombination Die Sendeleistung ergibt sich: P = 14,77 db 0,42 db 0,3 db + 8,5 dbi = 22,55 db 2.2. Android Android ist eine neuartige offene und auf dem Linux Betriebssystem basierende Plattform, welche die Entwicklung neuer Software und Applikationen für Handys und das mobile Internet unterstützen wird. Diese Plattform hat Google gemeinsam mit den Partnern T Mobile, HTC, Motorola und Qualcomm entwickelt. [10] Abbildung 3: Android Plattform für Handy und Tablet [12,11] Laut [12] kaufte Google den ursprünglichen Softwareentwickler, Android Inc., im Jahr Dann hat Android den Markt revolutioniert. Angaben des Marktforschungsunternehmens Gartner zufolge hatte Android als Smartphone Betriebssystem im dritten Quartal 2011 einen weltweiten Marktanteil von 52,5 Prozent. [9] Im Dezember 2011 gab Google an, dass Android Geräte pro Tag aktiviert werden. 17

18 Abbildung 4: weltweite Marktanteil [8] gibt an, dass Android zu den innovativsten, intuitivsten und besten Betriebssystemen gehört, die es derzeit für Smartphone gibt. Der Market genannte App Store hat im Vergleich zu Apples Original aufgeholt, hat überdurchschnittlich viele kostenlose Anwendungen und mit dem Rückgaberecht die fairsten Bedingungen zu bieten. Im Anhang 1 werden weitere Informationen für das Betriebssystem Android beschrieben Grundlagen und Eigenschaften von Android Android - Versionen In der nachfolgenden Tabelle werden alle Versionen von dem Android System mit Standard Funktionen sowie die Neuerungen aufgeführt: [9] Version Name Veröffentlichung Wesentliche Neuerungen Februar 2009 Speichern von MMS-Anhängen 1.5 Cupcake 30. April 2009 automatischer Wechsel zwischen Hoch- und Querformat Bildschirm-Tastatur Aufnahme und Wiedergabe von Videos automatisches Verbinden und Stereo für Bluetooth 2 : 18

19 weitere Sprachen neben Englisch und Deutsch 1.6 Donut 15. September 2009 Virtual Private Networks konfigurierbar differenzierte Energieverbrauchssteuerung Suchfunktion quellenübergreifend und selbstoptimierend Text-to-Speech, Gestenerkennung und mehr als eine Bildschirmauflösung 2.0 Eclair 26. Oktober 2009 Digitalzoom und Unterstützung von Blitzlicht Unterstützung von Microsoft Exchange Bluetooth Januar 2010 animierte Hintergrundbilder Informationen zur Signalstärke Erweiterungen von Webkit (HTML5- Unterstützungen, WebStorage, Geolocation, Video ) IPv6-Unterstützung 2.2 Froyo 20. Mai 2010 Linux-Kernel , der weniger Arbeitsspeicher benötigt Verwendung von Arbeitsspeicher, der größer als die bisher nutzbaren 256 MByte ist. JIT-Compiler, Erweiterungen für OpenGL ES 2.0, Unterstützung von Flash 10.1 Tethering Speicherbarkeit von Apps auf der SD-Karte (App2SD) Android Cloud to Device Messaging Framework: Möglichkeit, PUSH in die eigenen Anwendungen zu implementieren. Bluetooth-Sprachwahl September 2010 Bugfixes Januar 2011 Fix für SMS-Bug 2.3 Gingerbread 6. Dezember 2010 Linux-Kernel Unterstützung von WebMUnterstützung von HTML5 Audio 19

20 Unterstützung von Google TV Unterstützung von Near Field Communication Parallele Garbage Collection für ruckelfreiere Animationen verbesserte Integration von sozialen Netzwerken Unterstützung von Gyroskopen (nicht zu verwechseln mit Bewegungssensoren) und anderen Sensoren (u. a. Barometer, Schwerkraftsensor) integrierter SIP-Client für VoIP integrierter Downloadmanager Unterstützung des Ext4-Dateisystems Dezember 2010 Bugfixes Update auf Google Maps Januar 2011 Fix für SMS-Bug Februar 2011 verbesserte Dual-Core-Unterstützung Unterstützung von Dual-Core-Apps auf Single- Core-Geräten verbesserte Unterstützung der NFC-Technik verbesserte Bluetooth-Unterstützung kleinere Verbesserungen April 2011 Video- und Voice-Chat mit Google Talk verschlüsselte Übertragung von Terminen und Kontakten Bugfixes Juli G Fixes Tweaks und volle Unterstützung für den NFC- Transceiver Bugfixes September 2011 Voice-Search-Fix Bugfixes September 2011 Bugfixes 20

21 3.0 Honeycomb 23. Februar 2011 benutzerfreundlichere Oberfläche verbesserte Unterstützung für Tablet- Computer Google Talk mit Videotelefonie neue Browser-Funktionen: Synchronisierung der Lesezeichen mit Google Chrome, Tabs. automatisches Ausfüllen von Formularen und Inkognito-Modus beim Surfen Mai 2011 USB-Host-Modus Verbesserungen an Benutzeroberfläche und Widgets Verbesserungen und Erweiterungen am Browser eigene Proxyeinstellungen für jedes WLAN Juli 2011 verbesserte Anpassung an Tablet-Computer mit einer Bildschirmdiagonale von 7 Zoll neuer Kompatibilitätsmodus zur besseren Darstellung von Apps, die für kleinere Bildschirmauflösungen programmiert wurden Media sync from SD card : Ermöglicht Apps den direkten Zugriff auf Multimedia-Dateien der eingelegten SD-Karte z. B. zur Synchronisation erweiterte CPU-Hardware-Unterstützung Funktionen für Entwickler, um ihre Apps besser an verschiedene Bildschirmauflösungen anpassen zu können September 2011 Bugfixes 4.0 Ice Cream Sandwich 19. Oktober 2011 Zusammenführung der Entwicklungslinien 2.x und 3.x und Google TV. Linux-Kernel verbessertes Multitasking NFC für Kontakte, Daten und Links mit Android Beam Entsperren per Gesichtserkennung 21

22 verbesserter Browser, verbesserte Google- Mail-, Galerie- und Kalender-App Data Tracking App native Funktion zum Erstellen von Screenshots viele Detailverbesserungen November 2011 erste Version (Build ITL41D) für das Galaxy Nexus Behebung des Volume-Bugs in Build ITL41F Dezember 2011 Mobile Hotspot bei Benutzung von VPN optimiert Kernel version G/4G-Verbindungen für schnellere Reaktionszeiten optimiert falsche Benachrichtigung, dass Datenverbindung wegen Roaming unterbrochen wurde behoben Verbesserung bestimmter optischer Effekte bei Benutzung des Camcorders mit der Frontkamera optische Verbesserungen des Lockscreens Problem mit nicht korrekt angezeigten/öffnenden -Anhängen behoben DivX-Unterstützung wurde entfernt Verbesserte Lautstärke bei der turn-by-turn- Navigation von Google Dezember 2011 neue APIs erste offizielle Version für das Nexus S Source für Dritthersteller (Samsung, Motorola, usw.) Februar 2012 verbesserte Performance diverse Bugfixes automatische Helligkeitssteuerung wurde verbessert 22

23 allgemeine Lautstärke wurde erhöht Multitouch-Bug behoben Version bisher nur für das Galaxy Nexus (Verizon LTE) Tabelle 2: alle Android Versionen im Überblick [9] Abbildung 5: Das Prozent des Versionsanteils in 2012 [14] Android - Architektur Android basiert auf dem Linux 2.6 Kernel [15], ist in der Programmiersprache Java programmiert und wird unter der Apache v2 open source license zu vertreiben sein [10]. Es sind die wichtigsten bereits bekanntgegebenen Merkmale der neuen Open Source Plattform Android. Der Linux Kernel regelt die Prozessverwaltung und Datenverwaltung. Im Kernel sind die meisten wichtigen Treiber abgelegt und zur Verfügung gestellt, welche die einzelnen Hardware Komponenten benötigen, z.b.: die Treiber von der Kamera, die WLAN - Treiber, die Tastatur Treiber Laut [7] greifen die Anwendungsschicht 3 und der Anwendungsrahmen 4 von Android auf eine Menge von Basisbibliotheken zu, die in den folgenden Abschnitten detailliert beschrieben werden. Diese Bibliotheken stellen alle zum Betrieb von Android- Anwendungen erforderlichen Funktionalitäten (Datenbank, 3D-Grafikbibliotheken, Webzugriff, Multimedia-Verwaltung, Oberflächengestaltung...) bereit. 3 : Application 4 : Application Framework 23

24 Die Standardbibliotheken 5 sind fester Bestandteil des Systems und können von Anwendungsentwicklern nicht geändert werden. Der Anwendungsrahmen ist die für Android-Entwickler interessanteste Schicht des Systems. Android stellt verschiedene Programmierschnittstellen bereit, die eine Kommunikation zwischen einzelnen Anwendungen sowie zwischen Endanwender und Anwendung realisieren. Auf der obersten Ebene des Systems befinden sich die Android-Anwendungen. Innerhalb der Anwendungsschicht findet die Kommunikation zwischen Mensch und Maschine sowie Interaktionen zwischen Anwendungen statt. Jede Anwendung bedient sich dabei der darunterliegenden Programmierschnittstelle. Kern der Laufzeitumgebung 6 bildet die Dalvik Virtual Machine (DVM). Wird eine Android-Anwendung gestartet, so läuft sie in einem eigenen Betriebssystemprozess. Android spendiert jeder Anwendung darüber hinaus noch eine eigene DVM. Dieses Diagramm beschreibt nochmals die wichtigsten Softwarekomponenten von Android: Abbildung 6: Android Software Stack [developer.android.com] 5 : Libraries 6 : Android Runtime 24

25 Programmierung für Android Android Toolkit Android Developer Tools (ADT) ist ein Plugin für Eclipse und bietet eine Menge von Programmierungswerkzeuge, die mit der Eclipse IDE 7 integriert sind. Es ermöglicht viele Zugriffe, um die Android Applikationen schnell und einfach zu entwickeln. ADT bietet GUI 8 -Zugriff auf viele SDK 9 Tools - Kommandozeilen sowie ein UI 10 -Design- Werkzeug für den Prototyp, die Konzeption und den Aufbau von der Benutzeroberfläche der Anwendung. Mit SDK wird dem Entwickler alles angeboten, was er benötigt, um eine lauffähige Android Anwendung entwickeln zu können. Das Android SDK enthält einen Emulator für mobile Geräte - ein virtuelle mobile Gerät, der auf Ihrem Computer ausgeführt wird. Mit dem Emulator können Android - Anwendungen ohne ein physisches Gerät entwickelt und getestet werden. Abbildung 7: ein Android Emulator 7 : integrierte Entwicklungsumgebung 8 : grafische Benutzeroberfläche 9 : Software Development Kit 10 : Benutzerschnittstelle 25

26 Die wichtigen Eigenschaften von Android SDK sind: [16] XML-basiertes GUI-Layout (Trennung von Logik und Layout) Unterstützung zur automatischen Anpassung an verschiedene Konfigurationen (Sprache, Display, usw...) Integration von Ressourcen (Grafiken, Audiodateien, XML-Dateien, usw...) Internet-Kommunikation: TCP/IP, UDP und darauf basierende Protokolle Ad-Hoc Netzwerk: Bluetooth (RFCOMM bzw. SPP seit 2.0) Location API 11 Kartendarstellungen (Google Maps) Zugriff auf Sensoren und Aktoren DBMS 12 (SQLite) Wiedergabe verschiedener Medien-Formate Aufnahme von Fotos und Videos Komponententechnologie Die Dalvik Virtual Machine Die Dalvik Virtual Machine 13 stellt das Herzstück der Android-Laufzeitumgebung dar und basiert auf der quelloffenen JVM Apache Harmony 14, wurde aber in Aufbau und Funktionsumfang an die Anforderungen mobiler Endgeräte angepasst. [7] Die Dalvik VM ist eine für mobile Geräte entwickelte Java Virtual Machine (JVM). Die Dalvik Virtual Machine besitzt einen eigenen Bytecode, was sie von vielen anderen JVMs unterscheidet. Dalvik kann mit dem Programm dx herkömmliche CLASS-Dateien von Java in DEX-Dateien konvertieren (Dalvik Executable). Dabei werden mehrere CLASS-Dateien zu einer DEX-Datei zusammengefasst und einige Optimierungen bezüglich des Speicherbedarfs vorgenommen. Das Dalvik Cache Verzeichnis beinhaltet alle vorkompilierten DEX-Dateien, die von den APK- und JAR-Dateien auf dem Android Phone erstellt wurden. Diese Dateien werden immer dann generiert, wenn die Dalvik 11 : Schnittstelle zur Anwendungsprogrammierung 12 : Datenbankmanagementsystem 13 : wurde von einem Google-Mitarbeiter namens Dan Bornstein entwickelt 14 : ein Projekt der Apache Software Foundation 26

27 Virtual Machine entdeckt, dass die existierende DEX-Datei mit einer älteren Version erstellt wurde. Daher dauert häufig der erste Start, nachdem man ein neues ROM geflasht hat, etwas länger, weil er dann zuerst alle neuen DEX-Dateien erstellen muss. [15] Abbildung 8: der Weg von der Erstellung bis zur Ausführung im Android Gerät [7] Bestandteile einer Android Anwendung Anwendungen, die mit dem Anwender interagieren, brauchen mindestens eine Activity, um eine Oberfläche darzustellen. Activities sind sichtbar und können miteinander zu einer komplexeren Anwendung verknüpft werden. Sie kümmern sich um die Darstellung von Daten und nehmen Anwendereingaben entgegen. Sie sind jedoch Komponenten einer Anwendung, die mehr machen als die reine Darstellung von Daten und Formularen. [7] Abbildung 9: Activity Stack [Christian Baumann, Seminar Android ] 27

28 Abbildung 10: Activity Ablaufdiagramm [http://developer.android.com/guide/topics/fundamentals.html] Wenn man einen Dienst starten möchte, der eigenständig im Hintergrund läuft und beliebigen Anwendungen zur Verfügung steht, dann verwendet man einen Prozess. In Android realisiert man einen solchen Prozess durch eine spezielle Art von Service. [7] Dieser Service hat eine klar definierte Aufgabe und ist ein eigenständiger Programmteil, welcher für andere Anwendungen wiederverwendet werden kann. Zur Unterscheidung verwendet man die beiden Begriffe Local Service und Remote Service. Local Service ist ein Service, der im gleichen Prozess wie die Anwendung läuft, die den Service startet. Remote Service ist ein Android-Service, der in einem eigenen Prozess läuft. 28

29 Abbildung 11: die Kommunikation über Inter-Process Communication (IPC) [7] Viele Anwendungen bieten die Möglichkeit, Daten zu laden oder zu speichern. Ein Content Provider verwaltet Daten und abstrahiert die darunterliegende Persistenzschicht. Er kann über Berechtigungen seine Daten einer bestimmten Anwendung oder auch vielen Anwendungen zur Verfügung stellen. Er hat eine definierte Schnittstelle und wird darüber lose an Anwendungen gekoppelt. Abbildung 12: Conten Provider und Content Resolver [7] Durch die komponentenbasierte Anwendungsentwicklung unter Android ist es notwendig, zwischen Betriebssystem und Anwendungen zu kommunizieren. Auch die Kommunikation zwischen Anwendungen ist möglich. Intents werden als Verbindung zum Objekte zur Nachrichtenübermittlung bezeichnet. Broadcast Receiver lauschen jedoch als Komponente auf Broadcast Intents, die auf Systemebene verschickt werden und z.b. über Störungen der Netzwerkverbindung informieren oder über einen schwachen Akku Verwandte Arbeit Stand der Technik Es gibt relative viele Android - Programme, die alle WLANs von dem aktuellen Standort herausfindet und deren Signalstärke analysiert. Diese Programme wurden in Android Market veröffentlicht und beschrieben. Wifi Analyzer ist ein kostenloses 29

30 Beispiel. Dies wurde über Mal heruntergeladen und bewertet. Es berichtet den Name, Adresse, Signalstärke in dbm und Kanal aller Access Points innerhalb der Reichweite. Auch die Grafikdarstellung ist möglich. Abbildung 13: Wifi Analyzer Screenshots [https://market.android.com/] 30

31 KAPITEL 3: KONZEPT THEORIE DER ARBEIT In diesem Kapitel wird vorab versucht, den Überblick der Arbeit zu beleuchten. Es beschreibt die Grundidee, wie die WLAN Netze gescannt und bewertet werden, sowie die Abmessungsorten zu navigieren sind. Mit Hilfe von Android Toolkit werden die Informationen von allen verfügbaren Netzen (SSID 15, Signalstärke ) bereitgestellt. Zum Beispiel android.net.wifi.wifimanager - diese Klasse stellt die primäre API 16 für die Verwaltung aller Aspekte der WLAN Konnektivität zur Verfügung. Die Instanz dieser Klasse wird durch den Aufruf Context.getSystemService (Context.WIFI_SERVICE) geholt. Die Wi-Fi-APIs stellen ein Mittel, mit denen Anwendungen mit der unteren Ebene Wireless-Stack, die Wi-Fi- Netzwerk Zugriff kommunizieren können. Fast alle Informationen aus dem Gerät Bittsteller ist, darunter auch das angeschlossene Netzwerk die Verbindungsgeschwindigkeit, IP-Adresse, Verhandlungs-Zustand, und mehr, sowie Informationen zu anderen Netzwerken, die verfügbar sind. Einige andere API- Funktionen beinhalten die Möglichkeit zu scannen, zu ergänzen, zu speichern, beenden und starten Wi-Fi-Verbindungen. Tabelle 3: android.net.wifi Paket [http://developer.android.com/reference/android/net/wifi/package-summary.html] 15 : Service Set Identifier 16 : Application Programming Interface 31

32 GPS 17 ist kaum verfügbar in Gebäuden. Es ist nur geeignet auf den Straßen, Wegen, Garten, Wiesen und die Exaktheit von GPS Navigation ist relativ niedrig für diese Arbeit. Deshalb wird ein Lageplan vorausgesetzt, um jede Messungsstelle vom Nutzer zu bestimmen. Das Programm soll die Pläne grafisch laden und anzeigen können. Die auf dem Handydisplay dargestellten Bilder müssen zur genaueren und einfachen Nutzung vergrößert bzw. verkleinert sowie hin- und hergeschoben werden können, damit der Nutzer anhand der Lageplänen seine aktuelle Position orten kann. Abbildung 14: Konzept des Programms Nachdem das Programm beendet, werden alle herausgefundenen Informationen der verfügbaren Netze (nummerierte Stelle, SSID, Signalstärke von jeweiligem Netz) in eine Text Datei gespeichert und die entsprechenden Stellen in eine Image Datei als Überblick beschrieben. Für jedes Netz erzeugt das Programm zur Auswertung eine grafische Darstellung (Image) mit allen gescannten Stellen und deren Signalstärken. 17 : Global Positioning System 32

33 KAPITEL 4: IMPLEMENTIERUNG Diese Arbeit wird in Java programmiert, deren Hauptteil unter Verwendung des Android Tookits (ADT) die Darstellungs- und Abmessungsaufgabe haben soll. Das Android Toolkit wird als Grundlage dieser Implementierung genutzt, da es bereits einen Großteil der benötigten Infrastruktur zur Umsetzung des Konzeptes bereitstellt. Zum Speichern der Ergebnisse als Dateien benötigt es das java.io Paket Überblick des Programms Dieses Programm hat zwei Hauptdisplays. Eines ist zum Bilderladen ( MainActivity mainactivity.java) und das andere zum Darstellen des Bildes mit Schieben- und Zoommodus ( MapView mapview.java). Die entsprechenden Layouts der Displays befinden sich im Ordner res/layout befindlichen XML Dateien (main.xml und map.xml). Der Ordner res/drawable enthält die Bilder und Dateien zur Darstellung des Zustandes von den Buttons normal und gedrückt. Der Signalmessungsvorgang nutzt 2 Pakete, um die APIs für das Scannen und Messen aufzurufen: import android.net.wifi.scanresult; import android.net.wifi.wifimanager; Listing 1: Zwei wichtige Android Pakete zum Scannen Die Netzinformationen und Signalkoordinate werden in WifiResult Klasse gespeichert: public class WifiResult { ScanResult result = null; Point point; int count; public WifiResult() { public void setresult(scanresult result) { this.result = result; public ScanResult getscanresult() { return result; public String getssid() { if (result!= null) return result.ssid; else return null; public int getlevel() { if (result!= null) return result.level; else return 0; public void setpoint(point point) { this.point = point; public Point getpoint() { 33

34 return point; public void setcount(int count) { this.count = count; public int getcount() { return count; Listing 2: WifiResult class zum Speichern der Informationen von den WLAN - Netzen 4.2. Darstellung das Programmlayout Die Elemente von den Eingabemasken werden in die XML Datei definiert. Beim Erstellen eines Android Projekts wird automatisch ein LinearLayout mit vertikaler Ausrichtung gewählt. Pro Bildschirmseite muss eine XML - Datei im Verzeichnis res/layout erstellt werden. Von dort wird sie, identifiziert durch ihren Dateinamen, beim Start ihres Activity eingelesen und angezeigt Layout von Programmoberfläche <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingtop="150dip" android:paddingbottom="30dip" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" </LinearLayout> Listing 3: Programm Layout Layout zur Grafikdateidarstellung Nachdem Laden des Bildes wird dies (imageview) mit 4 Richtungsbuttons (left_arrow, right_arrow, top_arrow, bottom_arrow) und 2 Zoombuttons (zoom_in, zoom_out) auf dem Display angezeigt. <ImageView android:layout_width="fill_parent" android:layout_height="fill_parent" /> <RelativeLayout android:layout_width="fill_parent" 34

35 android:layout_height="fill_parent" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centervertical="true" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentright="true" android:layout_centervertical="true" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparenttop="true" android:layout_centerhorizontal="true" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:layout_centerhorizontal="true" /> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignparentbottom="true" android:layout_alignparentright="true" android:orientation="vertical" android:padding="10dip" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> </RelativeLayout> </FrameLayout> Listing 4: Button Layout definieren 35

36 Abbildung 15: Programmansicht nach dem Laden des Plans 4.3. Funktionen Activity Initialisierung Activities werden von android.app.activity abgeleitet. Neben dieser Standard - Implementierung stellt die Android-API Activities für unterschiedliche Aufgaben bereit. Zuerst erzeugt die Methode oncreate ein Activity und ruft die Datei main.xml für sein Layout public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); buttonchoose = (Button) findviewbyid(r.id.button); buttonchoose.setonclicklistener(new View.OnClickListener() public void onclick(view arg0) { Intent intentselect = new Intent(Intent.ACTION_GET_CONTENT); intentselect.settype("image/*"); startactivityforresult( Intent.createChooser(intentSelect, "Select image"), REQUEST_PHOTO_SELECT); ); Listing 5: Display zum Laden eines Bildes Der Button wird auf dem Display mit einem Ereignis dargestellt, bei dem durch Betätigung des Buttons die Bilder aus der Galerie zur Auswahl stehen. Nachdem ein 36

37 Bild gewählt wurde, wird ein Intent 18 initialisiert, um dieses Bild durch den Aufruf des MapView zu veranschaulichen und den Bilderpfad zu protected void onactivityresult(int requestcode, int resultcode, Intent data) { if ((resultcode == RESULT_OK) && (requestcode == REQUEST_PHOTO_SELECT)) { String path = data.getdata().tostring(); Intent intent = new Intent(); intent.setclass(getapplicationcontext(), com.demo.wifiscanner.mapview.class); intent.putextra("path", path); startactivity(intent); Listing 6: Intent initialisieren MapView MapView enthält die Hauptfunktionen des Programms wie Bilderdarstellung, Zoom (In/Out), Bilderverschiebung und Signalstärkemessung MapView initialisieren Am Anfang entfernt das Programm den Android Titel, setzt den Bildschirm in Fullscreen Modus und holt das zugehörige Layout. requestwindowfeature(window.feature_no_title); getwindow().setflags(windowmanager.layoutparams.flag_fullscreen, WindowManager.LayoutParams.FLAG_FULLSCREEN); setcontentview(r.layout.map); Listing 7: Bild mit Layout Um das Bild richtig passend mit dem Bildschirm anzuzeigen, muss das Programm über die Auflösung von dem Standard Display erfahren, durch den Aufruf der Methode getdefaultdisplay() von android.view.windowmanager. Bei jedem Drücken des Bewegungsbuttons wird das Bild um ein Viertel der Bildschirmlänge gezogen. Alle Buttons werden aus der XML Datei durch die eindeutige Identifizierung gefunden und deren Aktion dann aktiviert. Display display = getwindowmanager().getdefaultdisplay(); screen.x = display.getwidth(); screen.y = display.getheight(); movex = (int) screen.x / 4; movey = (int) screen.y / 4; imageview = (ImageView) findviewbyid(r.id.imageview); Bundle extras = getintent().getextras(); if (extras == null) finish(); String path = extras.getstring("path"); mapbitmap = getbitmap(path); imageview.setimagebitmap(mapbitmap); 18 : Ein Intent repräsentiert einen konkreten Aufruf eines anderen Activity, eines Hintergrundprozesses oder einer externen Anwendung. [7] 37

38 imagedis.x = mapbitmap.getwidth(); imagedis.y = mapbitmap.getheight(); leftarrow = (ImageView) findviewbyid(r.id.left_arrow); rightarrow = (ImageView) findviewbyid(r.id.right_arrow); toparrow = (ImageView) findviewbyid(r.id.top_arrow); bottomarrow = (ImageView) findviewbyid(r.id.bottom_arrow); ImageView zoomin = (ImageView) findviewbyid(r.id.zoom_in); ImageView zoomout = (ImageView) findviewbyid(r.id.zoom_out); imgarrow = BitmapFactory.decodeResource(getResources(),R.drawable.top_arrow); zoomlayout = (LinearLayout) findviewbyid(r.id.zoom); leftarrow.setonclicklistener(this); rightarrow.setonclicklistener(this); toparrow.setonclicklistener(this); bottomarrow.setonclicklistener(this); zoomin.setonclicklistener(this); zoomout.setonclicklistener(this); Listing 8: Bildschirmeinstellung Bild aus der Galerie holen Diese Methode liefert den Typ Bitmap, wenn das zu ladende Bild ausgewählt wurde. Der Bilderpfad wird als URI formatiert. Dann wird das Bild dekodiert, um den Speicher zu optimieren. In diesem Fall ist ein Halbe von dem Original. private Bitmap getbitmap(string path) { Uri uri = Uri.parse(path); ContentResolver cr = this.getbasecontext().getcontentresolver(); InputStream is = null; try { is = cr.openinputstream(uri); BitmapFactory.Options opt = new BitmapFactory.Options(); opt.insamplesize = 2; bmp = BitmapFactory.decodeStream(is, null, opt); is = null; return bmp; catch (FileNotFoundException e) { e.printstacktrace(); return null; Listing 9: Bild holen und dekodieren Darstellung der Touchposition auf dem Bild Die Methode drawoverlay hat die Aufgabe, die Scananzahl und deren Koordinate auf dem Bild mapbitmap zu schreiben. private Bitmap drawoverlay(bitmap mapbitmap, Bitmap overbitmap, int pointx, int pointy) { Bitmap bitmap = Bitmap.createBitmap(mapBitmap.getWidth(), mapbitmap.getheight(), Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawbitmap(mapbitmap, 0, 0, null); canvas.drawbitmap(overbitmap, pointx - 30, pointy - 20, null); Paint paint = new Paint(); paint.setcolor(color.red); paint.settextsize(25); paint.setantialias(true); canvas.drawtext(string.valueof(count), pointx - 45, pointy + 20, paint); BitmapDrawable drawable = new BitmapDrawable(bitmap); 38

39 return drawable.getbitmap(); Listing 10: Touchkoordinate auf dem Bild schreiben Signalstärkemessung Zuerst holt das Programm die Informationen (WLAN SSID, Koordinate, Scananzahl). private void checksignalstrength(int pointx, int pointy) { count++; List<ScanResult> results; wifimanager = (WifiManager) getsystemservice(wifi_service); results = wifimanager.getscanresults(); if (results!= null) { for (ScanResult result : results) { String ssid = result.ssid; if (!ssidarray.contains(ssid)) { ssidarray.add(ssid); WifiResult wifiresult = new WifiResult(); wifiresult.setresult(result); wifiresult.setpoint(new Point(pointX, pointy)); wifiresult.setcount(count); resultsarray.add(wifiresult); resultstr += "Point: " + count + ", SSID: " + result.ssid + ", Signal strength: " + result.level + "dbm\r\n"; else { resultstr += "Point: " + count + " No signal"; Listing 11: Scaninformationen speichern Dann zeigt das Programm einen Kreis auf dem Bildschirm, wo Touchposition ist. Eine Meldung erscheint auch, dass der Scanprozess erfolgreich ist, und gibt die Möglichkeit, das Programm zu beenden bzw. mit dem Scan fortzusetzen oder den Kommentar hinzuzufügen. Bitmap strengcheck = BitmapFactory.decodeResource(getResources(),R.drawable.streng_check); mapbitmap = drawoverlay(mapbitmap, strengcheck, pointx, pointy); imageview.setimagebitmap(mapbitmap); AlertDialog.Builder builder = new Builder(this); builder.setmessage(arlet_message_done); final EditText edittext = new EditText(this); builder.setview(edittext); builder.setpositivebutton("yes", new DialogInterface.OnClickListener() public void onclick(dialoginterface arg0, int arg1) { String input = edittext.gettext().tostring().trim(); if (input.length()!= 0) input = "Comment: " + input + "\n"; resultstr += input; flag = true; ); builder.setnegativebutton("no", new DialogInterface.OnClickListener() public void onclick(dialoginterface dialog, int which) { processexit(); return; 39

40 ); AlertDialog dialog = builder.create(); dialog.show(); Listing 12: Scanposition anzeigen Abbildung 16: Scanposition und Prozessmeldung Zuordnung der Signalstufe Um die Signalstärke (in dbm) grafisch einzustufen, habe ich andere Programme von Android Markt angeschaut, die WLAN Signalstärke messen und bewerten, wie viel dbm einem starken Signal oder niedrigen entsprechen. Zum Beispiel: Wi-Fi Analytics, WiEye, Wifi Analyzer 40

41 Abbildung 17: Beispiele für die Zuordnung der Signalstärke [Androit - Market] private Bitmap getbimaplevel(int level) { Bitmap streng1 = BitmapFactory.decodeResource(getResources(),R.drawable.streng1); Bitmap streng2 = BitmapFactory.decodeResource(getResources(),R.drawable.streng2); Bitmap streng3 = BitmapFactory.decodeResource(getResources(),R.drawable.streng3); Bitmap streng4 = BitmapFactory.decodeResource(getResources(),R.drawable.streng4); Bitmap streng5 = BitmapFactory.decodeResource(getResources(),R.drawable.streng5); Bitmap strengx = BitmapFactory.decodeResource(getResources(),R.drawable.strengx); if (level >= -60) { return streng1; else if (level >= -75) { return streng2; else if (level >= -85) { return streng3; else if (level >= -90) { return streng4; else { return streng5; Listing 13: Zuordnung der Signalstärke Imagedatei erzeugen Um alle WLAN Netze auszuwerten, erzeugt das Programm für jedes Netz auf dem Speicher eine Imagedatei mit zugehörigen Scanstellen und grafisch dargestellte Signalstärke entsprechend. private void saveimage() { int n = ssidarray.size(); for (int i = 0; i < n; i++) { String SSID = ssidarray.get(i); Bitmap bitmap = Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); canvas.drawbitmap(bmp, 0, 0, null); Paint paint = new Paint(); paint.setcolor(color.red); paint.settextsize(25); 41

42 paint.setantialias(true); for (WifiResult result : resultsarray) { if (result.getssid().equals(ssid)) { Point point = result.getpoint(); canvas.drawbitmap(getbimaplevel(result.getlevel()), point.x - 30, point.y - 20, null); canvas.drawtext(string.valueof(result.getcount()), point.x - 45, point.y + 12, paint); BitmapDrawable drawable = new BitmapDrawable(bitmap); writebitmaptosdcard(drawable.getbitmap(), SSID); writebitmaptosdcard(mapbitmap, "map"); Listing 14: Imagedateien speichern Erstellung des Bildordners Damit der Nutzer die Dateien einfach findet und verwaltet, wird der Ordner mit dem Format von Datum und Uhrzeit erstellt. private String getpath() { SimpleDateFormat formattitle = new SimpleDateFormat("ddMMHHmm"); long time = System.currentTimeMillis(); if (Environment.getExternalStorageState().equals( Environment.MEDIA_MOUNTED)) { String foderpath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/" + FODER_NAME + "/" + formattitle.format(time); return foderpath; else return null; Listing 15: Ordnererstellung Imagedatei speichern Das Image wird mit höchster Qualität komprimiert, indem der Qualitätsparameter auf 100 gesetzt wurde, und dann als JPEG an den Ausgabestrompuffer übergeben. try { out = new FileOutputStream(file.toString() + "/" + filename + ".jpg"); BufferedOutputStream bos = new BufferedOutputStream(out); bitmap.compress(bitmap.compressformat.jpeg, 100, bos); bos.close(); bos = null; out.flush(); out.close(); catch (Exception e) { isdone = false; Listing 16: Imagedatei speichern 42

43 Touch Ereignis erkennen Die Methode public boolean ontouchevent(motionevent event) prüft ob der Nutzer auf dem Display drückt. Die Zeigervariable coordinate wird genutzt, um die relative Koordinate zwischen dem Display und dem anzuzeigenden Bild zu bestimmen. Am Anfang sind coordinate.x und coordinate.y gleich Null wie die untere Abbildung, da die Abweichung 0 Pixel ist. Handydisplay Das Bild Abbildung 18: Relation zwischen Display und Bild Jede Bildverschiebung wird die Variable coordinate entsprechend geändert, um bei jeder Messung die Koordinate vom Bild aus der Koordinate von dem Bildschirm zu berechnen. Wenn man auf dem schwarzen Feld toucht, wo auf dem Display und außerhalb des Bilds ist, wird die Signalstärke nicht gemessen. Die Variable ratio ist ein Verhältnis zwischen dem Display und dem Bild, um die Koordinate nach dem Zoomen nochmals zu bestimmen. if (event.getaction() == MotionEvent.ACTION_DOWN &&!isbuttonarea((int) event.getx(), (int) event.gety()) && flag) { if (zoomin) { int touchx = coordinate.x + (int) event.getx(); int touchy = coordinate.y + (int) event.gety(); if (touchx > 10 && touchx < imagedis.x - 10 && touchy > 10 && touchy < imagedis.y - 10) { checksignalstrenght(touchx, touchy); flag = false; else { ratio = (float) imagedis.x / screen.x; int checkstart = (int) (screen.y - imagedis.y / ratio) / ; int checkend = screen.y - checkstart; final int touchx = (int) (event.getx() * ratio); final int touchy = (int) ((event.gety() - checkstart) * ratio); if (event.gety() > checkstart && event.gety() < checkend) { checksignalstrenght(touchx, touchy); flag = false; 43

44 else { ratio = (float) imagedis.x / screen.x; int checkstart = (int) (screen.y - imagedis.y / ratio) / ; int checkend = screen.y - checkstart; final int touchx = (int) (event.getx() * ratio); final int touchy = (int) ((event.gety() - checkstart) * ratio); if (event.gety() > checkstart && event.gety() < checkend) { checksignalstrenght(touchx, touchy); flag = false; Listing 17: Koordinate berechnen Buttonfelder prüfen Um die Buttons funktionierend zu gewährleisten, werden alle Buttonfelder für den Scanprozess gesperrt und nur für die Zoom- und Bewegungs-funktion des Bildes aktiviert. Deswegen hat die Methode isbuttonarea diese Felder zu berechnen und prüft ob der Nutzer auf diesen gedrückt hat. private boolean isbuttonarea(int x, int y) { int spacing = 20; Point arrow = new Point(); Point zoom = new Point(); arrow.x = imgarrow.getwidth() + spacing; arrow.y = imgarrow.getheight() + spacing; zoom.x = zoomlayout.getwidth(); zoom.y = zoomlayout.getheight(); boolean istoparea = (((int) (screen.x - arrow.x) / 2) < x && x < (((int) (screen.x - arrow.x) / 2) + arrow.x))&& y < arrow.y; boolean isleftarea = (((int) (screen.y - arrow.x) / 2) < y && y < (((int) (screen.y - arrow.x) / 2) + arrow.x))&& x < arrow.y; boolean isbottomarea = (((int) (screen.x - arrow.x) / 2) < x && x < (((int) (screen.x - arrow.x) / 2) + arrow.x))&& y > (screen.y - arrow.y); boolean isrightarea = (((int) (screen.y - arrow.x) / 2) < y && y < (((int) (screen.y - arrow.x) / 2) + arrow.x))&& x > (screen.x - arrow.y); boolean iszoomarea = x > (screen.x - zoom.x) && y > (screen.y - zoom.y); return (istoparea isleftarea isbottomarea isrightarea iszoomarea); Listing 18: Buttonfelder prüfen Bildervergrößerung Bei der Bildervergrößerung wird die relative Koordinate zwischen dem Display und dem anzuzeigenden Bild coordinate auf null gesetzt. Das heißt, das zu vergrößernde Bild wird wieder wie die Abbildung 16 angezeigt werden sollte. Dies erscheint auf dem Bildschirm mit seiner originalen Auflösung, indem das Programm die Methode imageview.setscaletype(scaletype.matrix); aufruft. private void zoomimage(boolean iszoomin, ImageView imageview, Bitmap bitmap) { if (iszoomin) { coordinate.set(0, 0); imageview.setscaletype(scaletype.matrix); imageview.setimagematrix(matrix); else { matrix.reset(); 44

45 coordinate.set(0, 0); imageview.setscaletype(scaletype.fit_center); imageview.setimagebitmap(bitmap); Listing 19: Bildervergrößerung Bilderverschiebung Je nachdem wohin das Bild durch Variable mode verschoben werden soll, wird die Koordinate berechnet und zieht das Programm das Bild entsprechend mithilfe der Methode matrix.posttranslate(). Danach gibt das Programm das verschobene Bild aus. private void moveimage(int mode) { savedmatrix.set(matrix); imageview.setscaletype(scaletype.matrix); matrix.set(savedmatrix); switch (mode) { case TOP: matrix.posttranslate(0, -movey); coordinate.y += movey; break; case LEFT: matrix.posttranslate(-movex, 0); coordinate.x += movex; break; case RIGHT: matrix.posttranslate(movex, 0); coordinate.x -= movex; break; case BOTTOM: matrix.posttranslate(0, movey); coordinate.y -= movey; break; default: break; imageview.setimagematrix(matrix); Listing 20: Bilderverschiebung Buttonbetätigungserkennung Die Buttons werden sichtbar für jedes Drücken bzw. Zoomen auf dem Display bei der Zuweisung setvisibility(view.visible). Wenn die Bewegung oder Vergrößerung sowie Verkleinerung des Bildes nicht mehr möglich ist, werden diese ausgeblendet. Nur einblenden falls es wieder möglich public void onclick(view v) { rightarrow.setvisibility(view.visible); leftarrow.setvisibility(view.visible); toparrow.setvisibility(view.visible); bottomarrow.setvisibility(view.visible); switch (v.getid()) { case R.id.zoom_in: if (imagedis.x > 1.2 * screen.x imagedis.y > screen.y) { zoomin = true; 45

46 zoomimage(zoomin, imageview, mapbitmap); else { Toast.makeText(getApplicationContext(), "No zoom level for this size", Toast.LENGTH_LONG).show(); break; case R.id.zoom_out: zoomin = false; zoomimage(zoomin, imageview, mapbitmap); break; case R.id.bottom_arrow: if (zoomin && coordinate.y > 0) { moveimage(bottom); else bottomarrow.setvisibility(view.gone); break; case R.id.right_arrow: if (zoomin && coordinate.x > 0) { moveimage(right); else rightarrow.setvisibility(view.gone); break; case R.id.left_arrow: if (zoomin && coordinate.x < imagedis.x - screen.x) { moveimage(left); else leftarrow.setvisibility(view.gone); break; case R.id.top_arrow: if (zoomin && coordinate.y < imagedis.y - screen.y) { moveimage(top); else toparrow.setvisibility(view.gone); break; default: break; Listing 21: Sichtbarkeit der Buttons und Zuweisung deren Funktion Beendung Die Methode processexit() wird gerufen, wenn der Nutzer nicht mehr mit dem Scannen fortfahren möchte, indem der No Button betätigt wird oder wenn Back - Taste von Android in Aktion tritt. Alle Dateien (Image und Text) werden dann gespeichert, Dialog wird gelöscht und die Applikation beendet. 46

47 Abbildung 19: Weiterscannen - Anfrage private void processexit() { progressdialog = ProgressDialog.show(MapView.this, "", "Saving image and text file in SDCard..."); new Thread(new Runnable() public void run() { saveimage(); writetotextfile(resultstr); updateui.sendemptymessage(0); private Handler updateui = new Handler() public void dispatchmessage(message msg) { super.dispatchmessage(msg); updateui(); ; ).start(); Listing 22: Programm beenden private void updateui() { if (isdone) { Toast.makeText(getApplicationContext(),"All image save as " + getpath(), Toast.LENGTH_LONG).show(); else Toast.makeText(getApplicationContext(),"Error when write to SDcard", Toast.LENGTH_LONG).show(); this.finish(); Listing 23: Meldung für den Erfolg des Speicherns 47

48 Dialog löschen Dialog wird gelöscht bevor die Applikation protected void onpause() { super.onpause(); if (progressdialog.isshowing()) progressdialog.dismiss(); Listing 24: Dialog löschen Back public boolean onkeydown(int keycode, KeyEvent event) { if (keycode == KeyEvent.KEYCODE_BACK && event.getrepeatcount() == 0) { processexit(); return true; Listing 25: Handlung von der Back Taste von Android 48

49 KAPITEL 5: VALIDIERUNG UND BEWERTUNG 5.1. Validierung Zum Testen wird das Programm bei dem Handy HTC Sensation Z710e 19 mit der installierten Android - Version in einem Wohngebäude ausgeführt. Der erste Punkt ist im Schlafzimmer (1), die zweite Stelle in der Küche (2) und letzte Scanstelle vor dem Haupteingang des Gebäudes (3). Ergebnis wird als Text Datei mit den nummerierten Stellen, alle verfügbaren WLAN Netzen, und zugehörigen Signalstärken in dbm. Alle Scanstellen werden auch in einer Image Datei geschrieben, also auf dem Plan dargestellt, damit der Nutzer weißt, wo er schon gescannt hat. Selbstverständlich hat fast jeder Plan einen Maßstab, so kann der Nutzer einfach navigieren, wo es im Gebäude zu scannen sein sollte. **************************** Point: 1 SSID: WLAN-65F294, Signal strength: -95dBm SSID: ALICE-WLAN16, Signal strength: -93dBm SSID: WLAN-4BA834, Signal strength: -86dBm SSID: FRITZ!Box Fon WLAN 7113, Signal strength: -83dBm SSID: EasyBox-E4F660, Signal strength: -80dBm SSID: WLAN-BE4766, Signal strength: -78dBm SSID: Q99, Signal strength: -41dBm Comment: Schlafzimmer **************************** Point: 2 SSID: WLAN-65F294, Signal strength: -95dBm SSID: ALICE-WLAN16, Signal strength: -93dBm SSID: WLAN-4BA834, Signal strength: -86dBm SSID: FRITZ!Box Fon WLAN 7113, Signal strength: -83dBm SSID: EasyBox-E4F660, Signal strength: -80dBm SSID: WLAN-BE4766, Signal strength: -78dBm SSID: Q99, Signal strength: -41dBm Comment: Kueche **************************** Point: 3 SSID: WLAN-2A3411, Signal strength: -91dBm SSID: WLAN-BE4766, Signal strength: -89dBm Comment: Hauseingang Abbildung 20: Textergebnis und Messungsstellen 19 : unterstützt WLAN b/g/n 49

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

1. Software-Plattform Android Android. Was ist Android? Managed Code, Angepasste Java Virtual Machine 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel ab 2.6, aktuell 3.8 Managed Code,

Mehr

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

1. Software-Plattform Android Android. Was ist Android? Bibliotheken, Laufzeitumgebung, Application Framework 1. Software-Plattform Android Android Was ist Android? Plattform und Betriebssystem für mobile Geräte (Smartphones, Mobiltelefone, Netbooks), Open-Source Linux-Kernel 2.6 Managed Code, Angepasste Java

Mehr

Android. 2 24.09.2013 Mobile Systeme - Android

Android. 2 24.09.2013 Mobile Systeme - Android 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

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Android GUI Entwicklung

Android GUI Entwicklung Android GUI Entwicklung Aktuelle Technologien verteilter Java Anwendungen Referent: Stefan Haupt Hello World! Agenda Einführung & Motivation Android Applikationen UI-Komponenten Events Ressourcen Kommunikation

Mehr

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM ÜBERSICHT Android Android Dalvik Virtuelle Maschine Android und Desktop Applikationen Android Entwicklung Tools R Activity

Mehr

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android Einleitung - Systemarchitektur Hochschule Darmstadt WS15/16 1 Inhalt Historie Systemarchitektur Sandbox 2 Motivation Kontra Pro Limitierte Größe Begrenzte Ressourcen Kein Standardgerät

Mehr

Mobile Application Development

Mobile Application Development Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann

Mehr

Einführung in Android. 9. Dezember 2014

Einführung in Android. 9. Dezember 2014 Einführung in Android 9. Dezember 2014 Was ist Android? Software für mobile Geräte: Betriebssystem Middleware Kernanwendungen Android SDK: Tools und APIs zur Entwicklung von Anwendungen auf der Android-Plattform

Mehr

1. Software-Plattform Android

1. Software-Plattform Android 1. Software-Plattform Android Themenübersicht 1. Software-Plattform Android Themen/Lernziele: Mobile Informationssysteme: Grundbegriffe Elementare Eigenschaften von Android Android Software Stack Entwicklungsumgebung

Mehr

Mobile Systeme Android 07.04.2011

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

Mehr

Seminar Multimediale Werkzeuge Sommersemester 2011

Seminar Multimediale Werkzeuge Sommersemester 2011 Seminar Multimediale Werkzeuge Sommersemester 2011 Dipl.-Ing. Marco Niehaus marco.niehaus@tu-ilmenau.de 09.06.2011 Page 1 Android Development - Installation Java SDK wird benötigt (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Android. LUG-LD Christoph Maya 2011 http://demaya.de. Lizenz: http://creativecommons.org/licenses/by-nc/3.0/de/

Android. LUG-LD Christoph Maya 2011 http://demaya.de. Lizenz: http://creativecommons.org/licenses/by-nc/3.0/de/ Android LUG-LD Christoph Maya 2011 http://demaya.de Lizenz: http://creativecommons.org/licenses/by-nc/3.0/de/ Inhalt Inhalt: ein Mix für Einsteiger und Fortgeschrittene Was ist Android und wo kommts her?

Mehr

Einführung in Android

Einführung in Android Einführung in Android FH Gießen Friedberg 12. Oktober 2010 Inhalt Historie / Prognosen / Trends Grundlagen Entwicklungsumgebung Standardbeispiel Erweitertes Beispiel Übung / Quellen 2 Grundlagen - Historie

Mehr

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

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 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 D O Z E N T : R E F E R E N T : P R O F. D R. K L I N K E R R I C O L O S C H W I T Z Aufbau der Präsentation

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Walkabout: Location Based Services mit Android und dem Google Phone

Walkabout: Location Based Services mit Android und dem Google Phone Walkabout: Location Based Services mit Android und dem Google Phone Teilbereich 1: Die Android Plattform für mobile Geräte (Software) Von: Sebastian Schul Inhalt Einleitung Was ist Android Exkurs: Wie

Mehr

NEXT GENERATION MOBILE PHONE PLATFORMS

NEXT GENERATION MOBILE PHONE PLATFORMS Stephan Zeisberg NEXT GENERATION MOBILE PHONE PLATFORMS Ein Einblick in die Systemarchitekturen aktueller Smartphones 1 Motivation Technologischer Stillstand in der Entwicklung mobiler Betriebssysteme

Mehr

Datenhaltung für Android. Model First

Datenhaltung für Android. Model First Datenhaltung für Android Model First Frederik Götz, Johannes Tysiak 26.05.2011 Unser Ziel! 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 2 Agenda Android Quickstart Datenhaltung

Mehr

Informatik Sommercamp 2012

Informatik Sommercamp 2012 Informatik Sommercamp 2012 App Entwicklung mit dem Android SDK Dominik W., Stefan S., Jan L. Fakultät für Informatik und Mathematik Universität Passau 23.07.2012 Gliederung 1 2 3 4 Warum? an Schule und

Mehr

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

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Organisatorisches Anmelden im Web: ZIV Lehre Anmelden Anwesenheitsliste Anwesenheitsschein bei 75% Anwesenheit Allgemeine

Mehr

APPS FÜR ANDROID ENTWICKELN

APPS FÜR ANDROID ENTWICKELN jan TITTEL jochen BAUMANN ELL N H C S IEG T S N I E APPS FÜR ANDROID ENTWICKELN AM BEISPIEL EINER REALEN APP Inhalt 1 Einführung.............................................. 1 1.1 Die Android-Plattform.................................................

Mehr

LaVida. Mobile Endgeräte. Andreas Neupert

LaVida. Mobile Endgeräte. Andreas Neupert LaVida Mobile Endgeräte Andreas Neupert Einleitung 1 33 Was? 1) Android a. Hardware b. Entwickeln i. Tools ii. Architektur & Konzepte iii. Google App Inventor c. Benutzen versus 2) WP 7 a. Hardware b.

Mehr

Mobile App Development. - Einführung -

Mobile App Development. - Einführung - Mobile App Development - Einführung - Inhalt Organisatorisches Vorlesungsinhalt Mobile Geräte Android Architektur App Aufbau Praktikum Organisatorisches 4 SWS, 5 ECTS 2 Vorlesung / 2 Praktikum ca. 10 Wochen

Mehr

JOGGA Der Jogging-Companion

JOGGA Der Jogging-Companion JOGGA Der Jogging-Companion GLIEDERUNG: (1) Idee (2) Funktionen (3) Codebeispiele IDEE: Jeder Jogger kennt das Problem: Man rafft sich auf um eine Runde zu laufen, schwitzt während dessen ohne Ende und

Mehr

Mobile Application Plattforms

Mobile Application Plattforms Mobile Application Plattforms Trends in der Kommunikationstechnik DI Franz Geischläger Agenda Mobile Applications Allgemeine Betrachtung Mobile Betriebssysteme und Plattformen Die wichtigsten Vertreter

Mehr

Android Entwicklung. App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger. Twitter: #app2010 @greenrobot_de

Android Entwicklung. App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger. Twitter: #app2010 @greenrobot_de Android Entwicklung App Entwickler Konferenz 2010 Bonn, 17. November Markus Junginger Twitter: #app2010 @greenrobot_de Über mich Markus Junginger, greenrobot 2007: Erste Android App 2001: Erstes Mobile

Mehr

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap

Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Cross-Platform Apps mit HTML5/JS/CSS/PhoneGap Proseminar Objektorientiertes Programmieren mit.net und C# Florian Schulz Institut für Informatik Software & Systems Engineering Einführung Was hat Cross-Plattform

Mehr

In diesem Kapitel beschäftigen wir uns mit der Systemarchitektur von Android, die in Abbildung 2-1 skizziert ist. Location Manager

In diesem Kapitel beschäftigen wir uns mit der Systemarchitektur von Android, die in Abbildung 2-1 skizziert ist. Location Manager 15 2 Systemaufbau In diesem Kapitel beschäftigen wir uns mit der Systemarchitektur von Android, die in Abbildung 2-1 skizziert ist. Anwendungsschicht Android- Drittanbieter- Eigene Abb. 2-1 Die Android-

Mehr

Sicherheit in Android

Sicherheit in Android Motivation Aufbau Sicherheit Ausblick Quellen Sicherheit in Android Peter Salchow INF-M2 - Anwendungen 1 Sommersemester 2008 Department Informatik HAW Hamburg 20. Mai 2008 Peter Salchow Sicherheit in Android

Mehr

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia Auf einen Blick Auf einen Blick TEIL I Grundlagen 1 Android eine offene, mobile Plattform... 21 2 Hallo Android!... 43 3 Von der Idee zur Veröffentlichung... 73 TEIL II Elementare Anwendungsbausteine 4

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel XDK

Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung in die Cross-Plattform Entwicklung Das Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK vertraut. Es wird Schritt für Schritt die erste eigene Hybrid-App entwickelt

Mehr

SMARTPHONES. Möglichkeiten, Gefahren, Sicherheit Best Practice Peter Teufl

SMARTPHONES. Möglichkeiten, Gefahren, Sicherheit Best Practice Peter Teufl SMARTPHONES Möglichkeiten, Gefahren, Sicherheit Best Practice Peter Teufl A-SIT/Smartphones iphone security analysis (Q1 2010) Blackberry security analysis (Q1 2010) Qualifizierte Signaturen und Smartphones

Mehr

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Entwickeln für Android OS

Entwickeln für Android OS Entwickeln für Android OS Am Beispiel der WAPLA Wissenschaftliche Arbeitstechniken und Präsentation Lern Applikation Christian Kain Kevin Kain Wolfgang Kremser Gregor Bankhamer Warum Android? Verbreitung

Mehr

Einführung in Betriebssysteme

Einführung in Betriebssysteme Einführung in Betriebssysteme APPLE ios Entwicklung von ios Entwickelt auf der Basis von MacOS X UNIX Vorgestellt am 9.1.2007 Zusammen mit iphone Markenname von Cisco Internetwork Operating System Für

Mehr

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg

Connecting Android. Externe Hardware mit dem grünen Roboter verbinden. Alexander Dahmen Dominik Helleberg Connecting Android Externe Hardware mit dem grünen Roboter verbinden Alexander Dahmen Dominik Helleberg Speaker Dominik Helleberg Mobile Development Android / Embedded Tools http://dominik-helleberg.de/+

Mehr

Android 2. Grundlagen und Programmierung. dpunkt.verlag. Arno Becker Marcus Pant. 2., aktualisierte und erweiterte Auflage

Android 2. Grundlagen und Programmierung. dpunkt.verlag. Arno Becker Marcus Pant. 2., aktualisierte und erweiterte Auflage Arno Becker Marcus Pant Android 2 Grundlagen und Programmierung 2., aktualisierte und erweiterte Auflage Unter Mitarbeit von David Müller dpunkt.verlag IX I Inhaltsverzeichnis I Einführung 1 1 Ein erstes

Mehr

JDroidLib mit Eclipse (Mac/Linux/Windows)

JDroidLib mit Eclipse (Mac/Linux/Windows) JDroidLib mit Eclipse (Mac/Linux/Windows) Version 1.3, 25. März 2013 (Unter Windows besser die ADT-Bundle Version installieren, siehe entsprechende Anleitung) Vorbereitungen: 1. JDK SE neuste Version installieren,

Mehr

App-Entwicklung mit Titanium

App-Entwicklung mit Titanium Masterstudienarbeit Betreuung Prof. Dr. M. von Schwerin 1 Gliederung 1.Motivation 2.Aufgabenstellung 3.Projektbeschreibung 4.Projektstatusbericht 5.Fazit und Ausblick 2 1.Motivation Verbreitung von Smartphones

Mehr

Apps-Entwicklung mit Eclipse

Apps-Entwicklung mit Eclipse JDroid mit Eclipse Seite 1 Apps-Entwicklung mit Eclipse Version 1.1, 30. April 2013 Vorbereitungen: 1. JDK installieren JDK SE neuste Version (64 oder 32 Bit) herunterladen und installieren (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Quelle: Quelle: Stanford.edu

Quelle: Quelle: Stanford.edu Quelle: Quelle: Stanford.edu Freies Betriebssystem für mobile Geräte Smartphones Tablet PCs Netbooks Betriebssystem und Softwareplattform Entwickelt von der Open Handset Alliance Ein Konsortium von 80

Mehr

CD-ROM von D-Link einlegen

CD-ROM von D-Link einlegen Dieses Produkt funktioniert unter folgenden Betriebssystemen: Windows XP, Windows 2000, Windows Me, Windows 98 SE DWL-G650 Xtreme G 2.4 GHz drahtlose Cardbus-Netzwerkkarte Vor dem Start Systemanforderungen:

Mehr

Christian Meder inovex. Sauberes Grün QS für Android

Christian Meder inovex. Sauberes Grün QS für Android Konferenz Christian Meder inovex Sauberes Grün QS für Android Sauberes Grün: QS für Android W-JAX, 2011 Christian Meder inovex GmbH Chief Technology Officer 09.11.2011 1 Speaker Christian Meder Schwerpunkte

Mehr

Mobile App Development. - Einführung -

Mobile App Development. - Einführung - Mobile App Development - Einführung - Inhalt Organisatorisches Vorlesungsinhalt Mobile Geräte Android Architektur App Aufbau Praktikum Organisatorisches 4 SWS, 5 ECTS 2 Vorlesung / 2 Praktikum 10 Wochen

Mehr

Creatix 802.11g Adapter CTX405 V.1/V.2 Handbuch

Creatix 802.11g Adapter CTX405 V.1/V.2 Handbuch Creatix 802.11g Adapter CTX405 V.1/V.2 Handbuch 1 Sicherheitshinweise für Creatix 802.11g Adapter Dieses Gerät wurde nach den Richtlinien des Standards EN60950 entwickelt und getestet Auszüge aus dem Standard

Mehr

Arno Becker Marcus Pant. Android. Grundlagen und Programmierung. I dpunkt.verlag

Arno Becker Marcus Pant. Android. Grundlagen und Programmierung. I dpunkt.verlag Arno Becker Marcus Pant Android Grundlagen und Programmierung I dpunkt.verlag IX 1 Ein erstes Beispiel 3 1.1 Projekt anlegen 3 1.2 Die erste Activity 4 1.3 Layout definieren 5 1.4 Activities aufrufen 8

Mehr

Erste Erfahrungen mit Android

Erste Erfahrungen mit Android Java User Group München, 22. 9. 2008 Erste Erfahrungen mit Android 1 Was ist Android? Die erste vollständige, offene und freie Plattform für mobile Telefone Entwickelt von der Open Handset Alliance (Telecoms,

Mehr

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum

ANDROID. Analyse der Android Plattform. Andre Rein, Johannes Florian Tietje. 28. Oktober 2010. FH-Gieÿen-Friedberg Android Praktikum Analyse der Android Plattform Andre Rein, Johannes Florian Tietje FH-Gieÿen-Friedberg Android Praktikum 28. Oktober 2010 Topics 1 Übersicht Android Plattform Application Framework Activities und Services

Mehr

Installation/ Anschluss an den Fernseher:

Installation/ Anschluss an den Fernseher: Installation/ Anschluss an den Fernseher: 1. Verbinden Sie das mitgelieferte USB Anschlusskabel über den Micro USB Stecker mit der entsprechenden Buchse des EZ Cast Sticks 2. Stecken Sie den HDMI Stick

Mehr

Überleben im Funkloch

Überleben im Funkloch Überleben im Funkloch Offlinefähige Apps für Android entwickeln Christian Janz (@c_janz ) christian.janz@bridging-it.de Christian Janz Consultant im Bereich Softwareentwicklung Java/JEE bei Bridging IT

Mehr

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme

Smartphone - Betriebssysteme. Smartphone - Betriebssysteme Smartphone - Betriebssysteme Peter Rami - Graz, 28.04.2009 Inhalt Smartphone Symbian OS Windows Mobile BlackBerry OS iphone OS Android Marktanteile & Ausblick Smartphone - Betriebssysteme Peter Rami -

Mehr

Netzwerk Technologien in LabVIEW

Netzwerk Technologien in LabVIEW Netzwerk Technologien in LabVIEW von Dirk Wieprecht NI Germany Hier sind wir: Agenda Agenda Bedeutung des Ethernet für die Messtechnik Ethernet-basierende Technologien in LabVIEW Low Level- TCP/IP Objekt

Mehr

Google's Betriebssystem für mobile Plattformen. Vortrag von Michaela Rindt Universität Siegen

Google's Betriebssystem für mobile Plattformen. Vortrag von Michaela Rindt Universität Siegen Google's Betriebssystem für mobile Plattformen Vortrag von Michaela Rindt Universität Siegen Übersicht Einleitung Softwarearchitektur Softwareentwicklung für Android Unterschied zu anderen mobilen Plattformen

Mehr

Mit Cloud Power werden Sie zum

Mit Cloud Power werden Sie zum Mit Cloud Power werden Sie zum Herzlich Willkommen! Christian Hassa Managing Partner TechTalk Software AG Agenda Mobile App Development mit Xamarin Pause Azure Mobile Services Q&A 9h00-10h30 10h30-10h50

Mehr

ComputeriaUrdorf «Sondertreff»vom30. März2011. Workshop mit WLAN-Zugriff auf das Internet

ComputeriaUrdorf «Sondertreff»vom30. März2011. Workshop mit WLAN-Zugriff auf das Internet ComputeriaUrdorf «Sondertreff»vom30. März2011 Workshop mit WLAN-Zugriff auf das Internet 30. März 2011 Autor: Walter Leuenberger www.computeria-urdorf.ch Was ist ein (Computer-)Netzwerk? Netzwerk-Topologien

Mehr

4. Software-Komponenten in Android

4. Software-Komponenten in Android 4. Software-Kompponenten in Android Lernziele 4. Software-Komponenten in Android Themen/Lernziele Intents: Explizite und implizite Intents Intent-Filter Intent-Resolution Sub-Activities Broadcast Intents

Mehr

Deutsche Version. Einleidung. Installation unter Windows 2000, XP und Vista. LW302 Sweex Wireless LAN PCI Card 300 Mbps

Deutsche Version. Einleidung. Installation unter Windows 2000, XP und Vista. LW302 Sweex Wireless LAN PCI Card 300 Mbps LW302 Sweex Wireless LAN PCI Card 300 Mbps Einleidung Setzen Sie die Sweex Wireless LAN PCI Card 300 Mbps 802.11n keinen extremen Temperaturen aus. Legen Sie das Gerät nicht in direktes Sonnenlicht oder

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

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

2. GUI-Programmierung für mobile Geräte 2. GUI-Programmierung für mobile Geräte Lernziele 2. GUI-Programmierung für mobile Geräte Themen/Lernziele: Einführung Lebenszyklus einer Android-Anwendung Beispiele GUI-Elemente Einbindung externer Ressourcen

Mehr

App-Entwicklung mit Titanium

App-Entwicklung mit Titanium App-Entwicklung mit Titanium Masterstudienarbeit von Betreuung Prof. Dr. M. von Schwerin App-Entwicklung mit Titanium 1 Gliederung 1.Titanium Eine Einführung 2.Programmierschnittstelle (API) 3.Module 4.App

Mehr

Android. Dokumentation zu Kurzvortag. Von Marc Spring

Android. Dokumentation zu Kurzvortag. Von Marc Spring Android Dokumentation zu Kurzvortag Von Marc Spring Version 1.1 Burgdorf / November 2011 1. Inhaltsverzeichnis 1. Inhaltsverzeichnis... 3 2. Abbildungsverzeichnis... 4 3. Was ist Android?... 5 4. Geschichte...

Mehr

Computeria Urdorf «Sondertreff» vom 7. November 2012. Workshop. auf das Internet

Computeria Urdorf «Sondertreff» vom 7. November 2012. Workshop. auf das Internet Computeria Urdorf «Sondertreff» vom 7. November 2012 Workshop mit WLAN-Zugriff auf das Internet 7. November 2012 Autor: Walter Leuenberger www.computeria-urdorf.ch Was ist ein (Computer-)Netzwerk? Netzwerk-Topologien

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Präsentation. homevisu Familie. Peter Beck. Juni 2011. www.p-b-e.de. 2011 p b e Peter Beck 1

Präsentation. homevisu Familie. Peter Beck. Juni 2011. www.p-b-e.de. 2011 p b e Peter Beck 1 Präsentation homevisu Familie Peter Beck Juni 2011 2011 p b e Peter Beck 1 Funktionensumfang Der Funktionsumfang das provisu Framework. Modular und durch Plug-In erweiterbar / anpassbar. Plug-In Schnittstelle

Mehr

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München

TimeMachine. Time CGI. Version 1.5. Stand 04.12.2013. Dokument: time.odt. Berger EDV Service Tulbeckstr. 33 80339 München Time CGI Version 1.5 Stand 04.12.2013 TimeMachine Dokument: time.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor Version Datum Kommentar

Mehr

1 Der Einstieg in Java für Android

1 Der Einstieg in Java für Android 1 1 Der Einstieg in Java für Android Diese Ergänzung zum Buch Programmieren in Java will Ihnen dabei helfen, erste Programme für Smartphones der Android Plattform von Google zu erstellen und diese Programme

Mehr

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework

Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung in die Cross-Plattform Entwicklung Das Intel App Framework Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel App Framework vom Intel XDK vertraut. Es wird Schritt für Schritt

Mehr

Direkter Internet-Anschluss für das PSR-3000/1500

Direkter Internet-Anschluss für das PSR-3000/1500 PHONES PHONES PHONES Sie können Songdaten und andere Daten von der speziellen Website erwerben und herunterladen, wenn das Instrument direkt mit dem Internet verbunden ist. Dieser Abschnitt enthält Begriffe,

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

Leseprobe. Apps für Android entwickeln

Leseprobe. Apps für Android entwickeln Leseprobe zu Apps für Android entwickeln von Jan Tittel und Jochen Baumann ISBN (Buch): 978-3-446-43191-1 ISBN (E-Book): 978-3-446-43315-1 Weitere Informationen und Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43191-1

Mehr

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE 2.1 Die Einrichtung der Benutzeroberfläche Das Einrichten einer Android-Eclipse-Entwicklungsumgebung zur Android-Entwicklung ist grundsätzlich nicht

Mehr

WLAN Best Practice. Von der Anforderung bis zum Betrieb in Gebäuden. 26.03.2015. Willi Bartsch. Netze BW GmbH Teamleiter NetzwerkService

WLAN Best Practice. Von der Anforderung bis zum Betrieb in Gebäuden. 26.03.2015. Willi Bartsch. Netze BW GmbH Teamleiter NetzwerkService WLAN Best Practice Von der Anforderung bis zum Betrieb in Gebäuden. 26.03.2015 Willi Bartsch Netze BW GmbH Teamleiter NetzwerkService Ein Unternehmen der EnBW Agenda WLAN Anforderungen Umfeldanalyse Ausblick

Mehr

GEO-DIENSTE AUF BASIS DER ANDROID-PLATTFORM. Seminar: Datenbankunterstützung für mobile GIS Michael Goj

GEO-DIENSTE AUF BASIS DER ANDROID-PLATTFORM. Seminar: Datenbankunterstützung für mobile GIS Michael Goj GEO-DIENSTE AUF BASIS DER ANDROID-PLATTFORM Seminar: Datenbankunterstützung für mobile GIS Michael Goj AGENDA Einleitung Standortbezogene Dienste und Anwendungen Geo-Dienste Die Android-Plattform Google

Mehr

Geschäftsbereich Mobile Services Was ist Android?

Geschäftsbereich Mobile Services Was ist Android? Geschäftsbereich Mobile Services Was ist Android? Hinter Hoben 149 53129 Bonn www.visionera.de Ansprechpartner: Arno Becker arno.becker@visionera.de +49 228 555 1111 +49 160 98965856 Einleitung Android

Mehr

Glossar. Launching auf.

Glossar. Launching auf. 243 Ad Hoc Distribution Die Ad Hoc Distribution ist eine Möglichkeit, um Ihre entwickelte Anwendung auf anderen Endgeräten zu verteilen. Diese Art der Verteilung erfolgt ohne den App Store. Die Anzahl

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

GMM WLAN-Transmitter

GMM WLAN-Transmitter Inhaltsverzeichnis 1. Produktbeschreibung... 2 2. Konfiguration... 2 Verbindung... 2 Konfiguration der Baudrate... 2 Access Point... 3 3. Datenübertragung... 3 4. Technische Daten... 4 Kontakt... 5 1 1.

Mehr

EZ CAST Full HD WIFI Smart TV Streaming Dongle von 2-TECH

EZ CAST Full HD WIFI Smart TV Streaming Dongle von 2-TECH EZ CAST Full HD WIFI Smart TV Streaming Dongle von 2-TECH Kurzanleitung, Installation und Inbetriebnahme Lieferumfang: EZCast HDMI Stick 2-fach USB auf Micro USB Kabel HDMI Verlängerungskabel Diese Bedienungsanleitung

Mehr

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler / 2013-04-18 Software Testing Automatisiert Manuell 100% 70% 1 Überwiegender Teil der Testing Tools fokusiert auf automatisiertes Testen Microsoft

Mehr

Einführung in die Einführung in Android Anwendungsentwicklung

Einführung in die Einführung in Android Anwendungsentwicklung Einführung in die Einführung in Android Anwendungsentwicklung FH Gießen Friedberg 27. Oktober 2010 Inhalt Was bisher geschah / Prognosen Grundlagen Entwicklungsumgebung Beispiel: Notensammler Intents und

Mehr

Dr. Holger Eichelberger

Dr. Holger Eichelberger SchülerInnen-Uni 2015 Dr. Holger Eichelberger eichelberger@sse.uni-hildesheim.de Inhalt 1. Wer ist das? 1 2. Was ist ein Smartphone? 3 3. Wie entwickelt man für Smartphones? 7 4. Wie bauen wir die App?

Mehr

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3

Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 Technische Dokumentation SEPPmail Outlook Add-In v1.5.3 In diesem Dokument wird dargelegt, wie das SEPPmail Outlook Add-in funktioniert, und welche Einstellungen vorgenommen werden können. Seite 2 Inhalt

Mehr

Tablets / Smartphones mit Android

Tablets / Smartphones mit Android Merkblatt 91 Tablets / Smartphones mit Android Was ist Android? Android ist ein Betriebssystem von Google, entwickelt für Smartphones und Tablets. Aktuelle Versionen: 4.0 4.1 4.2 4.3 4.4 (neueste Version)

Mehr

Bilder vom Handy auf einen PC übertragen

Bilder vom Handy auf einen PC übertragen Bilder vom Handy auf einen PC übertragen Die heutigen Handys können praktisch alle fotografieren, wie kommen nun die Bilder auf einen PC? Zwei grundsätzliche Unterschiede sind von zentraler Bedeutung:

Mehr

Tutorial. Programmierung einer Android-Applikation. Teil 1

Tutorial. Programmierung einer Android-Applikation. Teil 1 Tutorial Programmierung einer Android-Applikation Teil 1 Autor: Oliver Matle Datum: März 2014, Version 1.0 Autor: Oliver Matle, www.matletarium.de Seite 1 von 28 Inhaltsverzeichnis Kapitel 1 Einleitung...3

Mehr

Bin ich fit für myconvento?

Bin ich fit für myconvento? Bin ich fit für myconvento? Sie planen den Einsatz unserer innovativen Kommunikationslösung myconvento und fragen sich gerade, ob Ihr Rechner die Anforderungen erfüllt? Hier erfahren Sie mehr. Inhalt Was

Mehr

Apps Programmierung von Android-Smartphones

Apps Programmierung von Android-Smartphones Apps Programmierung von Android-Smartphones 2/34 Android-Apps Gliederung: Warum? / Warum Android? Grundlagen Beispiel (sehr kurz) weitere Möglichkeiten Einsatz im Unterricht Diskussion / Fragen 3/34 Smartphone-Programmierung

Mehr

Informationen zur Firmware Release 4.32 für FPS-WDSL Router

Informationen zur Firmware Release 4.32 für FPS-WDSL Router Informationen zur Firmware Release 4.32 für FPS-WDSL Router Die Firma FPS InformationsSysteme GmbH übernimmt keine Haftung für nicht von der Fa. FPS entwickelte Software. Verwendung von Fremdsoftware geschieht

Mehr

VCM Solution Software

VCM Solution Software VCM Solution Software Die BORUFA VCM Solution ist ein umfangreiches Werkzeug für virtuelles Content Management basierend auf hochauflösenden vollsphärischen Bildern, 360 Videos und Punktwolken. In der

Mehr

Revox Joy S232 App D 1.0

Revox Joy S232 App D 1.0 Inhalt Revox Joy S232 App 1 D 1.0 Revox M-Serie Android App M235 Inhalt Herzlich Willkommen... 3 Funktionsumfang... 3 Voraussetzungen... 3 Installation... 3 Versionsnummer... 4 Konfiguration... 5 Erweiterte

Mehr

Mobile App Development

Mobile App Development Mobile App Development - Einführung - Inhalt Organisatorisches Vorlesungsinhalt Mobile Geräte Android Architektur App Aufbau Praktikum Organisatorisches 4 SWS, 5 ECTS 2 Vorlesung / 2 Praktikum 10 Wochen

Mehr

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

TCP/IP Programmierung. C# TimeServer Java6 TimeClient TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7

Mehr

Ein mobiler Electronic Program Guide für Android

Ein mobiler Electronic Program Guide für Android Whitepaper Telekommunikation Ein mobiler Electronic Program Guide für Android Prototyp für Android Apps 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller Munde. Durch

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Plattformen mobiler Endgeräte Windows Phone, ios, Android

Plattformen mobiler Endgeräte Windows Phone, ios, Android Plattformen mobiler Endgeräte Windows Phone, ios, Android 13.12.2012 Inhaltsverzeichnis 1. Einführung 2. Ecosystem Smartphone OS 3. Mobile Software Platform 4. Android App Entwicklung 5. Zusammenfassung

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr