Java + Android

AMD

Software-Overclocker(in)
Hey,

ich muss in der Uni über das Sommersemester ein bisschen mit Java programmieren und eine App für Android entwickeln.
Hat dazu irgendjemand gute Tutorials? Habe mich nie wirklich mit der Programmierung unter Android beschäftigt und weiß daher nicht mal, was ich alles benötige. Das geht bei Headers los und endet bei der Entwicklungsumgebung.
Also wenn ihr gute Tutorials und Tipps habt, immer her damit :)
 
Das geht bei Headers los

Hallo ehrenwerter C++ Entwickler. :ugly:
So wat brauch man in Java nicht.

Wie aber Phoenix schon gesagt hat, Android SDK runterladen (leider wird offiziell Eclipse genutzt, ist aber die schlechtest IDE auf der Erde) und die beginner Tutorials, die mitlerweile ziemlich gut geworden sind, auf d.android.com durchgehen.

Bei Fragen, brauchste nur Fragen. :D
 
Meiner Meinung nach ist die offizielle SDK Doku ziemlich schlecht.. und auch die Tutorials auf der Seite. Als ich mich damals eingearbeitet habe, habe ich einfach nach dem Thema gegooglet und meist gute Tutorials gefunden auf anderen Seiten. Bei spezifischen Fragen bietet Stackoverflow eigentlich immer eine Antwort.

Leider versteht man meist erst nach einiger Einarbeitungszeit, wie das ganze so funktioniert im allgemeinen. Wenn du eine kleine App entwickelst, wie einen Taschenrechner, wirst du dich nicht so weit einarbeiten müssen.
Ich bin zwar absolut kein Android Profi und habe auch nur einen Monat konzentriert für Android programmiert, aber in der Hoffnung, dass es dir etwas bringt, hier ein paar Tipps:
- Der grundlegende Aufbau einer App ist durch Activities gegeben. Du solltest quasi für jede unterschiedliche "Ansicht" eine eigene Activity haben. Wenn du z.B. ein Chat Programm schreibst, hast du eine Actvitiy für die Kontaktliste, eine für das eigentliche Chatfenster mit einem Kontakt, eine für die Einstellungen und eine für die Accountverwaltung. Andere Activities rufst du über "Intent"s auf und kannst so Daten übergeben und bekommen.
- Du wirst sicher schon diesen tollen GUI Editor bemerkt haben. Der erzeugt XML Dateien. Diese Style XML Dateien werden mit einem Inflater in ein Objekt verwandelt, was dann dargestellt wird. D.h. du musst nicht immer eine komplette Oberfläche basteln, sondern kann kleinere Elemente vordesignen. z.B.: In der Kontaktliste gibt es einzelne Elemente für die Kontakte mit Avatar und Username. Nun kannst du das Kontakt-Element schonmal vordesignen, dann mit dem Inflater zum Objekt umwandeln und brauchst nurnoch den Usernamen und den Avatar zu setzen.
- Viele Design Elemente wie ListViews oder ähnliches funktionieren auf eine erst merkwürdig wirkende aber eigentlich recht geschickte Methode: Adapter. Dabei muss man selber eine Klasse erstellen, die von einem Adapter Interface erbt und diverse Methoden überschreiben muss. Z.B. GetElement(id) oder ähnliches. Das ist eine recht nützliche Methode um solche Sachen zu steuern.

Das wären erstmal die Punkte, bei denen ich mir damals gedacht hatte "Man hätte mir das mal einer direkt erklärt" :P
Wie gesagt: Ich bin absolut kein Profi oder so und ich gebe keine Garantie auf die Tipps, aber hoffe trotzdem, dass sie dir nützen.

Sonst, wie die anderen schon gesagt haben, musst du leider eclipse nutzen. Man kann zwar auch in C++ programmieren, sogar in VisualStudio (siehe NVIDIA nsight tegra), aber davon würde ich erstmal abraten.
Sonst noch: Falls du ein Handy hast, versuch direkt auf dem Handy zu debuggen, nicht in einer VM. Die VM kostet nur nerven ohne Ende. Zuletzt noch: Falls du ein Samsung Smartphone hast, die brauchen oft extra USB Treiber (das hat mich 2 Stunden gekostet rauszufinden, warum das debugging mit meinem Galaxy Nexus nicht klappt -.-).

Dann noch viel Spaß beim programmieren!

mfg
Lukas
 
Sorry, aber ich muss leider dich nochmal verbessern Crysis nerd.

- Die SDK Doku war schlecht, wirf mal einen Blick drauf, die wurde in der letzen Zeit extremst verbessert und es gibt eigentlich keine bessere Anlaufstelle für Blutige Anfänger (vorrausgesetzt man weiss ein wenig wie Programmieren geht)

- Der Grundlegende Aufbau einer App ist mit Activities, das ist korrekt. Allerdings hat sich mit API Level 11 (Android 3) einiges am Aufbau geändert, es wurden nämlich Fragments eingeführt. Du kannst dir das so vorstellen, eine Activity is ein Fenster (wie bei einem Windows Programm) und ein Fragment sind unterschiedliche Ansichten in diesem Fenster. Also zum Beispiel hast du eine App welche ein Hauptfenster hat (Activity A), dieses Hauptfenster stellt allerdings drei verschiedene Bildschirme dar (Fragment 1 - 3), um zwischen diesen zu wechseln nutzt du sog. FragmentTransations. Wenn du jetzt allerdings in die Einstellungen gehst, startest du eine neue Activity (Activity B). Damit besteht deine App aus nur 2 Activities und 3 Fragments, statt 5 Activities. Das ist viel einfacher zu managen und Speicher / Performance schonender.

- Der "klicki bunti" GUI Editor mag für den Anfang toll sein, hat aber derbe schwächen. Früher oder Später musst du in den XML code gehen. Aber das wird dir erklärt. Ok, aber darauf wollte ich nicht herraus, denn, du nutzt nicht wie du sagst für einzelne Elemente XML Layouts, sondern nur für screens. In dem falle unseres Beispiels wären das also 5 Layouts, wobei das Layout für Activity A sehr simpel ist und nur aus einem Bildschirm füllenden Element besteht. Die OnRuntime Layout inflations sind möglich, aber keine gängige Technik, da diese sehr unperformant und Speicher fressend sind. Bitte so nicht!

- Korrekt, Adapter sind super. Für Simple dinge gibt es vorgefertigte (z.B ArrayAdapter für Elemente aus einem Array oder CursorAdapter für Elemente aus einem Cursor, also einer Datenbank Abfrage)
 
Danke für die Info Leandros :)
Wie gesagt, ich hab auch nur an den Grundlagen geschnuppert und das war im Sommer letzten Jahres... also auch schon ein wenig her. Kann sein, dass sich die SDK Doku verbessert hat, ich war jedenfalls nicht sonderlich begeistert damals (und ich hatte schon andere Programmiererfahrung).
Mit Fragments hab ich nie gearbeitet, obwohl das scheinbar ja recht nützlich ist. Zu meinem Schutz: Mein "Arbeitgeber" wollte es auch für Android 2.X haben, von daher war ich auf MinSDKLevel 7 angewiesen..
Dass der GUI Editor nicht so Pralle ist, hab ich leider auch schnell bemerkt.. Nur wenn man recht statische "Layouts" bastelt, kann der schnell zum Ziel führen, vorallem wenn man mit dem XML Aufbau der Style Dateien nicht vertraut ist.

Zuletzt noch: Warum "nochmal verbessern"? Kann mich nicht erinnern, ich hab doch hier im Thread erst einmal was geschrieben :ugly:

Danke jedenfalls für deine Verbesserung!
Mfg
Lukas
 
Gerne, wie gesagt: Nicht bös gemeint, wollte es nur nicht so stehen lassn. :ugly:

Hier das Training, welches von Anfang an dich begleitet: Getting Started | Android Developers
Fragments können übrigens bis Api Level 4 genutzt werden, durch die Compatability Library.


Ups, das nochmal ist da irgendwie reingerutscht. :D
 
Gerne, wie gesagt: Nicht bös gemeint, wollte es nur nicht so stehen lassn. :ugly:

Hier das Training, welches von Anfang an dich begleitet: Getting Started | Android Developers
Fragments können übrigens bis Api Level 4 genutzt werden, durch die Compatability Library.


Ups, das nochmal ist da irgendwie reingerutscht. :D
 
Zurück