Unterstützung der Auswahl von API-Versionen in Android-Projekten

Größe: px
Ab Seite anzeigen:

Download "Unterstützung der Auswahl von API-Versionen in Android-Projekten"

Transkript

1 Gottfried Wilhelm Leibniz Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Praktische Informatik Fachgebiet Software Engineering Unterstützung der Auswahl von API-Versionen in Android-Projekten Bachelorarbeit im Studiengang Informatik von Vladislav Anisimov Prüfer: Prof. Dr. Kurt Schneider Zweitprüfer: Prof. Dr. Joel Greenyer Betreuer: M. Sc. Tristan Wehrmaker Hannover,

2 Zusammenfassung Ein Leben ohne Mobilfunkgeräte ist heutzutage kaum vorstellbar. Während die Geräte der alten Generation lediglich Telefonat- und SMS-Funktionen besaßen, ähneln moderne mobile Endgeräte eher einem Desktop-PC. Weil immer neue, leistungsfähigere Geräte auf den Markt kommen, werden nicht nur immer mehr Apps entwickelt, sondern auch Programmierumgebungen für diese Apps durch Unterstützung neuer Funktionalitäten erweitert. Die Referenzdokumentation dieser Programmierumgebungen nimmt entsprechend an Volumen zu, so dass ein Entwickler schnell den Überblick verlieren kann, welche API-Versionen für die Realisierung bestimmter Funktionalitäten verwendet werden sollen, welche APIs neu eingeführt und welche abgelöst wurden. Damit der Überblick erhalten bleibt und das Planen der Apps zeitlich effizient verläuft, bietet sich Systematisierung der Wissensbasis aus der Referenzdokumentation durch Entwicklung eines Hilfswerkzeugs. In dieser Arbeit wird ein Konzept vorgestellt, das die zum Teil unübersichtliche Referenzdokumentation von Android in eine kürzere und übersichtlichere Form bringen soll, so dass der Entwickler einfacher entscheiden kann, welche API-Versionen für die Realisierung bestimmter Funktionalitäten einer App nötig sind. ii

3 Abstract A modern human without a mobile device is nowadays not to imagine. While the devices of the old generation have merely provided telephony and SMS functions, the functionality of modern devices comes closer to Desktop-PCs. Because newer and more powerful devices continuously come to market, the programming environments for these devices are also being extended with new functionality. The reference documentation for those programming environments grows accordingly so that a software developer can lose track over API levels needed for implementation of particular features, which APIs are newly added and which are deprecated. At this point is the systematization of knowledge from the reference documentation by means of implementation of a supporting tool to suggest. This approach can reduce time losses at planning of apps. This thesis turns towards a concept of how the partly confusing reference documentation of Android operating system can be brought in a brief and clear form so that the developer can easier decide what API levels he needs for the implementation of particular features. iii

4 Danksagung Ich bedanke mich bei allen, die mich beim Verfassen dieser Arbeit unterstützt und motiviert haben. Insbesondere bedanke ich mich bei Herrn M. Sc. Tristan Wehrmaker für seine außergewöhnlich gute Betreuung. iv

5 Inhaltsverzeichnis 1. Einleitung Motivation Ziel der Arbeit Struktur der Arbeit Grundlagen Android-Plattform Android-SDK Play Framework Analyse von Android-APIs Struktureller Aufbau von APIs Inhaltliche Analyse Modell (Systematisierung der Wissensbasis) Konzepte Datenbankentwurf Vorschlag der Auswahl einer API-Version Zusatzinformation Implementierung Technische Aspekte Ausgabe von API-Versionen Datenbank Zusammenfassung und Ausblick Zusammenfassung Fazit Ausblick Literaturverzeichnis Abbildungsverzeichnis Tabellenverzeichnis A. Ausgabe von mysqlcheck B. Datenbank C. Inhalt der CD v

6 1. Einleitung 1. Einleitung 1.1 Motivation Moderne Mobilgeräte werden heute in verschiedenen Ausführungen wie Handy, Smartphones, PDAs, Tablets u.a. und für unterschiedliche Zwecke wie Telefonate, Abspielen von Videos, Meetings, Positionierung, Internet etc. eingesetzt. Wegen der steigenden Nachfrage für diese Geräte bieten führende Hersteller wie Apple, Samsung, HTC, RIM BlackBerry leistungsfähige Geräte an. Auf diesen Geräten laufen Betriebssysteme wie ios, Android, Windows Phone oder Symbian. Für diese Betriebssysteme wurden bislang zahlreiche Mobilanwendungen, die sogenannten Apps entwickelt. Der Google Play Store stellte z.b. im April 2013 ca Apps zur Verfügung [1]. Bei App Store von Apple waren es im Juli 2013 ca Apps [2]. Seit dem 13. September 2008, als die Version 1.0 API-Version 1 des Android-SDK veröffentlicht wurde, wurde das SDK mit 17 weiteren API-Versionen erweitert. Die Android-Version 4.3 API-Version 18, die am 24. Juli 2013 erschienen ist, und nachfolgende Versionen werden in der vorliegenden Bachelorarbeit nicht berücksichtigt. Das Problem hierbei ist, dass beim Veröffentlichen einer neuen Android-Version die älteren nicht aufgelöst, sondern weiter unterstützt werden. Zwar können fast alle Geräte auf die neueste Android-Version aktualisiert werden, was auch von Google empfohlen wird, jedoch ist dies nicht der Fall, weil z.b. Anfang Oktober 2013 nur rund 50% aller Android-Geräte mit Jelly Bean, d.h. SDK-Version 4.1.x 4.3.x, API-Version 16 18, ausgerüstet waren [3]. Bei den restlichen 50% der Besitzer von Android-Geräten sind ältere Plattform-Versionen installiert. Der Grund dafür ist einerseits, dass sich die Android-Hersteller bei den Updates auf ihr aktuelles Smartphone- und Tablet-Sortiment konzentrieren und ab einem gewissen Zeitpunkt ältere Geräte nicht mehr mit neuen OS- Versionen versorgen, andererseits durchlaufen Aktualisierungen mehrere Stationen, bis sie den Nutzer erreichen, was viel Zeit in Anspruch nimmt [4][5]. Dabei muss sich der Entwickler beim Planen seiner Anwendung Gedanken machen, welche Zielgruppe er mit seiner App erreichen möchte, ob die Benutzergruppe der allerneuesten Version oder auch Benutzer der älteren Versionen berücksichtigt werden sollen [6]. Die zweite Alternative würde aber bedeuten, dass nicht alle Funktionalitäten einer App so umgesetzt werden können, wie sie ursprünglich angedacht wurden oder von der Dokumentation 1

7 1. Einleitung und aktuellen Tutorials vorgeschlagen werden. Da mit jeder neuen API-Ebene neue Funktionalitäten dazu kommen, muss der Entwickler entscheiden, für welche SDK- Version seine App entwickelt wird, und ob Weichen eingebaut werden müssen, wie das der Fall beim Bluetooth-Sensor vor der API-Version 7 ist. Hier gab es keine Möglichkeit auf den Sensor direkt zuzugreifen, sondern nur über die native C-Schnittstelle. Alle Änderungen der SDK-Versionen bzw. API-Versionen sind zwar in der Referenzdokumentation und sogenannten Diff reports beschrieben, alle diese durchzuarbeiten wäre aber ein erheblicher Zeitaufwand beim Planen einer Android-Anwendung. Um diesen Zeitaufwand zu reduzieren und Verarbeitung der Referenzdokumentation zu erleichtern, bietet sich die Entwicklung eines Werkzeugs an, das bei der Auswahl von zu realisierenden Funktionalitäten die notwendigen SDK- bzw. API-Version zurückgibt. 1.2 Ziel der Arbeit Im Rahmen dieser Arbeit wird die vertiefte Analyse der Android- Referenzdokumentation durchgeführt. Dabei wird darauf geachtet, welche API- Versionen für welche Funktionalitäten nötig sind, zusätzliche Bedingungen sollen auch betrachtet werden. Des Weiteren werden aufgrund der Analyse Konzepte erarbeitet, wie der Vorschlag einer API-Version zustande kommt und welche Zusatzinformationen angezeigt werden sollen. Da es sich bei der Android-Dokumentation um eine sehr umfangreiche Wissensbasis handelt, wird auch ein Datenbankentwurf konzipiert. Abschließend soll ein Werkzeug vorgestellt werden, das bei Auswahl von zu verwendenden Features die nötigen SDK- bzw. API-Versionen zurückgibt und Besonderheiten in der Verwendung einzelner API-Versionen bietet. 1.3 Struktur der Arbeit Im ersten Kapitel wird auf die Motivation, das Ziel und die Gliederung der Arbeit näher eingegangen. Das zweite Kapitel beschäftigt sich mit grundlegenden Strukturen, die für das Verständnis des in dieser Arbeit beschriebenen Konzepts notwendig sind. Da sich die Ar- 2

8 1. Einleitung beit auf Android konzentriert, wird in dieser Arbeit diese Plattform vorgestellt. Des Weiteren wird die Struktur der Android-Schnittstelle veranschaulicht und zum Schluss wird das Play Framework, das für die Umsetzung des Konzepts verwendet wurde, präsentiert. Im dritten Kapitel wird die Vorgehensweise bei der Android-API Analyse erläutert. Im ersten Abschnitt wird der strukturelle Aufbau von Android-APIs dargelegt. Im zweiten Abschnitt wird die inhaltliche Analyse von Android APIs durchgeführt. Das vierte Kapitel behandelt die im Rahmen dieser Arbeit erarbeiteten Konzepte für die Wissensbasis, die in der Analysephase zusammengestellt wurde. Im ersten Abschnitt wird ein Schema zur Systematisierung der Wissensbasis vorgeschlagen. In Anlehnung an dieses Schema wird im zweiten Abschnitt eine Datenbank konzipiert. Abschnitte drei und vier beinhalten Regeln zum Bestimmen einer API-Version und Kriterien zur Angabe von Zusatzinformationen. Das fünfte Kapitel ist der Umsetzung der in Kapitel 4 erarbeiteten Konzepte gewidmet. Im ersten Abschnitt wird auf technische Aspekte bei der Implementierung eingegangen. Dann wird der Mechanismus der Ausgabe von API-Versionen erklärt. Im letzen Abschnitt werden einzelne Schritte der Datenbankimplementierung vorgestellt. Im letzten Kapitel werden die im Rahmen dieser Arbeit vorgenommenen Schritte zusammengefasst. Das Fazit gibt einen Überblick über die im Laufe der Arbeit erreichten Ergebnisse. Der Ausblick verweist auf mögliche Erweiterungen des implementierten Werkzeugs. 3

9 2. Grundlagen 2. Grundlagen In diesem Kapitel werden Grundlagen betrachtet, die für das Verständnis der in dieser Arbeit erläuterten Konzepte notwendig sind. Die Android-Plattform wird nur kurz vorgestellt, da sich diese Arbeit nicht direkt mit Android beschäftigt. Auf die Android-APIs wird näher eingegangen, weil diese Inhalte für die Arbeit essentiell sind. Ebenso kurz wird das für die Umsetzung der im Kapitel 4 erläuterten Konzepte verwendete Play Framework vorgestellt. 2.1 Android-Plattform Android ist eine offene und freie Plattform, die von Firma Google entwickelt wurde und seit 2008 auf dem Markt ist. Google ist Teil von Open Handset Alliance 1, eines Geschäftsbündnisses, das 2007 mit dem Ziel der Herstellung besserer Mobilgeräte gegründet wurde. Die Bündnispartner sind große Firmen aus verschiedenen Industriebereichen. Darunter sind Hersteller von Chips, von Mobilgeräten und Softwareentwickler [7]. Architektur Linux-Betriebssystem: Das der Android-Plattform zugrundeliegende Betriebssystem ist Linux 2.6 Kernel, das die Kernaufgaben des Systems behandelt. Der Kernel stellt eine Hardwareabstraktionsschicht dar und dient als Bindeglied zwischen physikalischer Hardware und dem Software-Stack von Android. Einige Aufgaben des Kernels sind die Durchsetzung von Berechtigungen und Sicherheit, Low-Level Speichermanagement, Prozessmanagement und Threading, Binder (IPC) Treiberzugriff, WiFi, Kamera u.a. Android-Laufzeitumgebung: Jede Android-Applikation läuft in einem separaten Prozess mit seiner eigenen Instanz der Dalvik-VM. Basierend auf Java-VM ist die Dalvik-VM für Mobilgeräte optimiert. Mehrere Instanzen der Dalvik-VM können gleichzeitig auf einem Gerät laufen [8]. 1 4

10 2. Grundlagen Anwendungsschicht: Auf dieser Ebene befinden sich Android-Anwendungen. Dabei handelt es sich entweder um eigenentwickelte Anwendungen oder die von Google mitgelieferte Standardanwendungen. Die folgende Abbildung 1 stellt eine Übersicht der Android-Systemarchitektur dar. Abbildung 1: Android-Systemarchitektur nach [8]. Komponenten einer Android-Anwendung Activity: Activities sind für die Darstellung von Oberflächen zuständig, mit ihrer Hilfe werden Benutzerangaben verarbeitet. Service: Services lassen solche Hintergrundprozesse laufen, die keine Oberflächen brauchen. 5

11 2. Grundlagen Content Provider: Ein Content Provider verwaltet Daten, kann diese Daten einer oder mehreren Anwendungen zur Verfügung stellen, falls diese entsprechende Berechtigungen haben. Broadcast Receiver: Broadcast Receiver sind Komponenten, die Systemnachrichten empfangen und auf diese auch reagieren können. Eine solche Systemnachricht kann z.b. eine Benachrichtigung über schwache Netzwerkverbindungen sein. Intent: Intents sind Teil eines Mechanismus zum Austausch von Nachrichten und Daten zwischen Komponenten einer Anwendung, verschiedenen Anwendungen untereinander oder mit der Android-Plattform. Intents verbinden unabhängige Komponenten wie Activities, Services, Content Provider oder Broadcast Receiver untereinander zu einem Gesamtsystem und schaffen eine Verbindung zur Android-Plattform [9]. 2.2 Android-SDK Das Android-SDK besteht aus folgenden Komponenten: Android-SDK Lizenzvereinbarung, Android-Dokumentation, Application Framework, Tools und Beispielanwendungen. Für die vorliegende Bachelorarbeit sind in erster Linie die Android-Dokumentation und das Application Framework relevant. Das Android-SDK ist sowohl als Online- 2 als auch Offline-Version verfügbar. Die Offline-Version ist eine genaue Kopie der Online- Version und kann zusammen mit dem SDK heruntergeladen werden. Android-Dokumentation Die Dokumentation besteht aus folgenden Komponenten: Training: In diesem Abschnitt finden sich Übungen mit Codebeispielen für Android- Entwickler. API Guides: API Guides bieten den Android-Entwicklern sowohl grundlegende Android-Kenntnisse über Android-Anwendungen, deren Teile bereits im Abschnitt 2.1 skizziert wurden, als auch Richtlinien für die Nutzung von einzelnen APIs in verschiedenen 2 6

12 2. Grundlagen Kategorien wie Animation und Grafik, Konnektivität, Medien und Kamera, Positionierung, Sensoren etc. References: Referenzen bieten Zugriff auf die technische Android-Dokumentation, die sogenannten APIs. Tools: Tools enthalten Werkzeuge zum Entwerfen, Entwickeln, Debuggen und Einsetzen von Android-Anwendungen. Google Service: Google Service enthält zusätzliche APIs, die kein Bestandteil des nativen Android-SDK sind. Darunter sind z.b. APIs für die Umsetzung von Google Maps und Games. Android Application Framework Das Framework befindet sich in der android.jar Datei des Android-SDK und besteht aus einigen wichtigen Paketen: android.* - fundamentale APIs von Android. dalvik.* - Dalvik Virtual Machine (kurz DVM) ist eine von Firma Google speziell für die Android-Plattform entwickelte virtuelle Maschine, die auf Java Virtual Machine basiert und für Mobilgeräte optimiert ist. java.* - Kernklassen und generische Utilities für den Netzwerkbetrieb, die Sicherheit, für Mathe u.a. javax.* - zusätzliche Java-Klassen einschließlich der Unterstützung der Verschlüsselung, Parser, SQL u.a. junit.* - Unterstützung von Unit-Tests. org.apache.http.* - sind Pakete für das Hypertext-Übertragungsprotokoll (HTTP). org.json Unterstützung von JavaScript Object Notation (JSON). org.w3c.dom W3C Java-Bindungen für das Document Object Model Kern (XML und HTML). org.xml.sax.* - simples API zum Unterstützen von SAX für XML. 7

13 2. Grundlagen org.xmlpull.* - leistungsstarkes XML-Parsing [3]. SDK-Version Android-APIs besitzen eine Versionenhierarchie. Jeder neuen Plattformversion ist eine API-Version zugewiesen. APIs aus neuen Versionen bauen auf älteren auf oder ersetzen diese. Deswegen ist die Deklaration der SDK-Versionen im Android-Manifest ein wichtiger Teil der Entwicklung von Android-Anwendungen. Der <uses-sdk>-tag des Android-Manifests beinhaltet drei wichtige Attribute: minsdkversion: Dieses Attribut spezifiziert die minimale API-Version, die eine Android-Anwendung unterstützt. Dieses Attribut soll immer spezifiziert werden. targetsdkversion: Dieses Attribut spezifiziert die optimale API-Version, d.h. die Version, für die eine Android-Anwendung entwickelt und gegen die sie kompiliert wurde. Dieses Attribut ist optional. maxsdkversion: Dieses Attribut spezifiziert die höchste API-Version, die von einer Android-Anwendung unterstützt wird. Spezifizierung dieses Attributs ist nicht empfohlen [10]. 2.3 Play Framework Play ist ein modernes auf Akka 3 basierendes Framework zum vereinfachten Entwickeln von skalierbaren, schnellen und in der Echtzeit laufenden Webanwendungen nach MVC-Architekturpattern. Dabei ist Akka ein Framework für Parallelisierung für Java und Scala. Model und Controller werden in Java, Views werden in Scala geschrieben. Play-Server basieren auf dem asynchronen Network-Application-Framework Netty 4 von JBoss und sind zustandslos, d.h. es gibt keine Servlet-Mechanismen wie Sessions, und der Entwickler kann die Seite aufrufen, an der er gerade arbeitet. Fehler werden direkt im Browser angezeigt und nach Fehlerbehebung ist kein Kompilieren nötig, die Webseite muss lediglich neugeladen werden. Darüber hinaus bietet Play Möglichkeiten zum Testen von Anwendungen: JUnit für Java und Selenium für Scala, Unterstützung von

14 2. Grundlagen Entwicklungsumgebungen wie Eclipse und IntelliJ IDEA, Unterstützung von NoSQL Datenbanken, Java Persistence API 5 (JPA) erlaubt vereinfachtes Zuordnen und Übertragen von Java-Objekten zu Datenbankeinträgen. 5 9

15 3. Analyse von Android-APIs 3. Analyse von Android-APIs In diesem Kapitel wird zunächst die Struktur der Android-APIs näher betrachtet. Im zweiten Abschnitt wird die Analyse von APIs durchgeführt. Dabei wird den Berechtigungen und den abgelösten Strukturen besondere Aufmerksamkeit geschenkt. Die gewonnenen Erkenntnisse werden zum Aufbau eines Modells verwendet. 3.1 Struktureller Aufbau von APIs API-Version ist eine Nummer, die die API-Revision einer Plattformversion eindeutig identifiziert. Die Android-Plattform stellt eine Programmierschnittstelle zur Verfügung, die von Applikationen zur Interaktion mit dem unterliegenden Android-System verwendet wird. Die Programmierschnittstelle besteht aus folgenden Komponenten: eine Sammlung von Klassen und Interfaces, eine Sammlung von XML-Komponenten und Attributen zum Deklarieren der Manifest-Datei, eine Sammlung von XML-Komponenten und Attributen zum Deklarieren und Zugreifen auf Ressourcen, eine Sammlung von Intents, eine Sammlung von Berechtigungen (Permissions), die von Applikationen aufgefordert werden können, sowie Einschränkungszwänge, die im System enthalten sind. Jede neue Version der Android-Plattform beinhaltet Updates der Programmierschnittstelle. Diese Updates sind so gestaltet, dass das neue API mit der älteren Version kompatibel bleibt. Die meisten Änderungen in der API sind additiv und bringen entweder eine neue Funktionalität ein oder ersetzen eine alte. Während Teile der API erweitert werden, werden die ersetzten Teile zwar nicht entfernt, aber nicht mehr zur Verwendung empfohlen, so dass bereits existierende Applikationen diese Teile immer noch verwenden können. Alle anderen Teile der älteren API-Revision werden ohne Änderung weitergeleitet [10]. Die Android-APIs sind in 18 Versionen unterteilt. Allerdings hat Google die API-Version 18 nach der Fertigstellung dieser Analyse veröffentlicht, daher

16 3. Analyse von Android-APIs wird diese API-Version in dieser Arbeit nicht betrachtet. Tabelle 1 gibt einen Überblick über alle API-Versionen, die bis zum Zeitpunkt der Verfassung dieser Arbeit existieren. Plattform-Version API-Version VERSION_CODE Android JELLY_BEAN_MR2 Android 4.2, JELLY_BEAN_MR1 Android 4.1, JELLY_BEAN Android 4.0.3, ICE_CREAM_SANDWICH_MR1 Android 4.0, 4.0.1, ICE_CREAM_SANDWICH Android HONEYCOMB_MR2 Android 3.1.x 12 HONEYCOMB_MR1 Android 3.0.x 11 HONEYCOMB Android 2.3.3, GINGERBREAD_MR1 Android 2.3, 2.3.1, GINGERBREAD Android 2.2.x 8 FROYO Android 2.1.x 7 ECLAIR_MR1 Android ECLAIR_0_1 Android ECLAIR Android DONUT Android CUPCAKE Android BASE_1_1 Android BASE Tabelle 1: Plattform-Versionen, zugehörige API-Versionen und Decknamen von Android Die Entwickler von Android bieten eine umfassende Dokumentation für das Android- SDK, das neben Referenzen auch API Guides und Best Practices beinhaltet. Anhand dieser Ressourcen wurden die Android-APIs analysiert. Unter Referenzen findet man die Auflistung aller zu den Android-APIs gehörigen Pakete. Ein Überblick über die wichtigsten Pakete wurde im Abschnitt 2.2 gegeben. Bezogen auf die Android-Referenzdokumentation beinhalten Pakete Klassen, Interfaces, Exceptions, verschachtelte Klassen (nested classes) und Enumerations, also alle Strukturen, die auch aus anderen objektorientierten Programmiersprachen wie C++ oder Java bekannt sind. Dasselbe gilt auch für Klassenstrukturen. Diese sind Konstanten, 11

17 3. Analyse von Android-APIs Felder, Methoden (public und protected), einschließlich ererbter Methoden und Konstruktoren. 3.2 Inhaltliche Analyse In diesem Abschnitt werden Schritte erläutert, die zum Feststellen von nötigen API- Version und Zusatzinformationen, durchgeführt wurden. Unter Zusatzinformationen sind Berechtigungen (Permissions) und abgelöste Strukturen (Deprecations) zu verstehen. Die Analyse wurde in zwei Ebenen unterteilt: 1) Klassenebene auf dieser Ebene wurden die inneren Strukturen wie Konstanten, Methoden etc. verarbeitet. 2) Paketebene hier wurden zusammenhängende Klassen und Interfaces, die für die Realisierung einer Funktionalität nötig sind, zu Kategorien zusammengefasst. Klassenebene Anhand der Abbildung 2 kann veranschaulicht werden, wie einzelne Strukturen auf Klassenebene präsentiert sind. 12

18 3. Analyse von Android-APIs Abbildung 2: Referenzdokumentation der Methode registerlistener(sensoreventlistener, Sensor, int, Handler) Jede Struktur ist mit ausführlichen Informationen versehen wie der Beschreibung der Struktur, der Beschreibung der Parameter, falls es sich um Methoden, Felder oder Konstruktoren handelt, der Beschreibung des Rückgabetyps, der Beschreibung der Exceptions und zusätzlicher Information, die im Zusammenhang mit gegebener Struktur stehen. Ein wichtiger Bestandteil dieser Beschreibung ist die API-Version, in welcher diese Struktur eingeführt wurde. Die Versionsnummer jeder Klassenstruktur ist immer in der rechten oberen Ecke platziert. Diese Information ist insoweit wichtig, als dass der Entwickler beim Auswählen der Struktur sofort sehen kann, ab welcher API- bzw. SDK- Version diese Struktur verwendet werden kann. Darüber hinaus hat die Information Einfluss darauf, welche minimale SDK-Version in der Manifest-Datei der zu entwickelnden App angegeben werden soll. Der Entwickler ist dafür verantwortlich, dass die minimale SDK-Version immer deklariert ist, ansonsten wird die minimale SDK-Version vom System zu 1 festgelegt, was für das System bedeuten würde, dass die Anwendung auf allen Plattform-Versionen laufen soll. Angenommen sie wurde für API- Version 3 entwickelt, und die minimale SDK-Version vom Entwickler nicht deklariert wurde. Falls die Anwendung auf einem Gerät installiert wird, auf dem ein System mit API-Version kleiner als 3 läuft, wird die App zur Laufzeit abstürzen, weil sie auf die im System nicht verfügbaren APIs zugreift. 13

19 3. Analyse von Android-APIs Ein weiterer wichtiger Bestandteil der Klassenebene sind Deprecations. In der Abbildung 3 ist ein Beispiel für die abgelöste Methode registerlistener(sensorlistener, int) gegeben. Abbildung 3: ein Beispiel von Deprecations Falls eine Struktur als deprecated markiert ist, soll sie von den Entwicklern nicht mehr benutzt werden. Der Grund dafür ist, dass diese Struktur durch eine neue Struktur mit ergänzter oder komplett veränderter Funktionalität ersetzt wurde und die richtige Funktionsweise der alten Struktur nicht mehr garantiert wird. Wird die veraltete Struktur trotz Existenz einer neueren dennoch verwendet, wird eine Compilerwarnung produziert. Die Referenzdokumentation von Android informiert den Entwickler darüber, ab welcher API-Version die abgelöste Struktur nicht mehr verwendet werden soll und durch welche andere Struktur sie ersetzt wurde. Das kann dem Entwickler bei der Wahl der in seiner App zu verwendenden Strukturen helfen. Deprecations betreffen nicht nur innere Klassenstrukturen wie Methoden, Konstanten etc., sondern auch komplette Klassen und Interfaces. Der dritte wichtige Bestandteil der Analyse auf der Klassenebene sind Berechtigungen (Permissions). Ein Beispiel von Berechtigungen ist in der Abbildung 4 dargestellt. Abbildung 4: ein Beispiel von Permissions 14

20 3. Analyse von Android-APIs Permissions sind Zugriffseinschränkungen für bestimmte Codeteile oder Daten auf Android-Geräten. Diese Einschränkungen schützen kritische Codeteile oder Daten gegen Missbrauch. android.permission.device_power ist ein Beispiel für eine solche Einschränkung. Alle Einschränkungen sind in der Klasse Manifest.permission im Paket android.* aufgelistet. Jede Einschränkung hat einen eigenen Namen und kann höchstens eine Funktionalität schützen. Falls eine Applikation den Zugriff auf eine von der Einschränkung geschützte Funktionalität braucht, muss dieses in der Manifest-Datei der Applikation deklariert werden. Die Deklaration anhand des obigen Beispiels sieht folgendermaßen aus: <uses-permission android:name= android.permission.device_power /> Die Analyse auf der Klassenebene wurde anhand dieser drei Bestandteile durchgeführt. Am Ende der Analyse konnte beantwortet werden: 1. welche Strukturen für die Realisierung einer bestimmten Funktionalität nötig sind, 2. in welcher API-Version diese Strukturen eingeführt wurden, 3. ob und in welcher API-Version die Strukturen abgelöst wurden, 4. welche zusätzlichen Bedingungen erfüllt werden müssen, um diese Strukturen verwenden zu können. 15

21 3. Analyse von Android-APIs Class Public Constructors Public Methods Added in API Deprecated in API public class NeighboringCellInfo extends Object implements Parcelable 3 public NeighboringCellInfo () 3 5 public NeighboringCellInfo (int rssi, int cid) 3 5 public NeighboringCellInfo (int rssi, String location, int radiotype) 7 public int getlac () 5 public int getnetworktype () 5 public int getpsc () 5 public void setcid (int cid) 3 5 public void setrssi (int rssi) 3 5 Comments Use NeighboringCellInfo(int, String, int) instead Use NeighboringCellInfo(int, String, int) instead cid value passed as in location parameter passed to constructor NeighboringCellInfo(int, String, int) initial rssi value passed as parameter to constructor NeighboringCellInfo(int, String, int) Tabelle 2: Analyse von Klassenstrukturen auf der Klassenebene All remaining constants, fields, public constructors and public methods were added in API Level 3 In Tabelle 2 ist ein Beispiel einer solchen Analyse dargestellt. Hier handelt es sich um die Klasse NeighboringCellInfo aus dem Paket android.telephony. Die Klasse selbst wurde in API-Version 3 eingeführt. Die ersten beiden Konstruktoren wurden zwar auch in API-Version 3 eingeführt, wurden dann aber in API-Version 5 abgelöst. An Stelle der beiden Konstruktoren soll der in API-Version 7 eingeführte Konstruktor Neighboring- CellInfo(int, String, int) verwendet werden. Die Methoden getlac(), getnetworktype() und getpsc() sind auch zu beachten, weil ihre Einführungsversion sich von der API-Version der Klasse unterscheidet. Die letzten beiden setter wurden auch in API-Version 3 eingeführt, wurden aber in API-Version 5 abgelöst. Die Rolle der beiden Methoden soll wieder der oben genannte Konstruktor NeighboringCellInfo(int, String, int) übernehmen. Dies sind aber nicht alle Strukturen, die diese Klasse beinhaltet, sie wurden hier nicht betrachtet, weil sie für die Analyse im Sinne 16

22 3. Analyse von Android-APIs von Permissions und Deprecations nicht von Interesse sind, sie wurden auch alle in API-Version 3 eingeführt. Paketebene Auf dieser Ebene wurden Pakete, die logisch zusammengehören, sowie Klassen und Interfaces in diesen Paketen zu Kategorien zusammengefasst. Betrachtet man wieder die Funktionalität Telephony, so handelt es sich um die Pakete android.telephony, android.telephony.gsm und android.telephony.cdma. Diese drei Pakete sind alleinige Ressourcen, die ein Entwickler braucht, um die Funktionalität für Telefonie in seiner App realisieren zu können. Diese Pakete beinhalten Strukturen, die über alle API-Versionen verstreut sind. Bei näherer Betrachtung können aber zusammenhängende bzw. logisch ähnliche Strukturen gefunden werden, die zu Kategorien zusammengefasst werden können. Die Klassen CellLocation, PhoneNumberFormattingTextWatcher, PhoneNumberUtils, PhoneStateListener, ServiceState, TelephonyManager und GsmCellLocation können zur Kategorie General Functionality zusammengefasst werden. Sie werden zwar für verschiedene Zwecke verwendet, doch haben sie eines gemeinsam - die API-Version, in der sie alle eingeführt wurden. Die einzige in API-Version 3 eingeführte Klasse ist NeighboringCellInfo. Sie gehört auch logisch zu keinen anderen Strukturen aus diesen Paketen, deswegen stellt diese Klasse eine eigene Kategorie Neghboring Cell Info dar. Die SMS-Funktionalität steht zwar seit der API-Version 1 zur Verfügung, entsprechende Klassen aus dem Paket android.telephony.gsm wurden aber allesamt in API-Version 4 abgelöst. Ab API-Version 4 stehen die Klassen SmsMessage, SmsMessage.SubmitPdu und SmsManager zur Verfügung und wurden somit zur Kategorie SMS zusammengefasst. Die Klasse SignalStrengh als einziger Vertreter der API-Version 7 wurde unter die Kategorie Signal Strength eingereiht. Die Klassen CellIdentityCdma, CellIdentityGsm, CellIdentityLte wurden der Kategorie Cell Identity, Cell Info, Cell Signal Strength hinzugefügt. 17

23 3. Analyse von Android-APIs Entsprechend kommen die Klassen CellInfo, CellInfoCdma, CellInfoGsm und CellInfoLte in die Kategorie Cell Info. Als Letztes sind die Klassen CellSignalStrength, CellSignalStrengthCdma, CellSignalStrengthGsm und CellSignalStrengthLte zur Kategorie Signal Strength hinzugefügt worden. Das Ergebnis der Analyse der Funktionalität Telephony ist das Modell, das in Abbildung 5 dargestellt ist und eine Zusammenfassung des oben beschriebenen Vorgehens darstellt. Cell Identity, Cell Info, Cell Signal Strength (API Level 17) Neighboring Cell Info (API Level 3) Telephony Signal Strength (API Level 7) SMS (API Level 1) General Functionality (API Level 1) Abbildung 5: Zusammenfassung von Kategorien der Android-APIs Die Funktionalität Telephony wurde in fünf Kategorien unterteilt, jede dieser Kategorien kann ab einer bestimmten API-Version realisiert werden. Wird von einem Entwickler z.b. die Realisierung von Nachbarzelleninformation beabsichtigt, ist das ab der API- Version 3 möglich, allerdings muss hier auf Besonderheiten wie Deprecations und Permissions geachtet werden. 18

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

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

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

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

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

Fork Leitfaden. BibApp Android

Fork Leitfaden. BibApp Android Fork Leitfaden BibApp Android letzte Aktualisierung: 24. April 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 2 2 Eclipse Projekt 2 3 Abhängigkeiten 2 4 Konfiguration 3 4.0.1 Paketname...............................

Mehr

Android Testautomatisierung mit dem Framework Robotium

Android Testautomatisierung mit dem Framework Robotium Android Testautomatisierung mit dem Framework Robotium Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat

Mehr

Thomas Künneth. Android 3. Apps entwickeln mit dem Android SDK. Galileo Press

Thomas Künneth. Android 3. Apps entwickeln mit dem Android SDK. Galileo Press Thomas Künneth Android 3 Apps entwickeln mit dem Android SDK Galileo Press Vorwort 13 TEIL I Grundlagen 1.1 Entstehung 19 1.1.1 Die Open Handset Alliance, 20 1.1.2 Android Ine 20 1.1.3 Evolution einer

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

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

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

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

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

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

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

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

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

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

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

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

Think Mobile Effiziente Entwicklungsstrategien im GIS. Kai Hoffmann, BTC AG

Think Mobile Effiziente Entwicklungsstrategien im GIS. Kai Hoffmann, BTC AG Think Mobile Effiziente Entwicklungsstrategien im GIS Kai Hoffmann, BTC AG Mobile Endgeräte Was ist zu beachten? In dieser Betrachtung Smartphone Tablet Unterschiedliche Hardwareausstattung Bildschirmgröße

Mehr

Forensik mobiler Endgeräte

Forensik mobiler Endgeräte Forensik mobiler Endgeräte Stefan Maus Lehrgebiet Datennetze FH AACHEN UNIVERSITY OF APPLIED SCIENCES Forensik mobiler Endgeräte Stefan Maus 1 Inhaltsverzeichnis 1. Was sind mobile Endgeräte? 2. Aktuelle

Mehr

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann

App Entwicklung mit Hilfe von Phonegap. Web Advanced II - SS 2012 Jennifer Beckmann App Entwicklung mit Hilfe von Phonegap Web Advanced II - SS 2012 Jennifer Beckmann http://www.focus.de/digital/internet/netzoekonomie-blog/smartphone-googles-android-laeuft-konkurrenz-in-deutschland-davon_aid_723544.html

Mehr

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

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter Einführung in die Android App-Entwicklung Patrick Treyer und Jannis Pinter Agenda Was ist Android? Android Versionen Layout, Strings und das Android Manifest Activities, Intents und Services Entwicklungsumgebung

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

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

Java TV. Seminar Medientechnik. Kristin Doppler 23.06.2003. Übersicht. Einleitung Umgebungen Java TV API - Kategorien. Service- und Selektions-APIs

Java TV. Seminar Medientechnik. Kristin Doppler 23.06.2003. Übersicht. Einleitung Umgebungen Java TV API - Kategorien. Service- und Selektions-APIs Java TV Seminar Medientechnik 23.06.2003 Übersicht Einleitung Umgebungen Java TV API - Kategorien Service- und Selektions-APIs Definitionen Packages Service Selection API Application Lifecycle APIs (Xlets)

Mehr

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG

ARTS Server 3.5. Produktbeschreibung. Uptime Services AG Uptime Services AG Brauerstrasse 4 CH-8004 Zürich Tel. +41 44 560 76 00 Fax +41 44 560 76 01 www.uptime.ch ARTS Server 3.5 Produktbeschreibung Uptime Services AG Inhaltsverzeichnis 1 Einleitung... 2 2

Mehr

Appery.io Mobile Apps schnell und einfach entwickeln

Appery.io Mobile Apps schnell und einfach entwickeln Appery.io Mobile Apps schnell und einfach entwickeln Cloud-basierte Entwicklungsumgebung, keine lokale Installation von Entwicklungsumgebung nötig. Technologie: HTML5. JQuery Mobile, Apache Cordova. Plattformen:

Mehr

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform 02 PROFI News

Mehr

Agile Testautomatisierung im XING Mobile Team

Agile Testautomatisierung im XING Mobile Team Agile Testautomatisierung im XING Mobile Team Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen technischen

Mehr

Bewusster Umgang mit Smartphones

Bewusster Umgang mit Smartphones Bewusster Umgang mit Smartphones Komponenten Hardware OS-Prozessor, Baseband-Prozessor Sensoren Kamera, Mikrofon, GPS, Gyroskop, Kompass,... Netzwerk: WLAN-Adapter, NFC, Bluetooth,... Software Betriebssystem

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

Mobile App Testing. Software Test im mobilen Umfeld ATB Expertentreff, Wien, 2013. Functional Test Automation Tools

Mobile App Testing. Software Test im mobilen Umfeld ATB Expertentreff, Wien, 2013. Functional Test Automation Tools Functional Test Automation Tools Mobile App Testing Software Test im mobilen Umfeld ATB Expertentreff, Wien, 2013 Presenter: Christoph Preschern (cpreschern@ranorex.com) Inhalte» Ranorex Company Overview»

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

Präsentation Von Laura Baake und Janina Schwemer

Präsentation Von Laura Baake und Janina Schwemer Präsentation Von Laura Baake und Janina Schwemer Gliederung Einleitung Verschiedene Betriebssysteme Was ist ein Framework? App-Entwicklung App-Arten Möglichkeiten und Einschränkungen der App-Entwicklung

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

Apps Programmierung von Android-Smartphones

Apps Programmierung von Android-Smartphones Apps Programmierung von Android-Smartphones 2/14 Geplantes Tagesprogramm Vormittag: Überblick / Erwartungen Warum Android? Grundlagen ggf. gemeinsame Installation ggf. Vergleich Delphi - java ein einfaches

Mehr

Technische Beschreibung: EPOD Server

Technische Beschreibung: EPOD Server EPOD Encrypted Private Online Disc Technische Beschreibung: EPOD Server Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee JKU Linz Institut für

Mehr

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Fachhochschule Münster Labor für Software Engineering luzar@fh-muenster.de www.naviki.org 1 Naviki die Idee www.naviki.org 2 Wie funktioniert

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

Agile Testautomatisierung im XING Mobile Team

Agile Testautomatisierung im XING Mobile Team Agile Testautomatisierung im XING Mobile Team Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Team Lead Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen

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

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer Markus Urban.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform

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

Android - Basics. 16.10.2013 Praktikum Enwicklung von Mediensystemen WS13/14

Android - Basics. 16.10.2013 Praktikum Enwicklung von Mediensystemen WS13/14 Android - Basics 1 Heute Was ist Android? Programmieren für Android App-Struktur Activities und Intents App-Design GUI und Layout 2 Android in a nutshell Open-Source (Open Headset Alliance) Basiert auf

Mehr

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Paynet Adapter Spezifikationen Voraussetzungen Datum : 21.07.08 Version : 1.0.0.2 21.07.2008 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung... 3 2 Architektur... 3 2.1 Grundsätze

Mehr

Übung: Verwendung von Java-Threads

Übung: Verwendung von Java-Threads Übung: Verwendung von Java-Threads Ziel der Übung: Diese Übung dient dazu, den Umgang mit Threads in der Programmiersprache Java kennenzulernen. Ein einfaches Java-Programm, das Threads nutzt, soll zum

Mehr

Unterscheidung Tablet PC & Tablet Computer. Tablet PC; ursprüngliche Bezeichnung von Microsoft. Tablets gemeint

Unterscheidung Tablet PC & Tablet Computer. Tablet PC; ursprüngliche Bezeichnung von Microsoft. Tablets gemeint Überblick Unterscheidung Tablet PC & Tablet Computer Tablet PC; ursprüngliche Bezeichnung von Microsoft Mit Tablet Computer sind die heutigen gängigen Mit Tablet Computer sind die heutigen gängigen Tablets

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

Lizenzierung von System Center 2012

Lizenzierung von System Center 2012 Lizenzierung von System Center 2012 Mit den Microsoft System Center-Produkten lassen sich Endgeräte wie Server, Clients und mobile Geräte mit unterschiedlichen Betriebssystemen verwalten. Verwalten im

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

Benutzerdokumentation Web-Portal

Benutzerdokumentation Web-Portal GRUPP: SWT0822 Benutzerdokumentation Web-Portal Yet Another Reversi Game Martin Gielow, Stephan Mennicke, Daniel Moos, Christine Schröder, Christine Stüve, Christian Sura 05. Mai 2009 Inhalt 1. Einleitung...3

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Eine App, viele Plattformen

Eine App, viele Plattformen Eine App, viele Plattformen Anwendungsentwicklung für Mobile Heiko Lewandowski 23.04.2013 EINLEITUNG Festlegung App-Strategie: Welche Ziele möchte ich erreichen? Die Vielzahl der Plattformen und Geräte(hersteller)

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Ein mobiler Electronic Program Guide

Ein mobiler Electronic Program Guide Whitepaper Telekommunikation Ein mobiler Electronic Program Guide Ein iphone Prototyp auf Basis von Web-Technologien 2011 SYRACOM AG 1 Einleitung Apps Anwendungen für mobile Geräte sind derzeit in aller

Mehr

Android, ios und Windows Phone dominieren zurzeit den Markt für mobile Firmware, wesentlich kleiner ist der Marktanteil von Blackberry OS10.

Android, ios und Windows Phone dominieren zurzeit den Markt für mobile Firmware, wesentlich kleiner ist der Marktanteil von Blackberry OS10. Zahlen und Fakten. Firmware Mit Firmware wird bei mobilen Endgeräten der Anteil des Betriebssystems bezeichnet, der auf die Hardware in dem Gerät angepasst ist und mit dem Gerät durch Laden in einen Flash-Speicher

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

Spezifikationen und Voraussetzung

Spezifikationen und Voraussetzung Projekt IGH DataExpert Yellowbill Adapter Spezifikationen Voraussetzungen Datum : 22.08.2013 Version : 1.0.0.2 22.08.2013 Seite 1 von 7 Inhaltsverzeichnis 1 Einleitung...3 2 Architektur...3 2.1 Grundsätze

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

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

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

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

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

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 Inhalt Toast-Meldungen Permissions Sensoren GPS (Global Positioning System) Kamera Anzeigen von Koordinaten auf einer

Mehr

Common Weaknesses of Android Malware Analysis Frameworks. Lars Richter

Common Weaknesses of Android Malware Analysis Frameworks. Lars Richter Common Weaknesses of Android Malware Analysis Frameworks Lars Richter Android Malware Analysis Frameworks Schwachstellen Code Verschleierung Fingerprinting Verdeckte Kommunikation Unerwartete Ereignisse

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

C++ und mobile Plattformen

C++ und mobile Plattformen Dieser Artikel stammt aus dem Magazin von C++.de (http://magazin.c-plusplus.de) C++ und mobile Plattformen Mit diesem Artikel möchte ich euch einen kurzen Überblick über die verschiedenen Plattformen für

Mehr

Java Applet Alternativen

Java Applet Alternativen White Paper Java Applet Alternativen Version 1.0, 21.01.2014 Tobias Kellner tobias.kellner@egiz.gv.at Zusammenfassung: Aufgrund diverser Meldungen über Sicherheitslücken in Java haben in letzter Zeit Browser-Hersteller

Mehr

Sophos Mobile Control Benutzerhandbuch für Apple ios

Sophos Mobile Control Benutzerhandbuch für Apple ios Sophos Mobile Control Benutzerhandbuch für Apple ios Produktversion: 2 Stand: Dezember 2011 Inhalt 1 Über Sophos Mobile Control... 3 2 Einrichten von Sophos Mobile Control auf einem Apple iphone... 4 3

Mehr

Softwareschnittstellen

Softwareschnittstellen P4.1. Gliederung Rechnerpraktikum zu Kapitel 4 Softwareschnittstellen Einleitung, Component Object Model (COM) Zugriff auf Microsoft Excel Zugriff auf MATLAB Zugriff auf CATIA Folie 1 P4.2. Einleitung

Mehr

Hardware Virtualisierungs Support für PikeOS

Hardware Virtualisierungs Support für PikeOS Virtualisierungs Support für PikeOS Design eines Virtual Machine Monitors auf Basis eines Mikrokernels Tobias Stumpf SYSGO AG, Am Pfaenstein 14, 55270 Klein-Winternheim HS Furtwangen, Fakultät Computer

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

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

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Entwicklung und Integration mobiler Anwendungen. Oracle Deutschland B.V. & Co. KG

Entwicklung und Integration mobiler Anwendungen. <Speaker> Oracle Deutschland B.V. & Co. KG Entwicklung und Integration mobiler Anwendungen Oracle Deutschland B.V. & Co. KG Global Users (Millions) Der Trend ist eindeutig. Trend zu mobilen Endgeräten Wachstum des mobilen Datenverkehrs

Mehr

Android-Testautomatisierung mit Robotium

Android-Testautomatisierung mit Robotium Android-Testautomatisierung mit Robotium Daniel Knott XING AG @dnlkntt http://www.adventuresinqa.com Daniel Knott Manager Quality Assurance @dnlkntt daniel.knott@xing.com Daniel Knott hat einen technischen

Mehr

THEMA: CLOUD SPEICHER

THEMA: CLOUD SPEICHER NEWSLETTER 03 / 2013 THEMA: CLOUD SPEICHER Thomas Gradinger TGSB IT Schulung & Beratung Hirzbacher Weg 3 D-35410 Hungen FON: +49 (0)6402 / 504508 FAX: +49 (0)6402 / 504509 E-MAIL: info@tgsb.de INTERNET:

Mehr

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27 Inhaltsverzeichnis Über den Autor 7 Einführung 19 Wie Sie dieses Buch verwenden 19 In diesem Buch verwendete Konventionen 19 Was Sie nicht lesen müssen 20 Törichte Voraussetzungen 20 Wie dieses Buch aufgebaut

Mehr

Kurzanleitung zu XML2DB

Kurzanleitung zu XML2DB Kurzanleitung zu XML2DB Inhaltsverzeichnis 1. Einleitung...3 2. Entwicklungsumgebung...3 3. Betriebsanleitung...3 3.1 Einrichten der Java Umgebung...3 3.2 Allgemeines zu java und javac...4 3.2.1 Allgemeines

Mehr

Desktop Management Interface und andere Initiativen der DMTF

Desktop Management Interface und andere Initiativen der DMTF Desktop Management Interface und andere Initiativen der DMTF Gliederung DMI Übersicht Architektur, Organisation Informationsmodell Kommunikationsmodell Sicherheit DMI-Zertifizierung Weitere DMTF-Initiativen

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

Dateisysteme mit Plugin-Funktion

Dateisysteme mit Plugin-Funktion Dateisysteme mit Plugin-Funktion Basierend auf Reiser 4 unter Linux http://llugb.amsee.de/logo.gif Ausgearbeitet und vorgetragen von Michael Berger 1/23 Agenda Die Idee Dateisysteme mit Plugin-Funktion

Mehr

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG

Mobile App development mit Xamarin. Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG Mobile App development mit Xamarin Christian Hassa (ch@techtalk.ch) Andreas Willich (awi@techtalk.ch) TechTalk Software AG % der Bevölkerung mit Smartphone Smartphone Durchdringung >50% 34% 43% 54% DACH

Mehr

Inhaltsverzeichnis. Apps für Android entwickeln

Inhaltsverzeichnis. Apps für Android entwickeln Inhaltsverzeichnis 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

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

Antwortzeitverhalten von Online Storage Services im Vergleich

Antwortzeitverhalten von Online Storage Services im Vergleich EPOD Encrypted Private Online Disc Antwortzeitverhalten von Online Storage Services im Vergleich Fördergeber Förderprogramm Fördernehmer Projektleitung Projekt Metadaten Internet Foundation Austria netidee

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

IT-Sicherheit mobiler Applikationen zur Unterstützung von Geschäftsprozessen. Bachelorarbeit

IT-Sicherheit mobiler Applikationen zur Unterstützung von Geschäftsprozessen. Bachelorarbeit IT-Sicherheit mobiler Applikationen zur Unterstützung von Geschäftsprozessen Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft der

Mehr

Vom Smart Dust zum Smart Phone: Verfügbare SensingPlattformen. Adrian Friedli adrianfriedli@student.ethz.ch

Vom Smart Dust zum Smart Phone: Verfügbare SensingPlattformen. Adrian Friedli adrianfriedli@student.ethz.ch Vom Smart Dust zum Smart Phone: Verfügbare SensingPlattformen Adrian Friedli adrianfriedli@student.ethz.ch Verteilte Systeme Seminar, ETH Zürich, 24. Februar 2009 Übersicht Sensornetze Mobiltelefone Sensornetze

Mehr

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!.

+++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!. +++ Bitte nutzen Sie die integrierte Audio-Funktion von WebEx (Menü Audio -> Integrated Voice Conference -> Start auswählen), um uns zu hören!!!. +++ Oracle Mobile Cloud Service (MCS) MCS SDK & MAF MCS

Mehr

Bachelorarbeit. Preisvergleichdienste auf Smartphones: Vergleich deutscher Anbieter und technische Trends. Vorgelegt von.

Bachelorarbeit. Preisvergleichdienste auf Smartphones: Vergleich deutscher Anbieter und technische Trends. Vorgelegt von. Leibniz Universität Hannover Fachbereich Wirtschaftswissenschaften Lehrstuhl Wirtschaftsinformatik Leiter: Prof. Dr. Breitner Bachelorarbeit Zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.)

Mehr

Telefonieren mit "App's"! Android-Smartphone und Android-Tablet-PC mit Bria Informationen zur Nutzung von TeScript

Telefonieren mit App's! Android-Smartphone und Android-Tablet-PC mit Bria Informationen zur Nutzung von TeScript Telefonieren mit "App's"! Android-Smartphone und Android-Tablet-PC mit Bria Informationen zur Nutzung von TeScript Der Begriff App ist die Kurzform für Applikation und bedeutet Anwendungssoftware. Mit

Mehr

Telefonieren mit "App's"! Android-Smartphone und Android-Tablet-PC mit Bria Informationen zur Nutzung von TeScript

Telefonieren mit App's! Android-Smartphone und Android-Tablet-PC mit Bria Informationen zur Nutzung von TeScript Telefonieren mit "App's"! Android-Smartphone und Android-Tablet-PC mit Bria Informationen zur Nutzung von TeScript Der Begriff App ist die Kurzform für Applikation und bedeutet Anwendungssoftware. Mit

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

Bria-iPad-TeScript-v1.0.doc

Bria-iPad-TeScript-v1.0.doc Telefonieren mit "App's"! ipad mit Bria Informationen zur Nutzung von TeScript Der Begriff App ist die Kurzform für Applikation und bedeutet Anwendungssoftware. Mit dem Herunterladen von App's kann man

Mehr

EEX Kundeninformation 2007-09-05

EEX Kundeninformation 2007-09-05 EEX Eurex Release 10.0: Dokumentation Windows Server 2003 auf Workstations; Windows Server 2003 Service Pack 2: Information bezüglich Support Sehr geehrte Handelsteilnehmer, Im Rahmen von Eurex Release

Mehr