Zum Inhalt springen

Dalvik VM: Unterschied zwischen den Versionen

862 Bytes hinzugefügt ,  8. März 2013
keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


== Funktionsweise ==
== Funktionsweise ==
Die Funktionsweise ist sehr ähnlich zu einer Java-VM (JVM), die man z. B. von Java-Applets im Browser, Desktopanwendungen für Java oder Handyspielen älterer Generationen (MIDlets bzw. J2ME-Apps) kennt.
Die Funktionsweise ist sehr ähnlich zu einer Java-VM (JVM), die man z. B. von Java-Applets im Browser, Desktopanwendungen für Java oder Handyspielen älterer Generationen (MIDlets bzw. J2ME-Apps) kennt. Jede [[App]] muss grundsätzlich in der Dalvik VM ausgeführt werden, welche für jeden Prozess, also jede App, eine eigene Instanz generiert. Für die Ausführung der App werden Dateien im [[DEODEX|Dalvik Executable Format]] (.dex) gestartet.


=== Sandbox ===
=== Sandbox ===
Die Dalvik VM hat die Aufgabe [[App|Anwendungen]] für Android mit Dalvik-Bytecode, die meist in der Programmiersprache Java entwickelt werden, auszuführen. Dabei läuft die App in einer sogenannten Sandbox, einer isolierten Umgebung, die verhindert, dass das Programm direkte Hardware- oder Betriebssystemoperationen ausführen kann, z. B. Telefon ausschalten, Speicher oder andere Anwendungen löschen/manipulieren oder sogar das Dateisystem formatieren. Da ohne den Zugriff auf die Hardware (Display, Speicher, etc.) aber keine App funktionieren würde, stellt das Betriebssystem bzw. die VM wichtige Funktionen über die Android-APIs zur Verfügung (siehe Abschnitt [[#APIs|APIs]]).
Die Dalvik VM hat die Aufgabe, [[App|Anwendungen]] für Android mit Dalvik-Bytecode, die meist in der Programmiersprache Java entwickelt werden, auszuführen. Dabei läuft die App in einer sogenannten Sandbox (Referenz zu: Eigene Instanz für jeden Prozess, dadurch ist jede Instanz von anderen Instanzen unabhängig und kann diese nicht beeinflussen), einer isolierten Umgebung, die verhindert, dass das Programm direkte Hardware- oder Betriebssystemoperationen ausführen kann, z. B. Telefon ausschalten, Speicher oder andere Anwendungen löschen/manipulieren oder sogar das Dateisystem formatieren. Da ohne den Zugriff auf die Hardware (Display, Speicher, etc.) aber keine App funktionieren würde, stellt das Betriebssystem bzw. die VM wichtige Funktionen über die Android-APIs zur Verfügung (siehe Abschnitt [[#APIs|APIs]]).


=== APIs ===
=== APIs ===
Sogenannte APIs (Application Programming Interfaces) stellen dem Programmierer fest definierte ''Methoden'' (so nennt man in Java Funktionsaufrufe), die die App benötigt, zur Verfügung.
Sogenannte APIs (Application Programming Interfaces) stellen dem Programmierer fest definierte ''Methoden'' (Funktionsaufrufe), die die App benötigt, zur Verfügung.


Da diese APIs meist mit jeder Android-Version erweitert und verändert werden (genau genommen mit jedem API-Level), kann es vorkommen, dass Apps, die Methoden einer neueren Android-Version benutzen, mit älteren Versionen nicht funktionieren. Zum Beispiel können Bluetooth-Funktionen erst ab Android 2.0 (API Level 5) verwendet werden;<ref>http://developer.android.com/reference/android/bluetooth/package-summary.html, Bluetooth API-Dokumentation</ref> NFC (Near Field Communication) gibt es erst seit Android 2.3.3 (API Level 10).<ref>http://developer.android.com/sdk/api_diff/10/changes.html, API Changes bei Level 10</ref>
Da diese APIs meist mit jeder Android-Version erweitert und verändert werden (genau genommen mit jedem API-Level), kann es vorkommen, dass Apps, die Methoden einer neueren Android-Version benutzen, mit älteren Versionen nicht funktionieren. Zum Beispiel können Bluetooth-Funktionen erst ab Android 2.0 (API Level 5) verwendet werden;<ref>http://developer.android.com/reference/android/bluetooth/package-summary.html, Bluetooth API-Dokumentation</ref> NFC (Near Field Communication) gibt es erst seit Android 2.3.3 (API Level 10).<ref>http://developer.android.com/sdk/api_diff/10/changes.html, API Changes bei Level 10</ref> Der API-Level gibt also an, auf welchem Softwarestand sich das Betriebssystem befindet.


=== Berechtigungen ===
=== Berechtigungen ===
Zeile 21: Zeile 21:
* Verwendung des GPS-Empfängers zur Positionsermittlung
* Verwendung des GPS-Empfängers zur Positionsermittlung
* ...
* ...
Die Berechtigungen lassen sich vom Benutzer nicht App-bezogen einschränken. Das bedeutet, das man entweder alle Berechtigungen bei der Installation gewährt, oder die App nicht installiert. Diese Berechtigungen werden bei der Ausführung der App von der Dalvik VM gewährt. Benötigen Apps die Möglichkeit selbstständig, also außerhalb der Dalvik VM, Code auszuführen, ist dies über die API möglich.


== Einzelnachweis ==
== Einzelnachweis ==
11.008

Bearbeitungen

Cookies helfen uns bei der Bereitstellung von Android Wiki. Durch die Nutzung von Android Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.