# Android-App-Programmierung - Ähnlich normaler Java-Programmierung?



## Jack159 (6. Dez 2012)

Hallo,

Ich hatte jetzt 2 Semester Java gehabt und würde behaupten, dass ich eine gute Grundlage in Java besitze. Größere Sachen habe ich noch nicht programmiert. Nur Übungsaufgaben. Privat mal 1 Spaceinvanderklon und 1 Moorhuhnklon. 

Mich intressiert schon länger die App-Programierung in Android unter Java. 
Wie stark unterscheidet sich diese, von normalen Java-Programmen am PC?
Wie schwer wäre es z.B., meinen Moohrhuhnklon in Java für den PC, auf Android umzusetzen?
Mich würden auch Dinge wie GPS-Nutzung und Bewegungssensor intressieren.

Müsste ich mich jetzt erstmal Wochenlang in Android einarbeiten?

Zusatzfrage (Aufs Programmieren bezogen):
Androidapps für Smartphone = Androidapps für Tablet?


----------



## Mikrowelle (6. Dez 2012)

Zu deiner ersten Frage.
Beim Andorid muss man viel mit xml machen, der rest ist Java. Ich würde sagen 1-2 Wochen einarbeitung. Wichtig ist auch das dir beswusst was für eine Hardware in den Smartphones ist und bei gewissen Stellen dann umdenken. Ein Beispiel ist wenn ich mich nicht irre  das gleitkommazahlen nicht von der hardware direkt unterstüzt werden.

Zu 2: ja


----------



## TryToHelp (7. Dez 2012)

Ich hab jetzt kürzlich auch angefangen mir mal den Androiden anzuschauen 
Als Logig ist ziemlich gleich wie klassisches Java, nur halt GUI und so ist ein bisschen anders, aber dank dem i-Net ist das kein Problem, wenn man programieren kann, da findet man alle Infos, die man braucht.


----------



## Michael... (7. Dez 2012)

Hinsichtlich Resourcen läuft bei Android viel über xml (kann). Die Programmierung der Apps erfolgt in Java mit zusätzlichen eigenen Android Klassen. Für 2D und 3D interessant ist, dass unter Android standardmäßig eine OpenGL lib zur Verfügung steht. Die Android Philosohpie bzgl. Umgang und Lebenzyklus mit Applikationen unterscheidet sich etwas. (s. Activity, Intent...)

Zu Bedenken ist:
- eine App wird anders bedient als eine Desktop Applikation
- ein Mobiltelefon oder Tablet hat eingeschränkte Resourcen (Speicher, Akku....) und wenn aufgrund Deiner App der Akku des Telefons nach einer Stunde leer ist, wirst Du nicht viele Anwender finden
- der Speicherzugriff (SD Karte) ist nicht so frei, vieles ist vom System vorgegeben.


----------



## Tomate_Salat (7. Dez 2012)

Jack159 hat gesagt.:


> Androidapps für Smartphone = Androidapps für Tablet?


Ja. Eine App fürs Smartphone kann i.d.R problemlos aufm Tablet laufen (sieht ggf. aber ****** aus). Wenn du es richtig machen willst, unterscheidest du in der App bei den Resourcen (z.B. Layout) zwischen Tablet + Smartphone. 

Zwischen einer App und einer Swing-Anwendung aufm Desktop liegen aber imho Welten. Abgesehen vom GUI-Framework und dem ResourcenManagement (i18n, grafiken, layouts, styles, ....) was noch Geräteabhängig verwaltet werden kann, hast du eben Lebenscyclen in deiner App an mehreren Stellen (Activity, Fragments, ...), permissions, ...


----------



## schlingel (8. Dez 2012)

IMHO überschneiden sich bei Java für Server/Desktop und Android gerade einmal Java als Sprache und ein paar (allerdings auch nicht alle) Klassen- und Hilfsbibliotheken.

Was mir auf dem Server ziemlich egal ist, kostet auf dem Handy wertvolle Zyklen. Wo ich am Server problemlos Threads aufmachen kann, muss ich mir am Handy überlegen ob mir in der Zwischenzeit nicht der aufrufende Context flöten geht (Stichwort Lifecycle, Power Management, etc.) Außerdem muss man mehr auf die Referenzen aufpassen. Ich habe da schon meine eigenen Erfahrungen gemacht ...

Das Feeling ist ein ganz anderes.

Trotzdem: Wer Freude an der mobilen Programmierung hat, kommt schnell rein. Du hast schon spiele in der Freizeit geschrieben, das sind gute Voraussetzungen.


----------



## Gast2 (10. Dez 2012)

Ich kann das Buch "Android 4" von Thomas Künneth empfehlen. Es baut auf Java-Kenntnisse auf und erklärt alles, was man für Android wissen muss. Naja, es erklärt entsprechend des Buchumfanges sehr gut. Und dann geht's alleine weiter. Oder mit Forenaustausch. 

Frank


----------

