Einführung in das mobile Betriebssystem Android

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Einführung in das mobile Betriebssystem Android"

Transkript

1 Einführung in das mobile Betriebssystem Android Seminararbeit von Alexander Cüpper Matr.-Nr Dezember Betreuer : Prof. Dr. Volker Sander 2. Betreuer : Dr.-Ing. Christoph Butenweg

2 Inhaltsangabe 1 Einleitung 2 Vergleich Android 2 vs. Apple ios 4 und Symbian^3 2.1 Übersicht der Betriebssysteme Apple ios Symbian^ Google Android 2.x 2.2 Der Vergleich 2.3 Warum Android? 3 Der Aufbau von Android 3.1 Architekturen Die Dalvik Virtual Machine Die Basisbibliotheken Anwendungsrahmen (Application Framework) Anwendungsschicht (Applications) 3.2 Oberflächengestaltung Das Android-Manifest View Layout Activity 3.3 Weitere Komponenten einer Anwendung Services Die Klasse Context Content Provider Broadcast Receiver 3.4 Intents Explizite Intents Implizite Intents Intent-Filter 4 Programmierung in Java 4.1 Warum Java? 4.2 Android Development Tools(ADT) ADT-Plugin Android Emulator Android Debug Bridge(adb) sqlite dx-tool 4.3 Einstiegsbeispiel für Android 5 Fazit / Ausblick 6 Anhang / Quellen 6.1 Literaturverzeichnis 6.2 Abbildungsverzeichnis 1

3 1 Einleitung 1.1 Motivation und Ziel Am Lehrstuhl für Baustatik und Baudynamik der RWTH Aachen wurde und wird die Software MINEA entwickelt und weiterentwickelt. Durch die Software ist es möglich die Standsicherheitsnachweise von Mauerwerksbauten und Mauerwerksbauten in Mischbauweise unter Vertikal- und Horizontallasten aus Erdbeben und Wind durchzuführen. Durch eine integrierte Datenbankstruktur können alle Mauerwerksund Betonmaterialen in der Berechnung verwendet werden. Die Berechnung erfolgt in MINEA, je nach Anforderungen des konkreten Objektes, anhand einer zwei- oder dreidimensionalen Modellierung des Tragwerks. Innerhalb der Software ist ebenfalls eine Datenbank für Erdbebenzonen für Deutschland. Mit dieser lassen sich in einem Tool von MINEA elastische Antwortspektren für bestimmte Untergrund- und Baugrundklassen anzeigen. Im Zuge meiner anstehenden Bachelorarbeit werde ich dieses Tool als Applikation für Android entwickeln. Das Tool soll alleinstehend auf mobilen Endgeräten mit dem Betriebssystem Android funktionieren. Zusätzlich zum Grundrahmen des Tools soll eine Verlinkung mit Google Maps implementiert werden. Mit dieser Seminararbeit möchte ich einen Einblick in das Betriebssystem Android geben. Dabei wird der Aufbau erläutert und ein Überblick über die Entwicklung von Android Applikationen gegeben, um für die Bachelorarbeit eine gewisse Grundlage zu schaffen. 2

4 2 Vergleich Android 2 vs. Apple ios 4 und Symbian^3 2.1 Übersicht der Betriebssysteme Um einen guten Überblick über Android zu bekommen, möchte ich neben Android zunächst die Betriebssysteme Apple ios und Symbian vorstellen um diese mit Android zu vergleichen und abgrenzen zu können Apple ios 4 Das Betriebssystem ios 4 von Apple wurde mit dem Erscheinen des iphone Anfang 2007 vorgestellt. ios ist ein auf das iphone angepasstes und auf ARM(Advanced RISC Machine)-Prozessoren portierter Abkömmling von Mac OS X. Nicht nur auf dem iphone findet ios Verwendung. Die Apple-Produkte ipad, ipod und die zweite Generation der Apple TV laufen ebenfalls mit ios, womit jedoch die Anzahl von Endgeräten schon ausgeschöpft ist. Es ist zwar möglich, in Form von Klonen der Original ios, das Betriebssystem auf anderen Smartphones zu installieren - jedoch ist dies von Apple nicht beabsichtigt. Wenn man bei ios zum Beispiel einen Musiktitel auf das Abbildung 1- ios Homescreen iphone/den ipod portieren möchte, ist man an itunes gebunden, denn alles was mit Multimedia und Synchronisation von Kalendereinträgen, Kontakten und zusammenhängt, läuft über itunes. Hierbei funktioniert alles nicht so einfach, wie mit anderen Smartphones. Man kann die Geräte dabei einfach an einen PC anschließen und sich als externes Laufwerk anzeigen lassen. Daraufhin kann man die Geräte einfach per Drag and Drop mit Musik oder Ähnlichem füllen. Wenn man sein ios Betriebssystem mit Zusatzprogrammen(Spiele o.ä.) versehen möchte, kommt man um den App Store von Apple nicht herum. Durch diesen wurde der Markt für Zusatzprogramme erst richtig geschaffen. Dementsprechend gut ist die Handhabung, die Sortierung und das Angebot im App Store, welcher inzwischen mehr als Applikationen fasst[stand Oktober 2010]. Kritik muss Apple einstecken, wenn es um Zulassung und Verweigerung von Software zur Aufnahme in den App Store geht, da die Kriterien, nach denen dies gemacht wird, nicht offengelegt sind und deswegen auch als willkürlich beschrieben werden können. Zum Beispiel werden Applikationen, wie zum Beispiel ein Mailclient eines 3

5 Drittanbieters, die aber auch durch das eigene Betriebssystem zur Verfügung gestellt werden, nicht für den App Store freigeschaltet. Seit ios 4 ist das Betriebssystem endlich multitaskingfähig, was andere Betriebssysteme schon lange waren. Apple argumentierte bisher, dass unkontrolliertes Multitasking zu viel Akkuleistung verbrauchen würde, was nicht im Sinne des Nutzers ist. Außerdem ist Apple der Meinung, dass Multitasking nur mit genügend Arbeitsspeicher benutzbar sei. Auf Grund dessen sei Multitasking nicht auf allen bzw. älteren Endgeräten von Apple möglich. Ein weiteres Problem ist, dass die Anwendungen an Multitasking angepasst werden müssen, da die alten Anwendungen nicht für Multitasking programmiert worden sind. Vermutlich werden viele ältere Anwendungen nicht angepasst, wodurch die Nutzung von Multitasking nicht ausgereizt wird. Der Sensorbildschirm der Endgeräte dient zur Bedienung des ios, da es von Anfang an auf kapazitive Touchscreens ausgelegt worden ist. Dadurch werden Multi-Touch- Gesten unterstützt, welche sich an reelle Fingerbewegungen lehnen und deswegen das Bedienen intuitiv vereinfachen. ios Applikationen können nur auf dem Betriebssystem Mac OS X entwickelt werden, da die integrierte Entwicklungsumgebung Xcode von Apple nur unter Mac OS X läuft. Xcode mit der iphone-sdk bekommt man kostenlos nachdem man sich bei Apple als Entwickler registriert hat, wobei sich die Kosten auf 99$ im Jahr belaufen. Zur Programmierung wird Obejctive-C genutzt, was eine objektorientierte Spracherweiterung von Standard C ist. Zuletzt sei gesagt, dass ios kein quelloffenes System ist, wodurch eine schnelle Reaktion auf Trends und Innovationen nicht gegeben ist Symbian^3 Symbian^3 ist ein Betriebssystem für Smartphones und PDAs, welches von der Non-Profit-Organisation Symbian Foundation als Open-Source System verwaltet wird. Die Symbian Foundation wurde 2008 unter anderem von Nokia, Sony Ericsson, NTT DoCoMo, Motorola, Texas Instruments, Vodafone, LG Electronics, Samsung Electronic, STMicorelectronics sowie AT&T gegründet. Im Sommer 2010 wurde der Source Code von Symbian^3 vollständig als Open Source veröffentlicht. Bereits 2001 kam eine frühere Symbian-Version auf Smartphones von Nokia und Sony Ericsson zum Einsatz. Inzwischen jedoch handelt es sich um ein aussterbendes Betriebssystem, da zum Beispiel sowohl Samsung als auch Sony Ericsson verkündet haben, bei zukünftigen Smartphones auf Symbian zu verzichten. Symbian^3 hat vieles mit Desktop-Betriebssystemen Abbildung 2 Symbian Homescreen 4

6 gemeinsam. Es verfügt unter anderem über präemptives Multitasking, Multithreading und Speicherschutz. Die Geräteauswahl bei Symbian beschränkt sich zwar auf Handys bzw. Smartphones, jedoch ist unter diesen die Auswahl sehr groß. Fast alle dieser Geräte verfügen über ein gutes Multimediaangebot(Kamera, Musik- und Videoplayer), jedoch ist fraglich, wieso dort so viele Ressourcen verschwendet werden und nicht eher in Oberfläche und App Store investiert wird. Der Symbian-Homescreen hat sich zum Beispiel in den letzten Jahren ebenso wenig verändert wie die Oberfläche und die Art der Bedienung. Symbian^3 hat keinen eigenen zentralen App Store, welcher nennenswert viele Applikationen zur Verfügung stellt. Das keine feste Verdrahtung zu einem bestimmten Store vorhanden ist, erkennt man auch daran, dass man beim ersten Starten der Store-App der verschiedenen Anbieter auf dem Smartphone einen Storeclient herunterladen muss. In der Vergangenheit hat Symbian Maßstäbe gesetzt, was die Bedienung angeht. Jedoch hießen zu dieser Zeit Smartphones noch Handys und die Steuerung war mittels Joystick oder Vierwege-Pad und Okay-Taste üblich. Die meisten Smartphones mit Symbian haben auf Grund dessen meist gar keinen Touchscreen oder, falls doch, eine zusätzliche Tastatur zur Bedienung. Nokia hat ebenfalls angekündigt, dass Symbian sehr bald in der Multifunktionsklasse von MeeGo abgelöst werden wird. Dabei handelt es sich um ein offenes Linux- System. Andere Klassen, wie z.b. die Businessklasse, werden weiter mit Symbian laufen. Resultierend aus alten gutlaufenden Zeiten ist Symbian sehr weit verbreitet, dadurch ist es auch im Visier von Virenprogrammieren. Durch Einführen eines Zertifikatssystems ab einer Vorversion von Symbian^3 ist die Sicherheit erheblich erhöht worden. Programme ohne ein gültiges Zertifikat von SymbianSigned können nicht mehr installiert werden. Deswegen kann eine gecrackte oder mit Viren verseuchte Software nicht mehr ohne Umwege auf dem Endgerät installiert werden. Um für Symbian programmieren zu können braucht man allem voran Programmierkenntnisse in C++. Alles Weitere, was man zum Entwickeln für Symbian braucht, wird von Qt Development Frameworks, einer Sparte von Nokia, geliefert. Darin eingeschlossen ist unter anderem eine C++-Bibliothek und die Entwicklungsumgebung Qt Creator für alle möglichen Betriebssysteme. Auf der Entwicklerseite von Nokia werden diese kostenlos zum Download in einem Komplettpacket angeboten. Der Vorteil hierbei liegt darin, dass man so ziemlich alle Klassen, die man bei der Desktopentwicklung verwendet, benutzen kann. Unterstützung für relationale Datenbanken in der Implementierung von SQLite wird ebenso von Symbian^3 geboten. Abschließend kann man sagen, dass die Entwicklung eher von Symbian weg geht, und in die Richtung von MeeGo läuft, da Symbian in vielen Punkten einfach zu weit abgeschlagen gegenüber anderen Betriebssystemen ist. Der Markt hat sich deutlich 5

7 gewandelt. Die aktuelle Governance-Struktur von Symbian ist diesem nicht mehr angemessen Google Android 2.X Android ist ein Betriebssystem bzw. eine Softwareplattform, welche von der, von Google Inc. geleiteten, Open Handset Alliance entwickelt wird. Android wird auf mobilen Geräten, wie Smartphones, Mobiltelefonen, Netbooks und Tablets genutzt. Die Open Handset Alliance wurde von der Firma Google am 5. November 2007 mit 47 Partnern gegründet. Unter den Gründern waren Firmen aus den unterschiedlichsten Branchen vertreten. Dazu gehörten Software-Firmen, Mobiltelefonhersteller, Netzbetreiber, Chiphersteller und Marketingunternehmen. Damit war jede Branche, die wichtig für das Entwickeln von guten mobilen Geräten sind in dem Konsortium vorhanden. Inzwischen beläuft sich die Anzahl der Mitglieder auf 78 unterschiedliche Firmen. Schon im Sommer 2005 kaufte Google die bis dahin relativ unbekannte, im Herbst 2003 gegründete, Firma Android. Man wusste nur, dass Android Software für Mobiltelefone entwickelt, insbesondere mit dem Hauptaugenmerk auf standortbezogene Dienste. Das System Android ist eine freie Software und komplett quelloffen. Dadurch haben die einzelnen Unternehmen die Möglichkeit das Betriebssystem auf ihre eigenen Bedürfnisse bzw. Vorstellungen anzupassen. Das ist einer der Gründe, weswegen es eine so große Auswahl an mobilen Endgeräten von momentan 14 vertreibenden Unternehmen gibt, wobei HTC mit 14 Smartphones die größte Auswahl bietet. Diese Auswahl bringt aber nicht nur Vorteile mit sich. Zum einen wird das Betriebssystem durch die vielen eigenen Varianten zersplittert und zum anderen produzieren die Firmen so viele Produkte, dass sie aus Eigeninteresse keine Updates des Betriebssystems zur Verfügung stellen. Das entspricht jedoch nicht dem Kerngedanken des offenen Systems Android. Dieses Problem soll jedoch mit späteren Versionen entfernt werden, indem die Google-Software und Hersteller- Oberfläche entkoppelt werden. Dadurch kann der Kunde die Neuerungen von Android nutzen ohne darauf warten zu müssen, dass die verschiedenen Unternehmen ihre Version der neuen Android-Version entwickelt haben. Das ist aber das Einzige, was man bei Quelloffenheit kritisieren kann. Es gibt dadurch zum Beispiel eine umfangreiche Hilfe im Netz mit APIs, Tutorials und Code- Beispielen. Der größte Vorteil ist jedoch die schnelle Entwicklung von Android. Nicht nur das Betriebssystem kann sich so schnell an Trends und Innovationen anpassen, auch die Vielfalt an Applikationen steigt stetig. Jeden Monat kommen ca Applikationen zu den bereits [Stand: ] vorhandenen Applikationen hinzu, damit ist der Android Market die am schnellsten wachsende Market-Software, 6 Abbildung 3 - Android Homescreen

8 obwohl das Projekt noch jung ist. Diese Tatsachen machen den Market natürlich für den Endnutzer sehr interessant, vor allem weil viele Applikationen kostenlos zu erhalten sind. Zu Anfang der Entwicklung von Android war ein Google-Konto Pflicht, jedoch hat sich dies im Lauf der Zeit gelockert und man braucht nicht unbedingt ein Google-Konto zu eröffnen, was allerdings empfehlenswert ist, da man sonst nicht alle Features des Betriebssystem nutzen kann. Ohne das Google-Konto kann zum Beispiel der Android Market nicht benutzt werden. Durch das Google-Konto hat man zusätzlich die Möglichkeit seine Kontakte, Kalendereinträge etc. auf dem Computer zu synchronisieren und zu sichern. Die Android-Architektur beruht auf den Linux-Kernel der Version 2.6. Er ist für die Kernsystemservices Speicherverwaltung, Prozessverwaltung und Netzwerkkommunikation zuständig. Zusätzlich bildet er die Hardwareabstraktionsschicht für die Software und stellt die Gerätetreiber für das System. Ebenso wichtig sind die Android-Java-Klassenbibliotheken und die Dalvik Virtual Machine, welche der Java Virtual Machine sehr ähnelt. Die DVM erzeugt aus Java-Klassen den sogenannten Dalvik-Bytecode. Anwendungen für Android werden ausschließlich mit Java geschrieben, nur in geschwindigkeitskritischen Bereichen greifen diese Anwendungen auf in C oder C++ geschriebene, native Bibliotheken zu. Mit der Version 2.2 von Android wurde erstmals ein Just-In-Time-Compiler implementiert, wodurch die Bedienung und das Ausführen von Anwendungen viel schneller wurde, da die meisten Anwendungen in Java programmiert wurden. Bei der Entwicklung von Android wurde von Anfang an auf die Zukunftstechnologie, die Multi-Touchscreenbedienung, gesetzt. Ebenso wichtig war bzw. ist Multitasking gewichtet. Android-Entwickler können den vollen Sprachumfang von Java 5 mit Generics, Collections sowie umfangreiche Libraries zur Verwendung von GPS-Daten, Audio, Video etc. nutzen. Zusätzlich gibt es spezielle APIs zur Interaktion mit Google- Diensten. Die Oberfläche von Android wird mit XML deklariert. Abschließend sei noch gesagt, dass Android nach dem Marktforscherunternehmen Gartner spätestens im Jahr 2014 Marktführer, vor Symbian und ios, wird. 2.2 Der Vergleich Nachdem ich die drei Betriebssysteme vorgestellt habe, möchte ich nun ihre Stärken und Schwächen vergleichen. Bevor man die Betriebssysteme vergleicht, sollte man feststellen, dass es momentan nicht das perfekte Betriebssystem gibt. Das liegt daran, dass jeder andere Anforderungen an ein solches Betriebssystem bzw. an das daran gekoppelte Smartphone hat. Dabei unterscheidet man meist zwischen dem geschäftlichen und dem privaten Bereich. 7

9 Bei meiner Arbeit möchte ich jedoch etwas anders an den Vergleich gehen. Mein Hauptaugenmerk liegt auf den Punkten Programmierung von Applikationen und der zukünftig Entwicklung der Betriebssysteme. Zunächst möchte ich darauf eingehen, wie momentan die Entwicklung der Betriebssysteme vonstattengeht. Auf der einen Seite hat man Symbian und Android, welche von Kooperationen von verschiedenen Firmen entwickelt werden und zusätzlich ihren Code größtenteils quelloffen zur Verfügung stellt. Bei Android ist es die Open Handset Alliance, welche momentan wächst, da immer mehr Firmen bei ihren Endprodukten auf Android setzen. Bei Symbian handelt es sich um die Symbian Abbildung 4 Weltmarktentwicklung der Smartphone- Betriebssysteme Foundation, welche jedoch kleiner wird. Große Firmen wie Samsung und Sony Ericsson sind dieses Jahr ausgestiegen und wollen in Zukunft auf Android setzen. Auf der anderen Seite hat man Apples ios, welches nur von Apple weiterentwickelt wird. Zusätzlich ist der Code von ios nicht quelloffen, wodurch die Anzahl der Entwickler, welche an ios arbeiten deutlich überschaubarer ist. Da der Smartphone- Markt ein sich schnell ändernder Markt ist, liegen besonders dort die Vorteile bei Android und Symbian, da man schnell auf Trends und Innovationen reagieren kann. Symbian liegt dabei jedoch sehr weit hinter Android, da Symbian erst mit Symbian^3 quelloffen geworden ist. Zusätzlich ist Symbian nicht auf Touchscreenbedienung, sondern auf die alte Generation von Handys ausgelegt. Dadurch liegt Symbian^3 im direkten Vergleich nicht nur hinter Android, sondern auch hinter ios. Es sei auch gesagt, dass Apple zwar nur die besten Leute einstellt, jedoch mit Google in Verbindung mit der Open Handset Alliance nun einen Konkurrenten bekommen hat, den es so vorher nicht gegeben hat. Aus diesen Gründen liegt in diesem Bereich Android klar an erster Position. Ein weiterer Vorteil von Android ist ganz klar die große Endgerätauswahl. Egal in welchen Bereichen sie ein Smartphone suchen, sie werden immer eines finden, welches ihren Vorstellungen entspricht. Symbian hat zwar auch eine große Anzahl an Endgeräten, jedoch wird es in Zukunft nicht mehr so viele neue Symbian Smartphones geben. Es steigen einfach zu viele Endgeräthersteller aus und wechseln zu Android. Für ios hat der Verbraucher nur die Wahl zwischen den verschiedenen Modellen des iphone bzw. ipad etc. Somit hat ios in dieser Hinsicht absolut keine Chance um gegen Android zu bestehen, da ein einziges Smartphone 8

10 für den Massenmarkt keine Chance gegen Dutzende auf viele Kundengruppen spezialisierte Geräte hat. Abbildung 5 - Endgeräte Ein gut organisiertes und umfangreiches Angebot an Zusatzanwendungen in einem Store, für das gewählte Betriebssystem ist natürlich von Vorteil. So kann man sein Smartphone noch besser an seine Vorstellungen anpassen und erweitern. Für einen Entwickler von Applikationen ist dies wichtig, da man über den Store seine Applikationen am besten verbreiten bzw. verkaufen kann. Hierbei zeigt Symbian, wie man es nicht machen sollte. Es gibt keinen eigenen Store, die Anwendungen müssen entweder bei den Herstellern der Smartphones oder im Internet gesucht werden. Die Stores von Android und ios hingegen sind beide sehr umfangreich und gut organisiert. Man kann auch hier einen kleinen Vorteil bei Android aufgrund der Quelloffenheit sehen. Deswegen gibt es viel mehr Entwickler, die Anwendungen für Android schreiben und in den Stores kostenlos oder kostenpflichtig bereitstellen. Dadurch wird im Laufe der Zeit der Android Market von Google den AppStore von Apple überholen. Apple muss jedoch einen Kritikpunkt, wie oben im Überblick schon erwähnt, hinnehmen. Damit eine Anwendung für den Store freigeschaltet wird, muss sie durch Apple zertifiziert werden. Die Kriterien dafür sind jedoch nicht öffentlich. Anwendungen, welche Alternativen zu den von Apple entwickelten Anwendungen sind, werden wohl aus reinem Geschäftsinteresse meist nicht freigegeben. Während Apple die Zertifikate zur Kontrolle der Auslieferung über den App Store verwendet, dienen sie bei Google nur dazu, um sicherzustellen, dass alle Updates der Anwendung vom selber Entwickler stammen. Man braucht jedoch einen Google- Account, damit man den Android Market nutzen kann, was bei einigen Kunden, auf Grund der Datensammlung von Google, bedenken auslöst. Trotzdem wird auf kurz oder lang Android in diesem Bereich das beste Angebot anbieten. Im Zeitraum von März 2010 bis Oktober 2010 ist die Anzahl von Anwendungen im AppStore um 68% und im Android Market um 233% gestiegen, was die Entwicklung deutlich unterlegt. 9

11 Abbildung 6 - Anzahl Applikationen in App Stores Nun möchte ich kurz auf die Möglichkeiten und Rahmenbedingungen für die Programmierung von Anwendungen für die einzelnen Betriebssysteme eingehen. Einzig für ios braucht man bestimmte Hardware - einen Apple-Rechner mit Mac OS X -, damit man die Entwicklungsumgebung zum Programmieren der Anwendungen installieren kann. Bei Symbian und Android spielt dies keine Rolle. Die Software, die man zur Entwicklung nötig ist, bekommt man für Android und Symbian kostenlos. Um für ios programmieren zu können muss man sich bei Apple als Entwickler registrieren und einen Jahresbeitrag von 99$ zahlen. In diesen beiden Punkten liegt der Vorteil deutlich bei Symbian und Android, da man mit wenig Aufwand direkt in die Programmierung einsteigen kann. Bei der Entwicklung von Anwendungen für ios wird Objective-C verwendet, zusätzlich kann C++ und JavaScript, als interpretierte Sprache, benutzt werden. Für Symbian wird ebenfalls in C++ entwickelt, jedoch mit der C++-Bibliothek Qt. Durch die Bibliothek von Qt werden viele Möglichkeiten von Desktopsystemen auch für mobile Geräte ermöglicht. Java wird für Android genutzt, dabei kann der Entwickler auf den kompletten Sprachumfang von Java 5 zurückgreifen. Hierbei hat jede Sprache für sich seine Vor- und Nachteile, somit kommt es auf den Entwickler selbst an für welche Programmiersprache er sich entscheidet. Einen Punkt sollte man hierbei jedoch noch ausarbeiten: Multitasking ist nicht mit allen drei Betriebssystemen gleich gut ausnutzbar. Multitasking war bis Version 4.0 den von Apple entwickelten Anwendungen vorbehalten, da nur die Entwickler von Apple Multitasking nutzen durften. Aber auch mit Version 4.0 ist Multitasking bei ios noch nicht ausgereift. Dies liegt größtenteils daran, dass die alten Anwendungen für Multitasking umgeschrieben werden müssen und dies nicht bei allen alten Anwendungen von den Entwicklern gemacht werden wird. Das nun eingesetzte Multitasking ist jedoch nicht mit dem von Android vergleichbar. Mehr als das Beenden von wichtigen VoIP, Audioplayback und die Lokalisierung erlaubt Apple als Hintergrundaktivitäten nicht. 10

12 Mit der nun folgenden Tabelle möchte ich einen kurzen Überblick über die zentralsten Punkte geben, um dann ein Resümee zu ziehen. Android ios Symbian Programmiersprache Java Objective C C++ Quelloffenheit Offen Closed Teilweise Offen Zukunftsaussichten Sehr gut Sehr gut Schlecht Entwickelt von: Open Handset Alliance Apple Symbian Foundation Ausgelegt auf: Multi-Touch-Screen Multi-Touch-Screen Tastatur Endgerätauswahl Groß(+wachsend) Sehr gering Groß(-sinkend) App Store Gut sortiert und stetig wachsend Gut sortiert und stetig wachsend, jedoch nicht so schnell wie Android Kein allgemeiner Store für Symbian, jede Firma hat seinen eigenen Store Marktentwicklung Kosten für Entwicklung Sehr positiv Positiv Negativ - 99$/Jahr - Abbildung 7 - Überblick der Betriebssysteme Letztendlich denke ich, dass, wenn man alles zusammennimmt, sich Android in den nächsten Jahren als Marktführer durchsetzen wird. Google und die Open Handset Alliance sind sehr innovativ und haben auch durch die dominante Stellung von Google im Internet Vorteile gegenüber Apple. Hinzu kommt zum einen die große Geräteauswahl, sodass jeder Smartphonebenutzer ein Smartphone, was seinen Ansprüchen und Wünschen entspricht, findet und zum anderen die Quelloffenheit, wodurch man sich schnell an den sich verändernden Markt anpassen kann. ios wird trotz geringerem Geräteangebot und des nicht offenem Codes weiterhin eine große Rolle auf dem Markt für Betriebssysteme für Smartphones einnehmen. Symbian wird sich leider auf Dauer gar nicht mehr durchsetzen, weswegen bei Nokia sehr bald MeeGo im Fokus sein wird. Es wird einfach nicht möglich sein das alte System an die neue Generation von Endgeräten anzupassen und so ist der Neustart ein Schritt in die richtige Richtung. 11

13 2.2 Warum Android? Nachdem ich nun Android, ios und Symbian vorgestellt und verglichen habe, möchte ich nun erklären, warum ich mich dafür entschied, Anwendungen für Android zu programmieren. Als erstes möchte ich schreiben, warum ich Android den Vorzug vor ios gegeben habe. Zunächst ist der Einstieg für einen Neuanfänger der Applikationen- Programmierung nicht einfach, da ios keine Open Source ist und man sich erst mal bei Apple als Entwickler registrieren muss. Dazu muss man einen Jahresbeitrag an Apple zahlen um für ios zu entwickeln. Bevor ich mit der Programmierung hätte anfangen können, hätte ich mir erstmal die für mich neue Programmiersprache Objective-C aneignen müssen. Die Verkaufszahlen der Endgeräte steigen im Gegensatz zu Android-Handies nicht so rapide an. Nun zu Android: Man kann sagen, dass der Einstieg in die Programmierung sehr einfach ist, da man nur das Android SDK mit Plug-In für Eclipse und Konsolenprogramm adb(emulator) zur Kommunikation mit den Geräten installieren muss. Diese bekommt man kostenlos zum Download bei Durch den Emulator kann man seine selbstgeschriebenen Anwendungen sehr leicht testen und braucht kein eigenes Endgerät. Die Quelloffenheit von Android kommt dem Entwickler sehr entgegen, da man dadurch bei Problemen sehr tief in Android hinein debuggen kann. Zusätzlich gibt es eine sehr umfangreiche Hilfe im Netz, dort findet man auch unzählige Code-Beispiele und die APIs sind sauber dokumentiert. Die Architektur von Android ist viel zukunftsorientierter, da diese ermöglicht, Systemfunktionen sehr leicht zu erweitern oder Dienste für andere Anwendungen anzubieten. Darauf möchte ich jedoch erst im nächsten Kapitel genauer eingehen. Android ist das Betriebssystem der Zukunft, so wurde es von Anfang an entwickelt und so wird es weiterentwickelt. Die Anzahl von Applikationen im Android Markt steigt stetig an. Innerhalb eines halben Jahres ist die Anzahl um 233% gestiegen und es sieht momentan nicht so aus, als ob sich der Trend ändern wird. 12

14 3 Der Aufbau von Android Ich möchte in diesem Kapitel den Aufbau und die Architektur des Betriebssystems und von Anwendungen in Android erklären. Dabei möchte ich zunächst kurz auf das Schichtenmodell der Architektur eingehen, danach auf die Oberflächengestaltung und zuletzt wichtige Komponenten einer Anwendung vorstellen. 3.1 Architekturen Android basiert auf einem Vier-Schichtenmodell. Die Basis in der ersten Schicht bildet ein Linux-Kernel mit den Hardwaretreibern, welcher in Bezug auf Energieverbrauch und Speichermanagment optimiert worden ist. In der zweiten Schicht kommt die Android Runtime mit der Dalvik Virtual Machine und den Core Libraries dazu. In der gleichen Schicht befinden sich die Basis- Abbildung 8 - Übersicht Android-Architektur bibliotheken, auf die der Anwendungsrahmen von Android zugreifen kann. Die dritte Schicht bildet das Application Framework(Anwendungsrahmen). Sie stellt einige Systemklassen zur Verfügung, welche in Java geschrieben sind und den Zugriff auf Hardwarekomponenten aus der Anwendung heraus erlauben. Die oberste Schicht Applications ist die Ansicht für den Android-Anwender. In den folgenden Abschnitten möchte ich genauer auf einzelne Teile der Schichten eingehen, wobei zum Linux Kernel nichts weiter zu anzumerken ist, als dass, was bereits erwähnt worden ist Die Dalvik Virtual Machine Die Dalvik Virtual Machine(DVM) ist eine virtuelle Maschine für Android, welche speziell für die Erfordernisse von Android entwickelt worden ist. Sie basiert auf der Java Virtual Machine(JVM), führt jedoch Dateien im Dalvik Executable-Form (.dex) aus. Diese sind so beschaffen, dass sie möglichst wenig Speicher beanspruchen, da auf Smartphones nicht viel Speicher vorhanden ist. Weiter kommt sie gut mit schwachen Prozessoren zurecht und ist für Betriebssysteme ohne SWAP-Partition geeignet, was bei einem Smartphone bzw. Android so vorhanden ist. Da die DVM auf 13

15 Akku-betriebenen Geräten zum Einsatz kommt, wurde bei ihr ebenfalls der Strombedarf berücksichtig. Weil Android in Java geschrieben wird, muss der normale, vom Java-Compiler kompilierte, Byte-Code(.class) in das.dex-format umgewandelt werden, damit die DVM ihn ausführen kann. Das übernimmt der im Android SDK enthaltene Dalvik Cross-Assembler, kurz dx-tool. Dabei werden mehrere Class-Dateien zu einer Dex- Datei zusammengefasst, wodurch eine Optimierung bezüglich des Speicherbedarfs vorgenommen wird. Desweitern ist die DVM im Gegensatz zur klassischen JVM eine Registermaschine ist, die die in der Regel verfügbaren Register der neuen Prozessoren(z.B.: ARM- CPUs wie sie Smartphones haben) profitieren. Register sind schnell zugreifbare Speicherzellen in den Prozessoren. Dabei handelt es sich also um Mikroprozessoren mit Zwischenspeicher direkt im Prozessor. Seit Android 2.2 besitzt die DVM zudem einen JIT-Compiler ("Just In Time"). Ein Just-in-time-Compiler übersetzt zur Laufzeit und erst bei Bedarf den Bytecode direkt in Maschinen-Code. Das bietet gegenüber dem Interpreter einen Geschwindigkeitsvorteil. Abbildung 9 : Umwandlung von.java in.dex durch das dx-tool Die Basisbibliotheken Von den Basisbibliotheken werden die Kernfunktionalitäten von Android via C/C++- Bibliotheken bereitgestellt. Darin enthalten sind für Entwickler wichtige, fertige Methoden und Eigenschaften zur Entwicklung. Darunter fallen zum Beispiel Funktionen für Datenbanken (SQLite), den Browser (Webkit), Multimedia (Media Framework), Verschlüsselung, Grafik und den Touchscreen. An dieser Stelle fragt man sich natürlich, warum es sich bei den Basisbibliotheken um C/C++-Bibliotheken und nicht im Java-Bibliotheken handelt. Der Vorteil der C/C++-Bibliotheken ist, dass sie in geschwindigkeitskritischen Bereichen von Anwendungen schneller sind. Dabei handelt es sich zum Beispiel um CPU-intensive Signal- und Datenverarbeitung. 14

16 Eigentlich spricht nichts dagegen C/C++ für die komplette Programmierung von Android einzusetzen, jedoch möchte die Open Handset Alliance dies nicht, da dadurch eine deutliche höhere Komplexität der Programmierung entstehen würde Anwendungsrahmen (Application Framework) Über den Bibliotheken und der Android-Runtime liegt das Application Framework. Es ist komplett in Java geschrieben und beinhaltet folgende Komponenten: Activity Manager: verwaltet die Anwendungen(Activities) und deren Laufzeit Package Manager: protokolliert die heruntergeladenen und installierten Applikationen Windows Manager: lässt sich über eine Java-Api ansteuern und greift auf den Surface Manager(steuert den Zugriff und fügt 2D und 3D Grafik Ebenen von verschiedenen Anwendungen zu einem Bild zusammen) zu. Content Provider: zuständig für den Austausch und den Zugriff auf Daten anderer Applikationen/Anwendungen, zum Beispiel Kontakte Ressource Manager: Verwaltung von Ressourcen wie Grafiken, Strings, Layouts Location Manager: stellt geografische Informationen über den aktuellen Standort bereit Notification Manager: ermöglicht es Applikationen/Anwendungen Informationen in der Statusleiste anzuzeigen View System: Eingabefelder, Textboxen, Buttons usw. Telephony Manager: verwaltet die Dienste für Telefonie Später werde ich dieses Kapitel nochmal aufgreifen und etwas genauer auf verschiedene Punkte eingehen Anwendungsschicht (Applications) Unter diese Schicht fallen die einzelnen Apps, die Kontakte, das Telefon, der Kalender und so weiter. Hier findet die Interaktion zwischen Mensch und Maschine statt, sowie die Kommunikation zwischen den einzelnen Anwendungen. 3.2 Weitere Komponenten einer Anwendung Neben den im Folgenden beschriebenen Komponenten gehören auch Activities zu den Komponenten einer Anwendung. Bei Activities handelt es sich um die Layout organisierende Komponente, welche ebenfalls den Zugriff auf die in den Layouts enthaltenden Views steuert. Im Kapitel Oberflächengestaltung werde ich auch näher auf Activities eingehen. 15

17 3.2.1 Services Ein Service erledigt Hintergrundprozesse. Wenn man zum Beispiel Musik abspielen möchte, kann man die Bedienung des Players einer Activity überlassen und das Abspielen der Musik einen Service erledigen lassen. Einen Service kann man im Prozess der aufrufenden Komponente starten oder in einem eigenen Prozess. Bei dem Service, welcher im gleichen Prozess wie die Anwendung läuft, spricht man von einem Local Service. Den im eigenen Prozess laufenden Service nennt man Remote Service Die Klasse Context Die Klassen Activity(siehe 3.4.4) und Service(siehe 3.2.1) sind von der abstrakten Klasse android.content.context abgeleitet. Die Klasse Context repräsentiert den Anwendungskontext und stellt somit die Verbindung zwischen Anwendungen und dem System von Android her. Dadurch kann man zum Beispiel auf die Manager- Klassen des Anwendungsrahmens zugreifen. Somit erhält man Zugang auf die Hardware des Endgerätes. Zusätzlich kann der Anwendungskontext zum Beispiel noch auf folgende Systemkomponenten zugreifen: den Classloader das Dateisystem die Berechtigungen der Anwendungen die verfügbaren Datenbanken die anwendungseigenen Bibliotheken den Bildschirmhintergrund den Zugriff auf andere Komponenten der Anwendung Letztlich sei noch gesagt, dass, da die beiden Komponenten/Klassen Activity und Service von Context abgeleitet sind, der Anwendungs-kontext mittels this in diesen Klassen überall zur Verfügung(siehe 4.3) steht Content Provider Der Content Provider verwaltet Daten und abstrahiert die darunterliegende Persistenzschicht. Er wird über eine definierte Schnittstelle lose an Anwendungen gebunden. Er stellt über Berechtigungen einer Anwendungen oder mehreren Anwendungen untereinander Daten zur Verfügung. 16

18 3.2.4 Broadcast Receiver Der Broadcast Receiver ist für das Empfangen von Systemnachrichten zuständig. Dabei handelt es sich zum Beispiel um Nachrichten über Störungen der Netzwerkverbindung oder einen schwachen Akku. 3.3 Intents Das größte Einsatzgebiet von Intents ist es, dafür zu sorgen, dass eine Activity die Möglichkeit hat eine andere Activity starten kann. Intents sind ein Teil des Mechanismus zum Austausch von Nachrichten und Daten zwischen Komponenten einer Anwendung, verschiedener Anwendungen untereinander oder mit der Android- Plattform. Intents verbinden die Komponenten Activities, Services, Content Provider und Broadcast Receiver zu einem Gesamtsystem und schaffen eine Verbindung zur Android-Plattform. Surft man mit seinem Smartphone im Internet und stößt im Browser zum Beispiel auf ein YouTube Video, so öffnet sich nicht ein neues Browserfenster, sondern automatisch das YouTube Programm, welches bereits auf dem Android Smartphone installiert ist. Diese Interaktion wird durch Intents ermöglicht. Da Android komponentenbasiert ist, liegt es nahe diese Komponenten mit einem Mechanismus verbinden zu können. Intents werden unterteilt in explizite und implizite Intents Explizite Intents Ist die Empfängerkomponente bereits bei der Programmierung des Aufrufs bekannt und eindeutig identifiziert spricht man von einem expliziten Intent. Hierbei wird beim Aufrufen der Activity eine bekannte Klasse übergeben Implizite Intents Implizite Intents adressieren keinen bestimmten Empfänger und überlassen es den Komponenten der installierten Anwendungen, auf den Intent zu reagieren. Diese Intents werden praktisch ins Leere abgeschickt. Man hofft, dass es eine oder mehrere Komponenten gibt, die mit diesem Intent was anfangen können. Oft werden implizite Intents verwendet, wenn man Komponenten anderer Anwendungen nutzen möchte. Damit dies funktioniert, muss man eine Activity vorher erst mit der Möglichkeit versehen, implizite Intents zu empfangen. Diese Aufgabe übernimmt der Intent-Filter. 17

19 3.3.3 Intent-Filter Intent-Filter werden im Android-Manifest deklariert. Ein Intent-Filter besteht aus bis zu drei Elementen, mit deren Hilfe er genau festlegen kann, auf welche Intents er reagiert. Die drei Elemente sind: action(was soll passieren?), category(wie wird die Activity aufgerufen?), data(mit welchen Daten?). Der Intent-Filter leitet einen Intent an eine spezielle Activity weiter. Wenn eine Activity eine bestimmte Fähigkeit hat, zum Beispiel das Anzeigen von Webseiten, dann veröffentlicht sie einen Intent-Filter, der angibt, dass sie die Action View für den Datentyp URL ausführen kann. 3.4 Oberflächengestaltung In diesem Unterkapitel thematisiere ich, welche Komponenten zur Darstellung von Anwendungen gehören. Zusätzlich möchte ich dabei noch ein wenig Bezug auf Objective C nehmen und dies mit den Möglichkeiten von Android vergleichen Das Android-Manifest Das Android-Manifest ist das Kernstück der Oberflächengestaltung. Es organisiert und teilt der Android-Laufzeitumgebung mit, aus welchen Komponenten sich eine Anwendung zusammensetzt. Beim Android-Manifest handelt es sich um eine XML-Datei im Wurzelverzeichnis der Anwendung. Sie wird beim Anlegen eines neuen Projekts in Eclipse automatisch erzeugt. Wenn man ein neues Projekt in Eclipse anlegt, wird das Android-Manifest automatisch erzeugt. Dabei handelt es sich um eine XML-Datei im Wurzelverzeichnis der Anwendung und sieht standardmässig wie in Abbildung 10 aus. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="com.android.testapp" (1) android:versioncode="1" android:versionname="1.0"> (2) <application <activity android:name=".testapp" (3) <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher"/> </intent-filter> </activity> </application> </manifest> Abbildung 10 Das Android-Manifest 18

20 Folgende grundsätzliche Elemente werden im Android-Manifest verarbeitet : Festlegung des Package-Namens der Anwendung(1) Angabe der Versionsnummer der Anwendung(2) Auflistung aller Komponenten (Activities, Services, Content Provider, Broadcast Receiver) der Anwendung(3) Die minimale Android-API-Level wird festgelegt, unter dem die Anwendung lauffähig ist Berechtigungen auf Anwendungs- und Prozessebene werden vergeben Die Bibliotheken, welche die Anwendung verwendet, werden angegeben View Als View (=Darstellung) werden die klassischen Oberflächenelemente wie Eingabefelder, Schaltflächen und Auswahllisten bezeichnet. Jedes Element, was an der Oberfläche sichtbar ist, wird von der Klasse android.view.view abgeleitet. Für jede View gibt es eine XML- und eine Java-Repräsentation. Beide Repräsentationen haben im Wesentlichen die gleichen Attribute, nur dass man in der Java-Klasse die Attribute sieht, die speziell für diese View gelten. Elementare Views sind zum Beispiel : <TextView> - Einfache Textausgabe <Button>, - Schaltfläche <ImageButton> <EditText> - Formularelement zur Texteingabe <CheckBox> - Ankreuzfeld <Spinner> - Auswahlliste <DatePicker>, - Auswahl von Datum und Uhrzeit <TimePicker> Layout Die erwähnten Views werden mit Hilfe von Layouts (=Anordnung) auf dem Bildschirm geordnet. Es gibt verschiedene Layouts, die jeweils unterschiedliche Anordnungsvorschriften darstellen. Die Layouts bieten verschiedene Anordnungsvorschriften, unter anderem eine lineare Anordnung der View-Elemente (LinearLayout), eine tabellarische Anordnung (TableLayout) oder eine Anordnung relativ zueinander (RelativeLayout). Layouts werden als XML-Dateien angelegt in denen ebenfalls die verwendeten Views sind, die Layouts können zusätzlich ineinander geschachtelt werden. [siehe Abbildung 11] 19

21 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:layout_width="match_parent" android:layout_height="match_parent" android:stackfrombottom="true" android:transcriptmode="alwaysscroll" android:layout_weight="1" /> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" > <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" android:layout_gravity="bottom" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" /> Abbildung 11 Layout XML Activity Die Android-Komponente Activity organisiert die Layouts und den Zugriff auf die darin enthaltenen Views. Zum Beispiel bei Oberflächenereignissen muss die Activity steuern, welches Layout als nächstes angezeigt wird. Eine Activity sollte aber nur zur Darstellung genau einer Bildschirmseite implementiert werden. Sie besitzt immer nur ein Layout, welches sie zur Anzeige auf dem Endgerät bringt. Darüber hinaus keine eine Activity in der Lage sein auf Datenquellen und die Hardware des Endgerätes zuzugreifen. Jede Activity hat einen Lebenszyklus nachdem sie gestartet worden ist. Für jeden Zustand in diesem Zyklus gibt es eine Methode in der Klasse Activity, welche auf Wunsch überschrieben werden kann. Es gibt sieben verschiedene Methoden in einem Zyklus. Ich möchte nun kurz auf den Ablauf [siehe Abbildung 12] und die einzelnen Methoden eingehen. 20

22 Abbildung 12 Lebenszyklus einer Activity Um eine Activity zu starten wird die oncreate() Methode aufgerufen. Sie initialisiert die Layouts, die Schaltflächen und das Menü. Danach werden die Methoden onstart() und onresume() aufgerufen. Erst dann ist die Activity vollständig sichtbar. Der Unterschied von onstart() und onresume() ist, dass onstart() aufgerufen wird, nachdem eine Activity neu erzeugt wurde oder wenn sie vorher nicht sichtbar war, aber nun wieder angezeigt werden soll. OnResume() wird aufgerufen, wenn eine teilweise verdeckte Activity wieder vollständig angezeigt werden soll. Bei Überlagerung von 2 Activities wird die Methode onpause() aufgerufen. In diesem Status bleibt sie so lange sie nur teilweise überlagert wird. Wenn sie vollständig von einer anderen Activity überlagert wird, dann wird die Methode onstop() ausgeführt. Wenn die Activity wieder aufgerufen werden soll und nur auf onpause() gestanden hat wird einfach die Methode onresume() aufgerufen und die Activity wird wieder komplett angezeigt. Falls die Activity im Status onstop() ist, werden die Methoden onrestart(), onstart() und onresume() in dieser Reihenfolge aufgerufen, bevor die Activity wieder sichtbar ist. Nur wenn man die Activity komplett beenden möchte, wird die ondestroy()-methode aufgerufen. Durch diesen Lebenszyklus realisiert Android performantes Multitasking. Komponenten werden so am Leben erhalten, nachdem sie ihre Aufgabe erledigt haben, sodass sie beim nächsten Aufruf dieser Komponente nicht komplett neu erzeugt werden muss. Dabei wird die Komponente nur vom inaktiven Zustand in den aktiven geändert. Dies gilt nicht nur für die Komponenten einer Anwendung, sondern grundsätzlich für das ganze Android-System. 21

23 4 Programmierung in Android 4.1 Warum Java? Aus folgenden Gründen ist Java, gegenüber dem Hauptkonkurrenten C++, obwohl aus geschwindigkeitsgründen in gewissen Bereichen die Basisbibliotheken aus C/C++ sind, am besten zur Programmierung für Android geeignet : Frühere Sun-Mitarbeiter und Java-Ingenieure entwickeln für Google Vorteil gegenüber C ist, dass Objektorientierung bei Java möglich ist Verbreitung : Java gibt es auf über 1,8 Milliarden mobilen Endgeräten 80% aller neuen verkauften Handys und PDAs basieren mit der Untermenge Java ME letztendlich auf Java Portabilität : Da bei Softwareentwicklung für Android viele Java SE- sowie Androidspezifischer Bibliotheken genutzt werden und dadurch eine relative Nähe zur Java SE-Programmierung vorhanden ist, erleichtert dies eine Wiederverwendung von existierendem Java Quellcode (besonders wenn es sich um keine Benutzerschnittstellenanwendung oder speziell für Mobilfunkgeräte entwickelte Anwendungen handelt) Sicherheit : Es gibt ein extra API bei Java für Sicherheit (Authentifizierung, Überprüfung von Signaturen, Vergabe von Rechten) Akzeptanz : Java hat eine große Community und ist weltweit ähnlich anerkannt wie C Robustheit : Die VM wacht darüber, dass ein Absturz eines Programms keine anderen Anwendungen stört Integrität von Bytecode ist sichergestellt, da vorher ein Prüfsummenverfahren angewandt wurde, somit werden unbemerkte Veränderungen durch Viren o.ä. verhindert Garbage Collector : Java hat im Gegensatz zu C++ einen Garbage Collector, wodurch bei Java keine Datenlecks auftreten 22

24 4.2 Android Development Tools (ADT) Android bringt eine Reihe von Werkzeugen (Tools) mit, welche die Entwicklung vereinfachen können und sollen. In diesem Kapitel möchte ich ein paar von diesen Tools kurz vorstellen ADT-Plugin Durch dieses Plugin wird das Android SDK mit der Eclipse IDE verkuppelt, sodass man Android-Programme in der für viele gewohnten Eclipse-Entwicklungsumgebung bearbeiten und weiterentwickeln kann. Das ADT-Plugin erweitert die Möglichkeiten von Eclipse um schnell und einfach neue Android Projekte zu erstellen und fügt Komponenten, die auf das Android Framework API aufbauen, hinzu. Abbildung 13 Installation ADT-Plugin Um das Plugin zu installieren muss man es einfach über den Update Manager von Eclipse herunterladen. Nach der Installation muss in Eclipse nur noch unter Window > Preferences > Android eingegeben werden, wo sich die vorher heruntergeladene und installierte Android SDK auf dem Entwicklungsrechner befindet. 23

25 4.2.2 Android Emulator Der Android Emulator emuliert ein Android-Endgerät auf dem Entwicklungscomputer. Durch diesen ist es möglich, entwickelte Android-Programme auszuführen, zu testen bzw. zu debuggen, ohne, dass man auf Android-Hardware zurückgreifen muss. Dieser zeichnet sich durch folgende Eigenschaften aus : Emulation einer ARM CPU in der Version ARMv5 Ansteuerung eines 16-Bit Displays Ansteuerung der Audio-Hardware Ansprechen von Flash Speicher-Partitionen Simulation eines Mobilfunknetzes Simulation einer SIM-Karte Android Debug Bridge (adb) Mit der adb lassen sich sowohl der Emulator als auch das Android-Endgeräte direkt von der Konsole aus ansteuern. Dadurch lassen sich zum Beispiel Dateien zwischen dem Emulator oder dem Endgerät und dem Entwicklungscomputer hin und her kopieren. Ebenso ist es möglich Programme auf ein spezifisches Endgerät bzw. Emulator installieren sqlite3 Bei SQLite handelt es sich um ein kompaktes, für den Einsatz in mobilen Plattformen optimiertes, quelloffenes, relationales Datenbanksystem. Durch sqlite3 wird der Zugriff auf SQLite-Daten ermöglicht. Das sqlite3-tool enthält zusätzlich Kommandos, wie zum Beispiel.dump um Inhalt aus einem Datenbanktable auszugeben oder auch.schema um das SQL CREATE Statement für ein vorhandenes table anzuzeigen dx-tool Das dx-tool konvertiert für die Dalvik Virtual Machine Java-Bytecode(.class) in Android-Bytecode(.dex). 24

26 4.3 Einstiegsbeispiel für Android Hello Seminar Ich möchte nun mit einem kleinen und einfachen Beispiel den typischen Ablauf vom erstellen eines neuen Projekts bis zur ersten kleinen Applikation zeigen. Nachdem man Eclipse mit dem ADT Plugin verzahnt hat, kann man ganz einfach ein neues Android-Projekt anlegen. Man wählt in der Menüleiste von Eclipse einfach File New Project aus, daraufhin erhält man folgendes Fenster : Abbildung 14 Neues Projekt anlegen (1) Wie auf dem Bild zu sehen ist, wählt man dort einfach Android Project aus und klickt auf Next. Als nächstes erscheint das Fenster in dem die Projektdetails eingegeben werden müssen. Als erstes muss in diesem Fenster der Project Name eingegeben werden, bei diesem handelt es sich um den Eclipse Projektnamen der Applikation. In dem Verzeichnis werden die gesamten Projektdateien angelegt. In der Liste unter Build Target wird festgelegt, für welche Android-Version die Applikation programmiert werden wird. Der Application Name ist der Titel, welchen man, nachdem die Applikation auf einem Endgerät oder Emulator laufen lässt, sieht. Im Feld Package Name wird ein im Android-System einzigartiger Name für das Package in dem der Quellcode angelegt wird festgelegt. In diesem Package wird die Wurzel-Activity angelegt. Der Name dieser Activity wird in dem Feld Create Activity festgelegt. Als letztes muss noch 25

27 festgelegt werden, welches API Level die Applikation braucht. Dies geschieht im Feld Min SDK Version. Abbildung 15 Neues Projekt anlegen (2) Nachdem alle Eingaben korrekt eingegeben worden sind, klickt man auf Finish, woraufhin das angelegt Projekt im Eclipse Explorer erscheint. Im Projekt ist dadurch die Datei HelloSeminar.java erstellt worden. Diese sollte Standardmässig wie folgt aussehen : package com.example.helloandroid; import android.app.activity; import android.os.bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); } } Abbildung 16 Standard Java-Datei 26

28 Mit der Applikation möchten wir, dass ein einfacher Satz durch das Endgerät bzw. den Emulator angezeigt wird. Nach kleinen Modifikationen sieht der Quellcode nun so aus : package com.android.helloseminar; import android.app.activity; import android.os.bundle; import android.widget.textview; public class HelloSeminar extends Activity { /** Called when the activity is first created. public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); TextView tv = new TextView(this); (1) tv.settext("hello, Seminar"); (2) setcontentview(tv); (3) } } Abbildung 17 Hello Seminar Zunächst sieht man, dass ein TextView erstellt worden ist (1), welcher eine Android Context Instanz als Parameter akzeptiert. Das ist möglich, weil die Klasse Activity von der abstrakten Klasse Context erbt und die Klasse HelloSeminar eine Unterklasse von Activity ist, wodurch HelloSeminar ebenfalls ein Context ist. Daraufhin wird mit settext( ) der Textinhalt des TextView definiert (2). Die Methode setcontentview() wird aufgerufen, damit der Text im Interface der Activity dargestellt wird (3). Wenn diese Methode nicht aufgerufen werden würde, wäre kein Interface vorhanden, sodass ein leerer Bildschirm angezeigt werden würde. Damit die Applikation ausführbar bzw. zu testen ist, muss ein Android Virtual Device(AVD) also ein Emulator erstellt werden. Um dies zu machen gibt es den Android SDK und AVD Manager(siehe Abbildung 18). Abbildung 18 Android SDK und AVD Manager 27

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

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

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

Mobile Application Plattforms

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

Mehr

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

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

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

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

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 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

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

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 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

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

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

Apps-Entwicklung mit Eclipse

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

Mehr

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

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

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

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

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

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

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

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

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

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

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

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-App zur Bilddarstellung

Android-App zur Bilddarstellung Fachhochschule Aachen Campus Jülich Fachbereich 9 Medizintechnik und Technomathematik Seminararbeit im Studiengang Scientific Programming Android-App zur Bilddarstellung Eingereicht von Marco Mix Matrikel-Nummer:

Mehr

Vaadin TouchKit. W3L AG info@w3l.de 10.2012

Vaadin TouchKit. W3L AG info@w3l.de 10.2012 1 Vaadin TouchKit W3L AG info@w3l.de 10.2012 2 Inhaltsverzeichnis Einführung Software-Plattformen TouchKit-Plug-In Integrationsmöglichkeiten Vaadin-TouchKit-Projekt GUI-Komponenten Live-Demo Geräte-Unterstützung

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

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

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

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

Mobile Systeme Android 07.04.2011

Mobile Systeme Android 07.04.2011 Mobile Systeme Android 07.04.2011 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer

Mehr

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

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

Mehr

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

Fachseminar Android. Tobias Braumann Wintersemester 2009/10 Matrikelnummer.: 353640

Fachseminar Android. Tobias Braumann Wintersemester 2009/10 Matrikelnummer.: 353640 Fachseminar Android Wintersemester 2009/10 Matrikelnummer.: 353640 Inhalt 0 Vorwort... 3 1 Allgemeines zu Android... 4 1.1 Einleitung... 4 1.2 Warum Android?... 4 1.3 Entwicklungshistorie... 5 1.4 Open

Mehr

Daten übertragen auf den PC und zurück:

Daten übertragen auf den PC und zurück: Daten übertragen auf den PC und zurück: Um das Smartphone mit dem PC zu verbinden gibt es unterschiedliche Möglichkeiten. Das Benutzen einer sogenannten PC Suite Der Hersteller Samsumg (im Kurs am häufigsten

Mehr

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

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

Mehr

Einführung in die 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

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

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

JDroidLib mit Eclipse (Mac/Linux/Windows)

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

Mehr

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

Apps am Smartphone. Vortrag am Fleckenherbst Bürgertreff Neuhausen. www.buergertreff-neuhausen.de www.facebook.com/buergertreffneuhausen

Apps am Smartphone. Vortrag am Fleckenherbst Bürgertreff Neuhausen. www.buergertreff-neuhausen.de www.facebook.com/buergertreffneuhausen Apps am Smartphone Vortrag am Fleckenherbst Bürgertreff Neuhausen 1 Inhalt Was sind Apps Woher bekomme ich Apps Sind Apps kostenlos Wie sicher sind Apps Wie funktionieren Apps App-Vorstellung Die Google

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

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

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

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

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 Applications. Adrian Nägeli, CTO bitforge AG

Mobile Applications. Adrian Nägeli, CTO bitforge AG Mobile Applications Adrian Nägeli, CTO bitforge AG Inhalt Vorstellung Marktübersicht Entwicklung Adrian Nägeli Dipl. Inf.-Ing FH Seit 2005 bei bitforge bitforge AG Standort Rapperswil-Jona Gründung 2004

Mehr

Apps-Entwicklung mit Netbeans

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

Mehr

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

Dr. Holger Eichelberger

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

Mehr

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

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

Einführung in Android

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

Mehr

Die Geschichte und die Entwicklung der Apps

Die Geschichte und die Entwicklung der Apps Die Welt der Apps Yaning Wu 15.12.2015 Geliederung Was ist App? Die Geschichte und die Entwicklung des Apps Warum ist Apps so beliebt? Apps für die private Nutzern Apps für die Unternehmen Vergleichen

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

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

Vom Prototypen zur Anwendung

Vom Prototypen zur Anwendung Vom Prototypen zur Anwendung iks-thementag: Mobile Applikationen Ein Leitfaden für Unternehmen 17.05.2011 Autor: Ingo Röpling Agenda Was ist vorab zu beachten? Skills und Systemvoraussetzungen Implementierung

Mehr

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

Mehr

Android Entwicklung. MobileDevCamp Munich 31.10.2009 Markus Junginger. greenrobot_de

Android Entwicklung. MobileDevCamp Munich 31.10.2009 Markus Junginger. greenrobot_de Android Entwicklung MobileDevCamp Munich 31.10.2009 Markus Junginger greenrobot_de Preis Scanner Apps Über mich Erste Android App: 2007 Erstes Mobile Projekt: 2001 10 Jahre Java & Internet Erfahrung 20

Mehr

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

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

Mehr

DOK. ART GD1. Citrix Portal

DOK. ART GD1. Citrix Portal Status Vorname Name Funktion Erstellt: Datum DD-MMM-YYYY Unterschrift Handwritten signature or electronic signature (time (CET) and name) 1 Zweck Dieses Dokument beschreibt wie das auf einem beliebigem

Mehr

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1 Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile

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

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

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

eridea AG Installation Eclipse V 1.4

eridea AG Installation Eclipse V 1.4 Installation Eclipse Inhaltsverzeichnis Einleitung... 2 Voraussetzungen für die Eclipsenutzung... 2 SAP GUI aktualisieren... 2 Java aktualisieren... 3 VC++ aktualisieren... 3 Eclipse installieren... 5

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. Dokumentation zu Kurzvortag. Von Marc Spring

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

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

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

Mehr

Programmierung für Android. Gliederung 1) Der Markt für mobile Geräte. 2) Android aus Anwendersicht. 3) Android aus Entwicklersicht.

Programmierung für Android. Gliederung 1) Der Markt für mobile Geräte. 2) Android aus Anwendersicht. 3) Android aus Entwicklersicht. Programmierung für Android Gliederung ) Der Markt für mobile Geräte 2) Android aus Anwendersicht 3) Android aus Entwicklersicht 4) Programmierung Teil Der Markt für mobile Geräte 2 Smartphone-Nutzer 3

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

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

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

Mehr

Ogre Einführung Teil 1

Ogre Einführung Teil 1 Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.

Mehr

Windows 8.1. Grundlagen. Markus Krimm. 1. Ausgabe, Oktober 2013 W81

Windows 8.1. Grundlagen. Markus Krimm. 1. Ausgabe, Oktober 2013 W81 Windows 8.1 Markus Krimm 1. Ausgabe, Oktober 2013 Grundlagen W81 Mit Windows beginnen 1 Der erste Blick auf den Startbildschirm Nach dem Einschalten des Computers und der erfolgreichen Anmeldung ist der

Mehr

Einführung in Eclipse und Java

Einführung in Eclipse und Java Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski Einführung in Eclipse und Java Dipl.Inf. Manuel Götz Lehrstuhl für Angewandte Informatik

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

Eclipse 3.0 (Windows)

Eclipse 3.0 (Windows) Eclipse Seite 1 Eclipse 3.0 (Windows) 1. Eclipse installieren Eclipse kann man von der Webseite http://www.eclipse.org/downloads/index.php herunterladen. Eclipse ist für Windows, Mac und Linux erhältlich.

Mehr

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann Einführung in das Microsoft.NET-Framework Programmiersprache C# 02: Visual Studio / Hello World Boris Hülsmann 23.09.2010 1 In dieser Einführung bekommen Sie einen kurzen Einstieg in das.net-framework

Mehr

Anleitung zur Webservice Entwicklung unter Eclipse

Anleitung zur Webservice Entwicklung unter Eclipse Entwicklungsumgebung installieren Sofern Sie nicht an einem Praktikumsrechner arbeiten, müssen Sie ihre Eclipse-Umgebung Webservice-fähig machen. Dazu benötigen Sie die Entwicklungsumgebung Eclipse for

Mehr

Mobile Webapps in kürzester Zeit: APEX mobile!

Mobile Webapps in kürzester Zeit: APEX mobile! Mobile Webapps in kürzester Zeit: APEX mobile! Carsten Czarski ORACLE Deutschland B.V. & Co KG Riesstr. 25, 80992 München Schlüsselworte APEX, Mobile Anwendungen, jquery Mobile Einleitung Anwendungen für

Mehr

Smartphone Betriebssysteme

Smartphone Betriebssysteme Wissenswertes über Mobiltelefone und deren Programme Betriebssysteme...2 Aktuelle Systeme...2 ios...2 Android...3 Windows Phone...3 BlackBerry...4 Symbian...4 Bada...5 Sie haben Fragen zu unseren Services

Mehr

Embedded Computing Conference 2014 Embedded UI Qt5

Embedded Computing Conference 2014 Embedded UI Qt5 Embedded Computing Conference 2014 Embedded UI Qt5 2 Embedded User Interfaces in the Smartphone Age The Power of Qt5 and the QNX OS Qt Vorstellung 3 Qt ( cute ) Hat eine lange Geschichte (Beginn der Entwicklung:

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

Thomas Gewering Benjamin Koch Dominik Lüke

Thomas Gewering Benjamin Koch Dominik Lüke HEINZ NIXDORF INSTITUT Universität Paderborn Technische Informatik für Ingenieure WS 2010/2011 Übungsblatt Nr. 1 11. Oktober 2010 Übungsgruppenleiter: Matthias Fischer Mouns Almarrani Rafał Dorociak Michael

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.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform 02 PROFI News

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

Anleitung App CHARLY Foto

Anleitung App CHARLY Foto Anleitung App CHARLY Foto Version 1.0.0 Wichtige Informationen: Für einen fehlerfreien Betrieb der App CHARLY Foto halten Sie sich bitte an nachfolgende Installationsanweisungen. 2 Inhalt Einleitung 3

Mehr

CBS-Heidelberg Helpdesk Filr-Dokumentation S.1

CBS-Heidelberg Helpdesk Filr-Dokumentation S.1 CBS-Heidelberg Helpdesk Filr-Dokumentation S.1 Dokumentation der Anwendung Filr von Novell G Informationen zu Filr, die über diese Dokumentation hinausgehen, finden Sie im Internet unter: http://www.novell.com/de-de/documentation/novell-filr-1-1/

Mehr

SAP Mobile Platform MÜNSTER 10.04.2013. best practice consulting Aktiengesellschaft Raboisen 32 20095 Hamburg T +49 40 303752-0 F +49 40 303752-77

SAP Mobile Platform MÜNSTER 10.04.2013. best practice consulting Aktiengesellschaft Raboisen 32 20095 Hamburg T +49 40 303752-0 F +49 40 303752-77 MÜNSTER 10.04.2013 SAP Mobile Platform best practice consulting Aktiengesellschaft Raboisen 32 20095 Hamburg T +49 40 303752-0 F +49 40 303752-77 E info@bpc.ag W www.bpc.ag Seite 1 18.04.2013 Agenda Einleitung

Mehr

3 Grundlagen. 3.1 Die erste App

3 Grundlagen. 3.1 Die erste App 19 3.1 Die erste App In diesem Abschnitt werden Sie Ihre ersten Schritte in der Windows- Phone-7-Entwicklung machen. Dabei werden Sie eine modifizierte»hallo Welt«-Anwendung schreiben. Daneben lernen Sie

Mehr

Accounts und Kontakte in Android

Accounts und Kontakte in Android Accounts und Kontakte in Android Die letzten Wochen habe ich daran gearbeitet, die Kontakte der AddressTable von Leonardo und mir ins Android Adressbuch zu bringen. Dazu habe ich die AddressManagement-Applikation

Mehr