Wie heisst die Programmiersprache von Android? (erst lesen, dann antworten)

F

ForenDaddy

Neues Mitglied
0
instinktiv würde ich sagen, Java. Klar, was sonst.
Aber stimmt das auch wirklich?

Grund für die Frage ist, ich schreibe an einem Artikel und möchte mich natürlich nicht ins Fettnäppchen setzen, wenn ein paar Superstreber es wieder besser wissen.
z.B. ist das eingesetzte Java von Android nicht voll kompatibel mit dem von Sun bekannten Java. Darf man es z.B. nur Java nennen, wenn es von Sun kommt?

Also... ist es offiziell korrekt zu sagen, die Programmiersprache von Android ist Java?
Oder wäre es besser zu sagen... die Programmiersprache von Android ist Android oder etwas anderes?
 
java
 
java. Android unterstützt natürlich nur ein Subset von Java SE, und hat dafür einige zusätzliche Klassen und verwendet ein anderes Programmierparadigma. Z.b. Activities werden nicht vom Entwickler instanziert, und der Lebenszyklus einer Activity wird vom ActivityManager kontrolliert. Als Entwickler kannst Du nur die Event callbacks des Lebenszyklusses überschreiben, z.b. onCreate(), onPause(), on Resume() etc. Alles ausser Activities, Intents, Services, ContentProvider, BroadcastReceiver, AsyncTask ist Plain Old Java.
IIm übrigen werden Android Apps nicht in einer JVM sondern in der sog. Dalvik Virtual Machine exekutiert. Die DVM exekutiert auch kein Java sondern Dalvik Byte Code.Der Compiler erzeugt aus dem Java Code Dalvik Byte Code, und das schon zur Entwicklungszeit. das ganze hatte Performance- und Lizenzrechtlich Gründe.
 
Taifun schrieb:
Android ist nicht Java, Hintergründe siehe u.a. hier: http://pallergabor.uw.hu/common/understandingdalvikbytecode.pdf es gibt übrigens auch noch den App Inventor, mit dem man Android Apps erstellen kann... http://www.appinventorbeta.com :)

Der Bytecode ist ein anderer, ja. Aber dann wäre C++ auch nicht C++, je nachdem auf welchem System ich es kompiliere kommt ein anderer Maschinencode raus.

Java ist die Programmiersprache und genau die haben wir hier. Sie definiert die Syntax in welcher wir Programme schreiben.
Die Erweiterung davon ist das Framework und hier unterstützt Android ein Subset von JavaSE und fügt an anderer Stelle neues hinzu.

Würde ja auch keiner behaupten Java ME wäre nicht Java weil es nicht alle Java SE Klassen enthält. Oder Java EE wäre kein Java weil die Lebenszyklen ganz anders sind.


PS: Bezeichnend ist auch, dass der Java Compiler genutzt wird und der Dex Compiler hinterher nur den Bytecode ändert ;)
 
Zuletzt bearbeitet:
@mradlmaier
high quality text. sehr gut geschrieben. nur "exekutiert" ist etwas zu sehr gedenglischt ;-)

@Taifun
Android ist nicht Java, das stimmt.
Sondern die Frage ist, nutzt Android Java als Programmiersprache?
Also kann man es als solches bezeichnen, obwohl es nicht allen Original Aspekten von Java treu ist.
Ich bezog mich im speziellen auf die Programmiersprache, nicht den erzeugten Bytecode oder den Weg dahin.
Dein erster Link sagt es auf Seite 4 ganz gut: "Developer codes in Java..."
Also die Antwort ist, bezogen auf die Programmiersprache, denke ich Java.
 
ForenDaddy schrieb:
@mradlmaier
high quality text. sehr gut geschrieben. nur "exekutiert" ist etwas zu sehr gedenglischt

Ich glaube "ausführen" ist das richtige Wort. Lese wohl zuviel englischsprachige Doku:)
 

Ähnliche Themen

netfreak
  • netfreak
Antworten
10
Aufrufe
437
netfreak
netfreak
Laser5001
Antworten
3
Aufrufe
630
swa00
swa00
M
Antworten
4
Aufrufe
1.148
swa00
swa00
Zurück
Oben Unten