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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SDK Implementierung & Account- Verknüpfung Stand 02.01.2015

SDK Implementierung & Account- Verknüpfung Stand 02.01.2015 SDK Implementierung & Account- Verknüpfung Stand 02.01.2015 SDK Implementierung... 3 Google Analytics SDK... 3 Google Analytics E-Commerce Tracking... 4 Google Remarketing-TAG für Apps... 4 Google Analytics

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

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

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

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

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

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

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

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

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

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

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

Consulting Development Design

Consulting Development Design Consulting Development Design 59. Bundesweites Gedenkstättenseminar - AG 4 Agenda Vorstellung Was verbirgt sich hinter einer mobilen App? Beispiel TABTOUR mehr als nur eine App Was ist jetzt und zukünftig

Mehr

Mobile Security Smartphones

Mobile Security Smartphones Mobile Security Smartphones Schmelztiegel privater und geschäftlicher Aktivitäten eberhard@keyon.ch V1.1 2011 by keyon (www.keyon.ch) Über Keyon Warum Smartphones Welcher Nutzen wird vom Unternehmen erwartet?

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 Kurs Online Kurs Entwicklung auf Android-Handys

Android Kurs Online Kurs Entwicklung auf Android-Handys Android Kurs Online Kurs Entwicklung auf Android-Handys Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses Modul Eins - Programmierung J2ee 1) Grundlegende Java - Programmierung : Grundlegende

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

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

3.9 Grundelemente einer Benutzeroberfläche

3.9 Grundelemente einer Benutzeroberfläche 92 3 Grundlagen einer ios-anwendung 3.8.4 Target-Actions Einer der häufigsten Anwendungsfälle bei einer Oberfläche ist das Betätigen einer Schaltfläche durch einen Anwender, woraufhin eine bestimmte Aktion

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

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

Mobile Enterprise Application Platforms

Mobile Enterprise Application Platforms Mobile Enterprise Application Platforms 17. April 2013 Fachbereich Wirtschaft und Gesundheit Prof. Dr. Volker Wiemann volker.wiemann@fh bielefeld.de +49 (0) 521/106 389 Problem 0. Ausgangslage Blackberry

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

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

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

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

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

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

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

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

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

Programmieren für iphone und ipad

Programmieren für iphone und ipad Markus Stäuble Programmieren für iphone und ipad Einstieg in die App-Entwicklung für das ios 4 3., aktualisierte und erweiterte Auflage dpunkt.verlag 1 Einleitung 1 1.1 Begriffe 2 1.2 Was behandelt dieses

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

Sophos Mobile Control Benutzerhandbuch für Android

Sophos Mobile Control Benutzerhandbuch für Android Sophos Mobile Control Benutzerhandbuch für Android Produktversion: 2 Stand: Dezember 2011 Inhalt 1 Über Sophos Mobile Control... 3 2 Einrichten von Sophos Mobile Control auf einem Android-Mobiltelefon...

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

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

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

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

IB-AC511 Handbuch - Deutsch - V. 1.0

IB-AC511 Handbuch - Deutsch - V. 1.0 IB-AC511 Handbuch - Deutsch - V. 1.0 Inhalt Content Einleitung... 2 Schnellstart... 2 Hardware Einstellungen... 2 Android Shadow ToolBar... 6 Android Shadow Funktionen... 7 1.Kabelverbindung zum Laden...

Mehr

Das etwas andere Smartphone

Das etwas andere Smartphone Das etwas andere Smartphone Frank Prengel Technical Evangelist Microsoft Deutschland GmbH http://blogs.msdn.com/windowsphone 01./02. Dezember 2010 Köln www.iphonedevcon.de Microsoft? Auf der iphone DevCon??

Mehr

Softwareentwicklungsprozess im Praktikum. 25. April 2013

Softwareentwicklungsprozess im Praktikum. 25. April 2013 Softwareentwicklungsprozess im Praktikum 25. April 2013 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit

Mehr

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0

- Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 Projektbezeichnung Projektleiter Verantwortlich - Entwurfsphase: Entwurfsbeschreibung Gesamtsystem - Version: 1.0 MSP-13 - Integration eines Semantischen Tagging Systems in Microsoft Sharepoint Martin

Mehr

re-lounge GmbH MEDIENBÜRO

re-lounge GmbH MEDIENBÜRO re-lounge GmbH MEDIENBÜRO Think mobile: Die Bedeutung des mobilen Web für Unternehmen 26. JANUAR 2013 01 Ansprechpartner Oliver Schmitt // Geschäftsführer der re-lounge GmbH oliver.schmitt@re-lounge.com

Mehr

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte

Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Integration mobiler Endgeräte in Medizinprodukte und Medizintechnik-nahe Produkte Agenda Problemstellung Medizinprodukt App Grundlagen Szenarien (Problemstellungen und Lösungsansätze) 03.06.2013 2 Innovationen

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

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

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

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

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

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

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

AM BeIsPIel Der DAsInvestMent.coM MoBIl WeB APP

AM BeIsPIel Der DAsInvestMent.coM MoBIl WeB APP AM BeIsPIel Der DAsInvestMent.coM MoBIl WeB APP 2 Inhalt Warum ist es sinnvoll eine spezielle Applikation für mobile Geräte zu entwickeln? Seite 5 Welche Möglichkeiten der Umsetzung gibt es? 6 Mobile Applikation

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

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

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

Eine kurze Einführung in die Technologiegrundlage. Future Internet Technologies and Funding for Agri-Food, Logistics, Transport and Manufacturing

Eine kurze Einführung in die Technologiegrundlage. Future Internet Technologies and Funding for Agri-Food, Logistics, Transport and Manufacturing Eine kurze Einführung in die Technologiegrundlage www.finish-project.eu Future Internet Technologies and Funding for Agri-Food, Logistics, Transport and Manufacturing Was ist FIWARE? Future Internet Ware

Mehr

Liste der Handbücher. Liste der Benutzerhandbücher von MEGA

Liste der Handbücher. Liste der Benutzerhandbücher von MEGA Liste der Handbücher Liste der Benutzerhandbücher von MEGA MEGA 2009 SP4 1. Ausgabe (Juni 2010) Die in diesem Dokument enthaltenen Informationen können jederzeit ohne vorherige Ankündigung geändert werden

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

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit

Vorteile von Java und Konvergenz Service Creation mit JAIN Network Management mit JMX Fazit Hochschule für Technik und Architektur Chur Dr. Bruno Studer Studienleiter NDS Telecom, FH-Dozent bruno.studer@fh-htachur.ch 1 GSM: 079/610 51 75 Agenda Vorteile von Java und Konvergenz Service Creation

Mehr

Managed VPSv3 Was ist neu?

Managed VPSv3 Was ist neu? Managed VPSv3 Was ist neu? Copyright 2006 VERIO Europe Seite 1 1 EINFÜHRUNG 3 1.1 Inhalt 3 2 WAS IST NEU? 4 2.1 Speicherplatz 4 2.2 Betriebssystem 4 2.3 Dateisystem 4 2.4 Wichtige Services 5 2.5 Programme

Mehr

Glossarverwaltung GV3

Glossarverwaltung GV3 Glossarverwaltung GV3 Designbeschreibung VQWiki Leszek Kotas Sebastian Knappe Gerrit Mattausch Raimund Rönn 23. Mai 2004 Inhaltsverzeichnis 1 Allgemeines 3 1.1 Kurzcharakteristik.................................

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

TM1 mobile intelligence

TM1 mobile intelligence TM1 mobile intelligence TM1mobile ist eine hochportable, mobile Plattform State of the Art, realisiert als Mobile BI-Plug-In für IBM Cognos TM1 und konzipiert als Framework für die Realisierung anspruchsvoller

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

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office 1. WINGAEB UND LINUX... 2 1.1. Systemvoraussetzungen... 2 1.2. Anmerkungen... 2 2. DIE INSTALLATION VON WINGAEB... 3 2.1.

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

Bachelor Thesis Michael Barth

Bachelor Thesis Michael Barth Bachelor Thesis Michael Barth 1. One-Time Passwords 2. OTPW 3. Android Plattform 4. App Entwicklung 5. OTPManager App Umgeht Sicherheitsversprechen durch verschlüsselte Passwörter komplett Password muss

Mehr

ArcGIS Online Werkstatt

ArcGIS Online Werkstatt ArcGIS Online Werkstatt Die Möglichkeiten mit ArcGIS Online for Organizations Christiane Radies und Gregor Radlmair Esri Deutschland GmbH 27. Juni 2013, Stuttgart Inhalte + Die ArcGIS Online Subskription

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