C++ und mobile Plattformen



Ähnliche Dokumente
Präsentation Von Laura Baake und Janina Schwemer

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Ein mobiler Electronic Program Guide

BRAND APPS WHITEPAPER MOBILE MARKEN- UND KUNDENBINDUNG

Expertenumfrage: Mobile Applications

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Anleitung über den Umgang mit Schildern

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Vermeiden Sie es sich bei einer deutlich erfahreneren Person "dranzuhängen", Sie sind persönlich verantwortlich für Ihren Lernerfolg.

Was meinen die Leute eigentlich mit: Grexit?

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Terminabgleich mit Mobiltelefonen

DigitalBarometer: Mobiles Internet und Apps. Juli 2010

Digitalbarometer. Mai 2010

Professionelle Seminare im Bereich MS-Office

Installations- und Bedienungsanleitung CrontoSign Swiss

Die Post hat eine Umfrage gemacht

Grundfunktionen und Bedienung

iphone- und ipad-praxis: Kalender optimal synchronisieren

Dokumentation Schedulingverfahren

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Qt-Projekte mit Visual Studio 2005

Online Newsletter III

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Mobile Intranet in Unternehmen

Der Kalender im ipad

Tutorial about how to use USBView.exe and Connection Optimization for VNWA.

Ein mobiler Electronic Program Guide für Android

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

icloud nicht neu, aber doch irgendwie anders

! " # $ " % & Nicki Wruck worldwidewruck

Nie wieder eine Sitzung verpassen unser neuer Service für Sie!

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Qualitätsbedingungen schulischer Inklusion für Kinder und Jugendliche mit dem Förderschwerpunkt Körperliche und motorische Entwicklung

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Hohe Kontraste zwischen Himmel und Landschaft abmildern

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv

Geld Verdienen im Internet leicht gemacht

Ihren Kundendienst effektiver machen

Die Windows 7 Sicherung im Detail

Voraussetzung. Anleitung. Gehen Sie auf Start Einstellungen und suchen Sie hier den Eintrag Datenverbindungen oder Verbindungen. Öffnen Sie diesen.

Windows 10 > Fragen über Fragen

Routenplanung und Navigation mit dem iphone

Blumen-bienen-Bären Academy. Kurzanleitung für Google Keyword Planer + Google Trends

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Tess TeSign nutzen mit App's"! iphone und Bria Informationen zur Nutzung

Geschäftsbereich Mobile Services Was ist Android?

Zwischenablage (Bilder, Texte,...)

Einfügen von Bildern innerhalb eines Beitrages

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Reporting Services und SharePoint 2010 Teil 1

Sie müssen sich für diesen Fall mit IHREM Rechner (also zeitgut jk o.ä.) verbinden, nicht mit dem Terminalserver.

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Inhalt: Ihre persönliche Sedcard... 1 Login... 1 Passwort vergessen... 2 Profildaten bearbeiten... 3

Übersicht U7-U10 Turniere in Fußball Online

Die Bundes-Zentrale für politische Bildung stellt sich vor

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Outlook Vorlagen/Templates

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

Jeunesse Autopiloten

geben. Die Wahrscheinlichkeit von 100% ist hier demnach nur der Gehen wir einmal davon aus, dass die von uns angenommenen

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Toolbeschreibung: EVERNOTE

Einführung in TexMaker

Welches Übersetzungsbüro passt zu mir?

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Internet online Update (Internet Explorer)

BVMI / PLAYFAIR: Studie zur mobilen Musiknutzung

WINDOWS 10 Upgrade. Beispiel: Desktop-Ausschnitt von vorhandenem WIN 8.1 (rechte Ecke der Taskleiste)

Was man mit dem Computer alles machen kann

Aktivierung von Makros in den Erfassungshilfen

Meinungen zur Altersvorsorge

Lizenzierung von SharePoint Server 2013

Tess Relay-Dienste mobil nutzen

ROFIN App Benutzerhandbuch. Version 1.0

Bilder zum Upload verkleinern

Shopping - Mode - Lifestyle

Wasserzeichen mit Paint-Shop-Pro 9 (geht auch mit den anderen Versionen. Allerdings könnten die Bezeichnungen und Ansichten etwas anders sein)

Drucken aus der Anwendung

O RGAKO M : Was ist Twitter?

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Erklärung zu den Internet-Seiten von

Internet Explorer Version 6

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

INFOBLATT FÜR DAS NEU AUFSETZEN IHRES COMPUTERS

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Anleitung zur Nutzung des SharePort Utility

Die neue Aufgabe von der Monitoring-Stelle. Das ist die Monitoring-Stelle:

Transkript:

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 mobile Endgeräte (aka Smartphone, oder altmodisch Handy) geben. Der Artikel basiert auf einem Blogbeitrag [1] von mir. Sehr vielfältig ist die Landschaft der Betriebsysteme und Plattformen für Smartphones geworden: Nokia (Symbian/S60,Maemo) Android Windows Mobile/CE IPhone OS WebOS (Palm) Blackberry LiMo Moblin Auf vielen dieser Plattformen lässt sich mit C++ Software entwickeln, wenn auch zum Teil nur eingeschränkt. So gibt es für Android zur Zeit nur ein NDK [2], welches in eine Android Applikation mittels JNI eingebunden werden kann. Auch sei gesagt, das nicht alle diese Plattformen offen sind, so das bei einer Applikationsentwicklung der Hersteller evtl. dann das letzte Wort hat. Palm machte hier gerade Schlagzeilen, und Apple ist ja für seine restriktive Politik im Appstore bekannt. Auch ist teilweise die Version des Betriebsystems wichtig, weil häufig damit weitere Neuerungen kommen, und evtl. ältere Handsets nicht mehr unterstützt werden. Ein Überlick über die derzeitige Marktsituation Ein Überblick über die derzeitigen Marktanteile und eine Prognose über ihre Verteilung in 2012 hat Gartner gerade veröffentlicht [3] : 1

Wenn man dies nun zusammenzählt, dann sieht es so aus: Laut Gartners Prognose wird also der Anteil von voll C++ unterstützenden OS um 7% abnehmen, allerdings nehmen die teilweise unterstützenden OS um 12.9% zu, was dazu führt das der Marktanteil für C++ im mobilen Bereich von möglichen 79% auf 84.9% steigen könnte. Auch ist die Frage, wie Nokia sich entwickelt, und ob weitere OS in den Markt kommen. Nokia hat mit Qt ein spannendes Konzept (und Gartner listet weder Maemo, noch LiMo oder Moblin auf), auch ist die Frage, ob sich Android so stark durchsetzen kann. Auch gibt es Prognosen, die eine andere [4] Entwicklung [5] sehen. Aber zum wichtigen, wie sieht es jetzt mit der Programmierung für diese Plattformen mit C++ aus? Qt Trolltech, der Hersteller von Qt, wurde vor einiger Zeit von Nokia übernommen. Nokia hat hier das Ziel, Qt für verschiedene Plattformen umzusetzen, zur Zeit befinden sich unter anderem Qt Versionen für S60/Symbian, Maemo 5, und Windows CE in Entwicklung. Für Maemo 6 hat Nokia schon angekündigt das es komplett Qt basiert sein soll, bisher war Maemo GTK basierend. Alles in allem macht dies Qt zu einem interessanten Kandidaten für die Entwicklung von mobilen Applikationen, gerade wenn man bedenkt, das man mit einem unabhängigen Backend auch einfach auf weitere Systeme portieren kann, für die es noch keine Qt Unterstützung gibt. Da es einen Port für Qt nach Java gibt, kann man auch spekulieren, ob es nicht einmal eine Qt Version für Android geben könnte. Generell möchte Nokia seine Mobil Plattform in Qt integrieren, so wird aus Qtopia [6] wohl Qt Mobility [7] werden. Weitere Informationen zu Qt auf mobilen Plattformen: Symbian/S60 Getting started with Qt on Symbian [8] Installing Qt on Symbian [9] Maemo Qt für Maemo [10] Qt für Meamo 5 [11] Android Android ist ein von der Open Handset Alliance [12] entwickeltes Betriebsystem für mobile Endgeräte. Wie schon erwähnt, bietet Android die Möglichkeit über JNI auf C++ zu zugreifen, bzw. vor ein C++ Backend kommt hier ein Java Frontend. Da Google das NDK noch nicht zu lange anbietet, sind auch die Informationen hierüber spärlich. So wird die Portierung des mobilen Mozillabrowsers Fennec [13] auf 2

Android wohl auch auf dem NDK basieren. Auch ist Android linuxbasiert, so das man auch einen Weg finden kann, Anwendungen in C++ direkt laufenzulassen, wie z.b. dieser Eintrag [14] beweist. Windows Mobile Viele Möglichkeiten gibt es für WindowsCE/Mobile in C++ zu programmieren. Microsoft selber bietet einen MFC Port [15] an, dann gibt es von wxwidgets einen WindowsCE Port [16], und auch Qt hat Support für Windows Mobile [17]. Jedoch gibt es Unterschiede in den unterstützten Betriebssystemversionen. Es ist also eine Entwicklung von Frontend und Backend Applikationen in C++ möglich. Einen weiterführenden Podcast zu diesem Thema finden man hier [18]. IPhone OS Viele Applikationen für das IPhone sind nativ in Objective C geschrieben, welches sich mit C++ kombinieren lässt. Ähnlich wie bei Android ist also eine Kombination aus systemspezifischen Frontend und C++ Backend möglich. Auch benutzt Apple für die ObjC Kompilierung bei XCode den GCC, welcher auch C++ Code übersetzen kann. Für die Oberflächen empfiehlt sich aber ObjC, auch wegen der IPhone SDK Schnittstellen. Jedoch sollte auch ohne ObjC eine C++ Applikation auf dem IPhone möglich sein. Einen Einblick in die Möglichkeiten von C++ auf dem IPhone bietet diese Artikelserie [19]. WebOS Palm hat ein neues Betriebssystem für seine Smartphones entwickelt, welches den Namen WebOS trägt. Dabei setzt Palm bei der Applikationsentwicklung auf Webtechniken und Javascript. Zur Zeit ist nicht absehbar, wann und ob C++ von Palm für WebOS unterstützt wird, evtl. in Form eines NDKs wie es Google getan hat. Auch WebOS basiert auf einem Linuxkernel, so dass eine volle Unterstützung ebenfalls möglich wäre. Blackberry Blackberry hat früher für seine Modelle ein SDK für C++ herausgebracht, aber unterstützt zur Zeit auf neueren Modellen nur Java. Es ist also möglich, für ältere Blackberrys C++ Applikationen zu portieren und zu pflegen. Eine JNI/NDK Lösung ist allerdings zur Zeit nicht in Sicht. LiMo LiMo (Linux Mobile) ist ein Betriebssystem für mobile Endgeräte welches auf Linux basiert, wie ebenfalls Maemo und Android. Im Gegensatz zu Android ist LiMo jedoch eine komplett offene Plattform. Zur Zeit existieren schon einige Endgeräte [20], auch ist LiMo als Plattform für mobile Endgeräte zu verstehen. Viele Firmen aus dem Telekommunikationssektor haben sich hier in der LiMo Foundation [21] zusammen geschlossen, um eine auf Linux basierende Plattform für die Entwicklung von mobilen Endgeräten zu schaffen. Zur Zeit ist die Entwicklung für LiMo nur auf C/C++ Basis möglich [22], jedoch ist ein Java SDK für Ende dieses Jahres geplant, die technischen Spezifikationen finden sich hier [23]. Da schon Trolltech in der Foundation Mitglied war, kann man auch auf eine Qt Version für LiMo spekulieren. 3

Moblin Moblin [24] ("mobiles Linux") ist ein von Intel initiertes Projekt, welches eine mobile, linuxbasierte Plattform entwickelt, unter anderem für Intels Atomprozessor. In der aktuellen 2.0 Version zielt Moblin erstmal auf Netbooks, mit der Version 2.1 [25] sind aber auch weitere Funktionen für Smartphones gedacht, schon jetzt gibt es eine Unterstützung für UMTS. Als UI Framework kommt hier Hildon [26] zum Einsatz, welches GTK basiert ist. Hildon ist eine Nokia Entwicklung, und wurde u.a. für Maemo entwickelt, wird dort jedoch ab Maemo 6 wohl durch Qt abgelöst. So könnte es sein das Qt auch auf Moblin eines Tages lauffähig sein wird. Intel bietet ein eigenes SDK für Moblin [27] an, welches auch Tools für die C++ Entwicklung enthält. Fazit C++ hat durchaus seine Vorteile in der Softwareentwicklung, gerade wenn es um Resourcen und Performance geht. Auch auf mobilen Plattformen ist C++ immer noch ausreichend vertreten. Und mit Nokia wird zumindest Qt ein bedeutendes Framework für mobile Entwicklung werden, welches auf C++ basiert. Auch deckt Qt zur Zeit von den 9 Betriebssystemen ca. 66% ab (Symbian, Maemo, Windows Mobile und linuxbasierte, offene Systeme wie LiMo oder Moblin), wenn man die Marktanteile betrachtet sind es sogar deutlich mehr als 50%. Auch kann man weitere Plattformen mit C++ abdecken, in dem man die Applikation in ein Frontend und ein (möglichst unabhängiges) Backend aufteilt. Verweise [1] http://codenode.de/blogreader/items/cpp-ideal-fuer-mobile-plattformen.html [2] http://groups.google.com/group/android-ndk [3] http://www.zdnet.de/news/mobile_wirtschaft_gartner_androids_marktanteil_steigt_bis_2012_auf_14_5_prozent_story-39002365-41515582-1.htm [4] http://www.zdnet.de/news/mobile_wirtschaft_analyst_apple_wird_2012_mehr_als_80_millionen_iphones_verkaufen_story-39002365-41501596-1.htm [5] http://www.tomshardware.com/de/windows-mobile-isuppli-android-symbian,news-243550.html [6] http://de.wikipedia.org/wiki/qtopia [7] http://labs.trolltech.com/page/projects/qtmobility [8] http://wiki.forum.nokia.com/index.php/getting_started_with_qt_for_symbian [9] http://wiki.forum.nokia.com/index.php/installing_qt_on_symbian [10] http://wiki.forum.nokia.com/index.php/getting_started_with_qt_for_maemo [11] http://www.golem.de/0910/70368.html [12] http://de.wikipedia.org/wiki/open_handset_alliance [13] http://www.golem.de/0910/70621.html [14] http://www.anddev.org/native_c_-und-quothello_world-und-quot_working_in_emulator-t61.html [15] http://msdn.microsoft.com/de-de/library/ms228852.aspx [16] http://wiki.wxwidgets.org/developers_notebook/wxwince [17] http://www.ddj.com/cpp/208200263 [18] http://www.microsoft.com/germany/msdn/webcasts/serien/msdnwcs-0908-01.mspx 4

[19] http://iphonedevelopertips.com/category/cpp [20] http://www.limofoundation.org/solutions/index.php [21] http://de.wikipedia.org/wiki/limo_foundation [22] http://www.pro-linux.de/news/2008/12515.html [23] http://www.limofoundation.org/en/white-papers.html [24] http://moblin.org/ [25] http://www.youtube.com/watch?v=yzmkuufkz5s [26] http://de.wikipedia.org/wiki/hildon [27] http://v1.moblin.org/toolkits.php 5