Frage von Eisenkoenig, 28

Wieso sind Java Apps für Android so viel mehr populär?

Hey liebe Community,
Viele in Forum behaupten, dass man ausschliesslich mit Java Apps entwickelt, aber Minecraft Pocket Edition ist mit C++ coodiert.
Wie kommt das dann, wenn man eigendlich (fast) genauso gut mit C++ Apps entwickeln könnte.
Ich weiss halt, das man es mit Java etwas einfacher hat, da man ja schon die ganzen APIs zur Verfügung hat und somit ein Teil der Arbeit erspart bleibt, aber genauso gut kann man doch auch C++ einsetzen oder ??

Antwort
von androhecker, 9

C++ ist einfach nicht die optimale Sprache für Android.

Java Code wird erst auf dem Gerät nativ kompiliert, was die App problemlos auf alle Architekturen bringen kann und auch für jeden speziellen Prozessor optimiert werden kann. C++ Code wird vorkompiliert, d.h. man braucht für ARM und x86 seperate APKs und das Ergebnis ist auch weniger optimiert.

C++ ist auch meistens an plattformspezifische Bibliotheken gebunden, wodurch man die App für die verschiedenen Plattformen teilweise komplett umschreiben muss. Wenn man mit Java zB libGDX nutzt, läuft das exakt gleiche Spiel auf Windows, OSX, Web (mehr oder weniger gut), Linux x86, iOS, Linux ARM und Android (fällt eigentlich unter Linux ARM, hat aber wieder seine Eigenheiten). Hätte Mojang so gearbeitet, wäre das Problem mit der Pocket Edition nie entstanden.

Kommentar von Eisenkoenig ,

Danke für deinen Beitrag.

Das mit Minecraft verstehe ich auch so gar nicht, als ich das im Wiki gelesen hatte.
Das hat mir dann einfach zu denken gegeben, und die einzigste Logische Erklärung dafür wäre halt, das C++ Programme flüssiger laufen, was vor allem bei Minecraft sehr wichtig ist bzw. mal war, den heute ist die Hardware viel ausgereifter und günstiger.

Wenn man alles in Java um schreiben würde, dann kämen die ganzen Updates für Mc Pe doch viel schneller raus oder ?

Btw. Bei den Konsolen ist Mc Pe auch mit C++

Kommentar von androhecker ,

Natürlich kämen die schneller raus, das Desktop Minecraft in Java ist aber einfach nur schlecht gemacht. Da viele wohl die Schuld unberechtigt auf Java geschoben haben, wurde auch gewechselt. Was nötig wäre, ist ein komplett neues Minecraft mit zB libGDX oder Unity (das läuft sogar auf Konsolen).

Antwort
von user6363, 19

Klar, aber Java läuft eben fast überall reibungslos, mit C++ ist es einfach umständlicher aber macht an sich fast kein Unterschied. 

Kommentar von Rafael20002000 ,

Z.B. brauchst du in c++ verschiedene engines z.B. Gdx und in Java brauchst du die nicht. Ich kapiers nicht wieso mcpe in c++ programmiert wurde. Das ist so viel umständlicher

Keine passende Antwort gefunden?

Fragen Sie die Community