# Welche Mindestanforderungen (JDK) für Android und BB?



## Kukulkan (10. Jan 2011)

Hallo,

ich habe JAVA Code greschrieben und verwende den aktuell mit JavaSE JDK 1.6. Ich möchte nun auch eine Codebasis erstellen, der unter Android und dem BlackBerry funktioniert. Ich komme aber nicht dahinter, welche JDK Version ich als Minimum annehmen muss.

Erst dachte ich, J2ME bzw. JavaME wäre die richtige Wahl. Ich finde aber immer wieder Beiträge im Internet, wo für den BlackBerry von JDK1.4 ausgegangen wird. Auch für Android finde ich die Aussagen, dass nicht JavaME die Basis sein soll, sondern dass Dalvik auf was eigenem basiert.

Ich bin jetzt verwirrt. Was muss ich in Eclipse als Library-Subsystem angeben (für JavaSE hatte ich "Java-SE 1.6" ausgewählt)? Ich kann noch andere JavaSE Varianten (1.2, 1.3, 1.4 und 1.5 sowie CDC 1.0 und CDC 1.1 sowie OSGi Minimum 1.1 bis 1.2) auswählen. Aber welche ist die richtige, damit ich validieren kann ob der Code mit hoher Wahrscheinlichkeit unter Android und BlackBerry verwendbar ist?

Ein wenig Licht im Dschungel der Abkürzungen und Kompatibilitäten wäre wirklich hilfreich.

Grüße,

Kukulkan


----------



## The_S (10. Jan 2011)

Haben wir doch schon alles durchgekaut  .

BlackBerry ist Java ME => Programming the BlackBerry With J2ME . Java ME wird idR mit J2SE 1.4 kompiliert, allerdings natürlich nicht mit den SE-Klassen.

Android hat mit ME rein gar nichts zu tun, ist näher an SE angesiedelt, aber eben auch nicht SE sondern sozusagen "Java für Android" (banal ausgedrückt). Android SDK | Android Developers


----------



## Kukulkan (10. Jan 2011)

Hallo,

sorry dass ich das Thema neu aufrolle, aber es ist mir (auch nach Forumssuche) nicht klar, was ich in Eclipse einstellen soll. 

Wenn ich deine Aussagen richtig werte, dann stelle ich auf "J2SE 1.4" und kann dann so ziemlich sicher sein, dass es auch unter BlackBerry compiliert, oder?

Für Android ist das verzwickter. Wenn man Dalvik vergleicht, womit ist es dann am ehesten Kompatibel? JDK 1.4 oder eher 1.6?

Ich bin noch recht neu in der JAVA Welt und hab halt gleich die Aufgabe, etwas für mehrerer Welten zu erstellen. 

Kukulkan


----------



## The_S (11. Jan 2011)

Ein Projekt für Java SE, Java ME und Android wird nicht funktionieren. Für Java SE hast du alle Klassen aus der Desktop-JRE zur Verfügung. Für Java ME hast du komplett andere Klassen zur Verfügung und für Android hast du teilweise die Desktop-JRE und teilweise andere Klassen zur Verfügung (bitte Korrektur falls ich falsch liege, hab noch nie für Android entwickelt). Du kompilierst also in jedem Fall gegen Bibliotheken, die dir auf 2 der 3 Plattformen nicht zur Verfügung stehen, müsstest also höllisch darauf aufpassen (was gerade für einen Anfänger sehr schwer sein sollte), dass du in den Java ME/Android/Java SE Klassen nichts von den anderen verwendest.


----------



## Noctarius (11. Jan 2011)

Also nach ein wenig suchen (das Thema war neulich schon) wirst du Android und Java SE zusammen verpacken können. Hier muss eventuell ein wenig mit Reflection getrickst werden (so mach ich es bei Lycia).

JavaME lässt aich aber nicht so einfach integrieren, da es hier (außer in dem gaaaaanz großen Standard - den kaum einer unterstützt) kein Reflection gibt und die meisten Klassen einfach nicht existieren.

Die einzige Möglichkeit wäre also tatsächlich (und das ist schwer), sich auf die Klassen (und Möglichkeiten) zu beschränken, welche alle 3 Plattformen besitzen. Für kleine Projekte mag das funktionieren, bei größeren erfindet man dann eventuell mehr Räder neu als man möchte.


----------



## Kukulkan (11. Jan 2011)

Hallo,

danke für die Informationen.



			
				Noctarius hat gesagt.:
			
		

> Die einzige Möglichkeit wäre also tatsächlich (und das ist schwer), sich auf die Klassen (und Möglichkeiten) zu beschränken, welche alle 3 Plattformen besitzen.


Ok, und was müsste ich für diese Beschränkung in Eclipse dann einstellen? Wenn in meiner Liste der Möglichkeiten was fehlt (ein paar Einträge weiter oben), was muss ich dann zur Empfehlung installieren?

Danke,

Kukulkan


----------



## The_S (11. Jan 2011)

Also das Compiler-Level muss für Java ME zwingend auf 1.4 gestellt werden.


----------



## Noctarius (11. Jan 2011)

Und bei den Klassen soltlest du dich nur an den in JavaME verfügbaren Klassen orientieren. Wie gesagt damit wird aber nicht viel möglich sein.


----------



## Kukulkan (12. Jan 2011)

Danke, damit komme ich weiter


----------

