Laufzeitumgebungen stellen Programmen auf unterschiedlichen Plattformen eine einheitliche Funktionalität zur
Verfügung. Dadurch kann das gleiche Programm auf unterschiedlichen Plattformen ausgeführt werden, ohne verändert
werden zu müssen. Adobe stellt mit der Adobe Integrated Runtime eine Laufzeitumgebung für Flash und ActionScript-
Programme zur Verfügung.
Um plattformspezifische Funktionalität, zum Beispiel spezielle Hardware, in der Laufzeitumgebung verwenden zu
können, muss die Laufzeitumgebung erweitert werden.
In dieser Arbeit wird beschrieben, wie native Erweiterungen für die Adobe Integrated Runtime erstellt werden können.
Inhaltsverzeichnis
1 Einleitung
2 Grundlagen
2.1 Rich Internet Applikation
2.2 Adobe Integrated Runtime
2.3 Vergleich zu Java Micro Edition
2.4 Adobe ActionScript
2.5 Apache Flex Software Development Kit
2.6 Adobe Native Extensions
2.7 NativeProcess-ActionScript Klasse
2.8 ActionScript Klassen Bibliothek (SWC-Datei)
2.9 Unterstützte Geräte
2.10 Beispiel-Erweiterungen
2.11 Zusammenfassung
3 Architektur von Native Extensions
3.1 Allgemeine Architektur
3.2 Native Architektur
3.3 Fazit
4 Entwicklungsschritte
4.1 Die Programmierung in ActionScript
4.2 Die Programmierung in C
4.3 Die Programmierung in Java
4.4 FREObekt-Typen
4.5 Descriptor-File
4.6 Verpacken der ANE
4.7 Vergleich zu Java Native Interface
4.7.1 Entwicklungsschritte für Java Native Interface
4.7.2 Vergleich von ANE und JNI
5 Praxis-Beispiele
5.1 ANE für Windows
5.1.1 Die C-Implementierung
5.1.2 Die ActionScript- Bibliothek
5.1.3 Das Descriptor-File
5.1.4 Erstellen der ANE
5.1.5 Verwenden der ANE
5.2 ANE für Android
5.2.1 Die ActionScript-Bibliothek
5.2.2 Descriptor-File
5.2.3 Default Implementierung
5.2.4 Die Android-Implementierung
5.2.5 Erstellen der ANE
5.3 Eigene Erfahrungen
6 Resümee
Zielsetzung & Themen
Die vorliegende Arbeit untersucht das Konzept der Adobe Native Extensions (ANE) für die Adobe Integrated Runtime (AIR). Ziel ist es, Entwicklern aufzuzeigen, wie plattformspezifische Funktionalitäten, die über den Standardfunktionsumfang von AIR hinausgehen, durch die Einbindung von nativem Code in eine AIR-Applikation integriert und nutzbar gemacht werden können.
- Grundlagen von Laufzeitumgebungen und Adobe AIR
- Architektur und technische Funktionsweise von Adobe Native Extensions
- Detaillierte Entwicklungsschritte für native Erweiterungen in C und Java
- Vergleich von ANE mit alternativen Konzepten wie dem Java Native Interface (JNI)
- Praktische Implementierungsbeispiele für Windows und Android
Auszug aus dem Buch
Die Programmierung in ActionScript
Die ActionScript Erweiterungs-Klasse verwendet und tauscht Daten mit der nativen Implementierung aus. Dieser Zugriff erfolgt unter Verwendung der Klasse ExtensionContext.
Folgende Funktionalität kann bei der Implementierung in ActionScript genutzt werden:
Die statische Methode ExtensionContext.createExtensionContext() kann verwendet werden, um eine Instanz einer Klasse zu erzeugen.
Die call() Methode kann verwendet werden, um nativ implementierte Methoden ansprechen zu können.
EventListener kann auf die ExtensionContext Instanz gelegt werden, um nach Events zu horchen, welche von der nativen Implementierung ausgelöst werden.
Mit der dispose()-Methode kann die ExtensionContext-Instaz beendet werden.
Es kann Datenaustausch zur nativen Implementierung erfolgen. Es können sämtliche ActionScript-Objekte ausgetauscht werden.
Es kann die getExtensionDirectory()-Methode verwendet werden, um Zugriff auf das Verzeichnis zu bekommen, in welchem die Erweiterung installiert wurde. Alle Informationen und benötigen Ressourcen binden sich in diesem Verzeichnis.
In einem ersten Schritt werden die öffentlichen Schnittstellen definiert. Andere Anwendungen verwenden diese Schnittstellen, um mit Objekten der Klasse interagieren zu können.
Als Beispiel wird hier eine Klasse erstellt, welche es später ermöglicht, den Kanal eines Fernsehers zu ändern. Die ausprogrammierte Klasse „TVChannelController“ befindet sich im Code-Anhang.
Zusammenfassung der Kapitel
1 Einleitung: Die Einleitung motiviert die Verwendung von Laufzeitumgebungen und identifiziert die Notwendigkeit von Native Extensions für den Zugriff auf plattformspezifische Hardwarefunktionen.
2 Grundlagen: Dieses Kapitel liefert eine theoretische Einführung in Rich Internet Applikationen, die Adobe AIR Architektur und vergleicht diese mit der Java Micro Edition.
3 Architektur von Native Extensions: Hier wird der Aufbau von Native Extensions, das Zusammenspiel zwischen ActionScript und nativem Code sowie die notwendigen Systemkomponenten erläutert.
4 Entwicklungsschritte: Dieser Hauptteil beschreibt detailliert den Prozess der Erstellung einer ANE, von der Programmierung in ActionScript, C und Java bis hin zum Verpacken und Signieren der Erweiterung.
5 Praxis-Beispiele: Anhand konkreter Implementierungen für Windows und Android wird die praktische Anwendung der zuvor erlernten Entwicklungsschritte veranschaulicht.
6 Resümee: Das Resümee bewertet den Entwicklungsaufwand und die Flexibilität von ANE im Vergleich zu anderen Ansätzen und gibt einen Ausblick auf das Potential der Technologie.
Schlüsselwörter
Adobe AIR, ActionScript, Native Extensions, ANE, Laufzeitumgebung, Java Native Interface, JNI, Rich Internet Application, Cross-Plattform, Software Development Kit, SDK, C-Interface, Android-Implementierung, XML, Descriptor-File
Häufig gestellte Fragen
Worum geht es in dieser Bachelorarbeit grundsätzlich?
Die Arbeit befasst sich mit dem Konzept der Adobe Native Extensions (ANE), die es ermöglichen, Adobe AIR Anwendungen um Funktionen zu erweitern, die nativen Zugriff auf Betriebssysteme oder Hardware erfordern.
Was sind die zentralen Themenfelder der Arbeit?
Die Arbeit deckt die theoretischen Grundlagen von Laufzeitumgebungen, die spezifische Architektur von ANE sowie die technische Implementierung in verschiedenen Programmiersprachen wie C und Java ab.
Was ist das primäre Ziel oder die Forschungsfrage?
Das Ziel ist es, dem Leser einen detaillierten Leitfaden für den Entwicklungsprozess von nativen Erweiterungen für Adobe AIR zu bieten und die Vor- und Nachteile dieses Konzepts aufzuzeigen.
Welche wissenschaftlichen Methoden werden verwendet?
Die Arbeit basiert auf einer Literaturanalyse zu existierenden Technologien, einer architektonischen Systemanalyse sowie einem praktischen Teil, in dem Implementierungsbeispiele für Windows und Android erstellt wurden.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die detaillierten Entwicklungsschritte, die von der Programmierung der Schnittstellen in ActionScript über die native C- bzw. Java-Implementierung bis hin zum Packaging-Prozess mittels ADT reichen.
Welche Schlüsselwörter charakterisieren diese Arbeit?
Zu den prägenden Begriffen gehören Adobe AIR, Native Extensions (ANE), plattformübergreifende Entwicklung, native Programmierung (C/Java) und die Integration plattformspezifischer Hardware.
Warum ist das "Descriptor-File" für eine ANE so wichtig?
Das Descriptor-File ist eine XML-Datei, die Informationen über die Erweiterung enthält, die Zielplattformen definiert und die Verknüpfungen zwischen dem nativen Code und den Initialisierungs- bzw. Finalisierungsmethoden herstellt.
Wie unterscheidet sich die ANE-Entwicklung für Android von der unter Windows?
Unter Windows erfolgt die native Implementierung primär in C/C++, während für Android Java als primäre Programmiersprache zum Einsatz kommt, wobei das AIR-SDK entsprechende Schnittstellen für beide Plattformen bereitstellt.
Was ist der wesentliche Vorteil der Verwendung von ANE gegenüber nativem Prozess-Handling?
Im Gegensatz zur NativeProcess-Klasse, die einen eigenen externen Prozess startet, läuft eine ANE direkt im selben Prozess wie die AIR-Laufzeitumgebung, was eine engere Integration und Performancevorteile bietet.
- Arbeit zitieren
- Martin Trinker (Autor:in), 2013, ANE (Adobe Native Extensions). Erstellung nativer Erweiterungen für die Adobe Integrated Runtime, München, GRIN Verlag, https://www.hausarbeiten.de/document/214765