# Wie lernt man Android



## mock789 (8. Sep 2012)

Hi,

ich habe das Buch Java von Kopf bis Fuß gelesen und noch einiges aus "Java ist auch eine Insel" und 

"Java - mehr als eine Insel" gelesen. Ich habe das alles eigentlich getan weil ich Android lernen wollte.

Ich hab mir ein Videotutorial auf Video2Brain angeschaut, bin mit dem aber nicht so zurecht gekommen.

Dann hab ich mir das Buch Android 4 vom Galileo Verlag gekauft, aber auch damit komm ich nicht so ganz 

zurecht weil es meiner Meinung nach eher ein Nachschlagewerk ist.

Hat jemand von euch eine gute Idee wo es gute Tutorials gibt oder was ein echt gutes Buch ist?

Hab Android - Von Kopf bis Fuss bestellt aber es ist noch nicht lieferbar...

Irgendjemand Erfahrung???


Lg


----------



## F.S.WhiTeY (8. Sep 2012)

Was meinst du mit du willst Android lernen? Und was hat Android mit Java zu tun?

Du meinst sicherlich du möchtest Java ME lernen. Java ist Plattformunabhängig und das gilt auch für Mobile Devices. Da ist es egal ob Symbian, Android, IOS oder Nokia.

Was du suchst ist Java ME....

LG


----------



## Nardian (8. Sep 2012)

Habe vor kurzem auch zum ersten mal eine mini-app für ein andriod programmiert... zugegeben, hatte auch meine schwierigkeiten mich zurecht zu finden, aber ich wusste was ich machen wollte, und hab einfach gezielt danach gegooglt. mithilfe von stackoverflow und paar foren / tutorials (ich meine jetz keine konkreten, einfach was beim googlen herauskam), hab ich dann die app doch recht schnell fertigstellen können.

mein vorposter hat schon recht, es ist einfaches java wobei du sehr stark mit ner art framework arbeitest (vergleichsweise)... also wenn du weißt was du machen möchtest, google hilft 
(btw - hab keine bücher oder sowas dazu gelesen, und wusste von andriod auch vorher genau 0 )


----------



## Pentalon (8. Sep 2012)

Dazu kann ich Dir das Buch JAVA für Android von Christian Bleske empfehlen.
Ich habe es zwar noch nicht durch, aber es fängt ganz am Anfang an, ist also für Einsteiger in Java gut geeignet und erklärt, welche Tolls nötig sind, wo man sie bekommt und wie sie installiert werden müssen.
Ich muss dazusagen dass ich die Kindle Edition des Buches habe, bei der die Sourcodeformatierung ein graus ist (weil sie nicht existiert, alles ist linksbündig).
Wenn man aber weiss wie Java aussieht, kann man das wegstecken. Ich weiss nicht ob die Printversion auch so ist. Nachdem die Sourcecodes alles sauber geschrieben und eingerückt sind, denke ich, es ist eher ein Fehler der bei der Umsetzung zu Kindle passiert ist.
Schau es Dir einmal an, mir gefällt der Schreibstil gut und ich habe sehr schnell erste kleine Ergebnisse im Emulator zum laufen bekommen.

Eclipse ist hier ein muss, denn nur dafür gibt es das ADT (Android Developement Toolkit) als Plugin und das Ding ist genial. Bis zum Debugging am echten Android Handy ist hier alles möglich.

Pentalon


----------



## Michael647 (9. Sep 2012)

F.S.WhiTeY hat gesagt.:


> Was meinst du mit du willst Android lernen? Und was hat Android mit Java zu tun?
> 
> Du meinst sicherlich du möchtest Java ME lernen. Java ist Plattformunabhängig und das gilt auch für Mobile Devices. Da ist es egal ob Symbian, Android, IOS oder Nokia.
> 
> ...



Hm, was hat Android nicht mit Java zu tun? 
Du brauchst die Sprache Java um Apps für Android entwickeln zu können. Wenn du was für iOS machen willst brauchst du die Sprache Objective-C. Nokia nutzt doch jetzt inzwischen Windows 8, ich glaube mit Java kommt man da auch nicht sehr weit. 
Also liegt man schon nicht falsch bei Java wenn man Android-Apps entwicklen will.


----------



## F.S.WhiTeY (9. Sep 2012)

falsche interpretation. nicht alle android apps sind in java geschrieben, schon alleine weil java garnicht alles kann oder gut kann. ich kann android apps auch in c oder c++ schreiben wenn ich das möchte. es macht zwar wegen den fehlenden apis wenig sinn, kommt aber vor.

und nochmal:java ist platform unabhängig und das gilt im grunde auch für java me.

beispiel für c und c++ einsatz: spiele für mobile devices. ich mag java aber für spiele ist es rotze und zu langsam. kein ernsthafter spiele entwickler nutzt java.


----------



## Network (9. Sep 2012)

F.S.WhiTeY hat gesagt.:


> falsche interpretation. nicht alle android apps sind in java geschrieben, schon alleine weil java garnicht alles kann oder gut kann. ich kann android apps auch in c oder c++ schreiben wenn ich das möchte. es macht zwar wegen den fehlenden apis wenig sinn, kommt aber vor.
> 
> und nochmal:java ist platform unabhängig und das gilt im grunde auch für java me.
> 
> beispiel für c und c++ einsatz: spiele für mobile devices. ich mag java aber für spiele ist es rotze und zu langsam. kein ernsthafter spiele entwickler nutzt java.



Witzig das die Schnittstellen für C und C++ von Google als "langsamer als reines Java" beschrieben werden in der Android Java Doc.
Wer in Java keine Spiele entwickeln kann, sollte mal ein paar Bücher über das Thema lesen wie man Ressourceneffizient etwas programmiert (Was Nebenbei auch für C(++) gilt und auch gemacht wird), hat mir persöhnlich sehr sehr geholfen. In kürze kommt von mir ein 3D-Strategiespiel in Reinjava (+OpenGL) heraus in den Play Store.... habe keine Probleme mit Effizienz und Batterieleistung. 

Android und Java sind zwar sehr ähnlich aber nicht das gleiche. Java Anwendungen laufen nicht auf dem Androidsystem.
Der Hauptunterschied zwischen Java und Android ist die fehlende Main-Klasse, stattdessen wird die onCreate() Methode verwendet. Es ist schon sehr gewöhnungsbedürftig wenn man von Java auf Android wechselt, weil gerade zum Projektstart man sich mit den ganzen verschiedenen Methoden im Gegensatz zu Java auseinandersetzen muss.


----------



## ARadauer (9. Sep 2012)

F.S.WhiTeY hat gesagt.:


> Was meinst du mit du willst Android lernen? Und was hat Android mit Java zu tun?
> 
> Du meinst sicherlich du möchtest Java ME lernen. Java ist Plattformunabhängig und das gilt auch für Mobile Devices. Da ist es egal ob Symbian, Android, IOS oder Nokia.
> 
> ...


Kein Mensch will heute noch Java ME lernen!!! Hast du dir die Android Plattform schon mal angesehen???


----------



## troll (9. Sep 2012)

F.S.WhiTeY hat gesagt.:


> Was meinst du mit du willst Android lernen? Und was hat Android mit Java zu tun?
> 
> Du meinst sicherlich du möchtest Java ME lernen. Java ist Plattformunabhängig und das gilt auch für Mobile Devices. Da ist es egal ob Symbian, Android, IOS oder Nokia.
> 
> ...



sorry ... aber mit einem wort : ABSOLUT FALSCH !

du hast scheinbar KEINE AHNUNG von android und reist hier trotzdem die klappe auf ...

nur um es dir mal zu erklären : Android ist ein Unix-System das mit einem ARM-Linux-Kernel läuft ...
darauf aufbauend läuft eine modifizierte Java*SE*-VM : Android Dvorak ...
laut android-apec läuft nun jede app in ihrer eigenen VM-instanz die von einer art controller überwacht und gesteuert werden ...
dieser "controller" ist sozusagen die MASTER-VM und stellt die API bereit ...
wie du sicherlich wissen wirst verfügt Java über eine technik die sich JNI nennt ... und genau DAS wird auch in der android-api genutzt ... wesshalb man Android-apps in dem sinne nicht wie "normales" JavaSE programmiert sondern wie schon wer sagte eher wie gegen ein ziemlich umfangreiches Framework ... nämlich die Android API ...
und mit hilfe dessen ist java in der lage "alles" auf android zu machen ... denn die api stellt ja alles als jni-lib zur verfügung ...
um nun von java-source zu einer android-app zu kommen wird erstmal vor dem compilen ein bisschen was auto generiert (z.B. die R.java) ... dann wird das ganze mit dem ganz normalen JavaSE-JDK compiler compiled ... dabei spielt es keine rolle ob oracle oder open ...
nach dem nun alles mit dem normalen SE-compiler in "normalen" bytecode compiled wird kommt der sog. "Dvorak-Cross-Compiler" , kurz "dx" , an die reihe und wandelt den SE-bytecode zusammen mit den resourcen um zu Dvorak-bytecode und packt alles in ein "apk" : "Android application PacK" ...



zur gegenüberstellung : Java ME (MicroEdition) wurde nach dem die SE auf dem PC ihre zielplattform hatte (EE war von anfang an für server- und enterprise umgebung gedacht) zu dem "degradierd" was Java eigentlich hätte werden sollen : eine einfache sprache für embedded geräte ...
anfangs fand man es auch auf den ersten "multimedia"-handys die dann mit 16bit farbtiefe und halbwegs annehmbaren sound auf den markt kamen ... natürlich auch für ältere modelle ...
vorwiegend nokia war davon überzeugt und hat seine eigenen produkte und die von tochter-unternehmen damit ausgestattet ...
und dann kam Apple mit dem ersten iOS gerät ... und weigerte sich von anfang an Java zu unterstützen ... dafür gabs andere sprachen und frameworks ...
als google dann 2009 mit Android kam, was an sich nichts weiter als ein übergroßes java-framework ist das auf nem sehr minimalen linux-kernel läuft , wurde java damit gleich noch mal etwas mitgepusht ... denn jeder der eigene apps entwickeln wollte musst java können ... und zwar die ganz normale *SE* version ... und das war dann der untergang für Java ME ...


bevor du also nächste mal die frage stellst was android mit java zu tun hat leg bitte erstmal dein iphone zur seite und hol dir n handy mit android ... und dann lies bitte selbst erstmal die api-specs ... weil dein post war einfach schlicht falsch ...



@TO
Android selbst kannst du nicht lernen ... denn android ist eine Linux-ARM variante ...
du kannst aber die Android-API für JavaSE lernen ... dazu gibt es genug material ...
vorraussetzung : man sollte doch zumindest die grundlagen von java drauf haben ...


----------



## F.S.WhiTeY (10. Sep 2012)

> Android selbst kannst du nicht lernen ... denn android ist eine Linux-ARM variante ...
> du kannst aber die Android-API für JavaSE lernen ... dazu gibt es genug material ...



Und genau das war es was ich meinte. Android ist ein Betriebsystem. Das auf Android eine JavaSE Variante läuft, war mir nicht bewusst und das JavaME für mobile Anwendungen nicht mehr zum Einsatz kommt auch nicht. Damit war mein Post wohl teilweise Falsch. Aber das man Android nicht lernen kann ist damit wohl bewiesen und ich kann immernoch behaupten: Java ist Platform unabhängig.

Und ich weis zu 100% das ich auf einem Android Handy auch eine C / C++ Anwendung laufen lassen kann, das versteht der Linux-ARM nämlich auch. 

Und zu den Spielen: Kein ernsthafter Spieleentwickler wird mit Java arbeiten. Ihr könnt euch ja gerne mal mit den Großen leuten der Spieleindustrie unterhalten oder einfach mal bei der Games Accedemy ( http://www.games-academy.de ) nachfragen. BTW: die Games Accedemy bringt 80% des Spieleentwicklernachwuchses in Deutschland auf den markt. Spiele mit Java mögen gehen, es ist aber nicht empfehlenswert und auch nicht das Optimum. 

Schon mal eine ernstzunehmende Games Engine in Java gesehen ? Ich nicht ... keine wunder bei einer VM was auch der Grund sein wird warum es keine ernstzunehmende Games Engine in C# gibt.

BTW: Ich hab weder ein Android noch ein IOS gerät, ich nutze Windows Phone 7 / Windows Mobile 6.5 ich brauche meine Telefon nämlich zum arbeiten und nicht zum Spielen oder um die jeweiligen Unternehmen mit Daten zu füttern


----------



## ARadauer (10. Sep 2012)

> Aber das man Android nicht lernen kann ist damit wohl bewiesen und ich kann immernoch behaupten: Java ist Platform unabhängig.


Aber jedem ist doch klar, wenn einer sagt er will Android lernen, was er damit meint oder? Er will Java Apps für Android Smartphones schreiben... 
Wenn ich jetzt hier herkomme und sage blablabla Android ist aber ein Os, blablabla Plattform.. blablabla Dalvik verindert das nur sinnvolle tipss und links zb auf das tutorial von lars vogel.. Android Development Tutorial gegeben werden...


----------



## timbeau (10. Sep 2012)

F.S.WhiTeY hat gesagt.:


> BTW: Ich hab weder ein Android noch ein IOS gerät, ich nutze Windows Phone 7 / Windows Mobile 6.5 ich brauche meine Telefon nämlich zum arbeiten und nicht zum Spielen oder um die jeweiligen Unternehmen mit Daten zu füttern



:lol:
und genau deshalb gibt es in unserer Abteilung Windows nur auf den Laptops zum präsentieren. Gearbeitet wird auf Linux/Unix. Und da passen die Android und iOs SPs super rein.


----------



## homer65 (10. Sep 2012)

Die größte Umstellung sehe ich in der GUI. Das herkömliche Swing funktioniert nicht unter Android. Ebenso sieht es mit der SWT aus. Also muß man in der GUI Programmierung komplett umdenken.


----------



## F.S.WhiTeY (10. Sep 2012)

> und genau deshalb gibt es in unserer Abteilung Windows nur auf den Laptops zum präsentieren. Gearbeitet wird auf Linux/Unix. Und da passen die Android und iOs SPs super rein.



Und genau deshalb hat man den Datenaustausch bei Apple und Android Systemen nachgewiesen aber den ganzen Windowsproducten nicht ein mal. 
Aber Linux ist ja so sicher und hat absolut keine Sicherheitslücken :lol:
Solcherleich kommentare kann nur jemand bringen der von Security so null plan hat. Wenn eure Abteilung das gehändelt bekommt ist ja alles i.O. und bei Rechnern mit Linuxdistris auch, wenn man Ahnung hat aber IOS und Android? 
Da sagt die Fachpresse aber was anderes


----------



## Noctarius (10. Sep 2012)

F.S.WhiTeY hat gesagt.:


> Und zu den Spielen: Kein ernsthafter Spieleentwickler wird mit Java arbeiten. Ihr könnt euch ja gerne mal mit den Großen leuten der Spieleindustrie unterhalten oder einfach mal bei der Games Accedemy ( http://www.games-academy.de ) nachfragen. BTW: die Games Accedemy bringt 80% des Spieleentwicklernachwuchses in Deutschland auf den markt. Spiele mit Java mögen gehen, es ist aber nicht empfehlenswert und auch nicht das Optimum.



Und wieder falsch  Wir arbeiten damit.


----------



## maki (10. Sep 2012)

Die Frage war: "Wie lerne ich Android"?
Nicht: "Wer hat alles falsche Ideen zu irgendwelchen anderen Themen?" oder "Was ist sicherer/besser/größer?"


----------



## Kayleigh (10. Sep 2012)

Hallo mock789!

Ich kann dir das Buch "Android - Grundlagen und Programmierung" von Becker und Pant empfehlen. Ich entwickle seit mehr als 2 Jahren auch Android-Apps und habe meine beiden Bachelorarbeiten zum Thema geschrieben und das Buch mitunter auch als Quelle benutzt. Das Buch erklärt recht brauchbar die Architektur von Android usw. und beinhaltet auch ein Tutorial für eine App. Allerdings vermute ich, dass du mit Java ansich Probleme bekommen wirst, wenn du wenig bis keine Erfahrung mit OO-Programmiersprachen hast.
Als Entwicklungsumgebung hält sich das Buch an Eclipse und das ADT-Plugin. Ich hab damit auch nur gute Erfahrungen gemacht(Ausnahme ist die Kombination mit dem Maven-Plugin, das kann Probleme geben).

lg, Daniela


----------



## Jango (10. Sep 2012)

maki hat gesagt.:


> Die Frage war: "Wie lerne ich Android"?
> Nicht: "Wer hat alles falsche Ideen zu irgendwelchen anderen Themen?" oder "Was ist sicherer/besser/größer?"



Ein gutes Beispiel für den 'normalen' Alltag hier - jeder will den Anderen mit seinem Gelaber übertönen - so sinnlos dieser auch ist...

Gut erkannt, maki...


----------



## Noctarius (10. Sep 2012)

Jango hat gesagt.:


> Ein gutes Beispiel für den 'normalen' Alltag hier - jeder will den Anderen mit seinem Gelaber übertönen - so sinnlos dieser auch ist...
> 
> Gut erkannt, maki...



Fast geschafft Jango ;-)


----------



## Jango (11. Sep 2012)

Noctarius hat gesagt.:


> Fast geschafft Jango ;-)



Was meinst du damit?


----------



## pmias (13. Sep 2012)

Will auch mal meinen Senf dazu geben ;-)

Wie schon ausführlich weiter oben zusammen gefaßt, läuft auf einem Android-Gerät eine Java-kompatible VM (Dalvik). Das bedeutet, man kann grundsätzlich auch Librarys (*.jar), die man projektübergreifend programmiert dort ebenfalls einsetzen. Das funktioniert tadellos, man muß eben den "Einstiegspunkt" einer Android-Applikation neu/anders umsetzen (Vergleich: Java-Applets vs. Java-Applikationen).

Aber ...
Einschränkungenn:

Alles, was GUI-mäßig programmiert wurde, also Swing, AWT, etc. muß neu gemacht werden. Android benutzt ein anderes GUI-Framework. Muß man eben neu lernen ...
Die Kompatiblität zum aktuellen JavaSE hinkt (noch) etwas hinterher. Einige spezielle Methoden sind meist nicht implementiert. Beim Übertragen und Ausführen von solchen Libraries kommt es dann zu entsprechenden Fehlermeldungen (Ist allerdings selten, weil nur seeehr spezielle Methoden fehlen).
Allerdings holt Dalvik mit jeder neuen Android-Version auf und implementiert nach und nach die Java-Standard-API. Hierzu empfehle ich übrigens herzlich die sehr gut dokumentierte Android-API: http://developer.android.com/reference/packages.html

Zusammenfassend würde ich sagen, um für Android-Systeme Applikationen zu schreiben (Sprachgebrauch: "Android lernen", bzw. "für Android programmieren") sollte man meiner Meinung nach erst einmal vernünftig Java programmieren können. Dann stellen Android-Apps nur eine Art weiteres Library dar, was heutzutage state-of-the-art ist.


----------



## Spacerat (13. Sep 2012)

[OT]Nur 'ne Kleinigkeit: Die abgewandelte Android-VM heisst Dalvik (und dem Oracle wurde gesagt, dass das auch so bleiben wird )). Dvorak ist 'ne Tastaturbelegung.[/OT]
Wer in Java für Android entwickeln will, wird mit Standard-Java nicht glücklich. Während es in Java SWT, Swing und AWT gibt, gibt es in Dalvik weder noch, die machen schon wieder ganz was anderes, ich finde nur leider keine Benennung dafür. In der Dalvik-VM ist aber standardmässig ein 3D-API für OpenGLES dabei.
Wer in Android etwas entwickeln will, hat meistens die Intention, etwas zu visualisieren. Wenn man dazu zunächst Standard-Java lernt und sich dann an Dalvik versucht, hat man ein Problem. Wenn man so will, passt die Frage "Wie lerne ich Android" also.
Im übrigen gibt es auch noch das Android-NDK (Native Development Kit) womit man per C/C++ (weis jemand ob da auch noch was anderes geht?) direkt in Windows-BEIN (Quatsch... Linux-ARM XD) programmiert.


----------



## Warrior7777 (13. Sep 2012)

Ich hatte dasselbe Problem mit dem Vorgänger des Buches. Dann habe ich einfach den Rat am Ende jedes Kapitels über App-Komponenten gelesen und befolgt: "Für weitere Infos konsultieren Sie die Android Website" ^^. Die hat sich in letzter Zeit enorm verbessert. Ich lern gerade auch damit. Ist eigentlich recht gut.
Android Developers

Viel Spass und noch einen schönen Abend!


----------

