HowTo: Android-Programmierung - Newbie Guide

Dieses Thema im Forum "Tipps und Anleitungen zur Code-Entwicklung" wurde erstellt von SeraphimSerapis, 31.03.2010.

  1. #1 SeraphimSerapis, 31.03.2010
    Hallo liebes Forenmitglied,

    Du hast dich entschieden für Android zu programmieren, oder möchtest zumindest wissen, was im Hintergrund passiert?
    Dann ist genau dieser Guide hoffentlich eine kleine, leicht zu verstehende Einführung, welche Dir bei den ersten Schritten innerhalb der Welt von SDKs, Eclipse und ADB hilft.

    Ziel dieses Guides ist es nicht, Dir alles Schritt für Schritt in diesem Thread vorzuleben, sondern Dir einen Weg aufzuweisen, was Du tun kannst, und wo Du erste Informationen findest.
    Deswegen habe ich auch keine eigenen Code-Beispiele geschrieben, sondern verlinke auf die bereits sehr guten und informativen Beispiele.

    Vermutlich fragst Du dich jetzt, was überhaupt benötigt wird, um mit der Android-Programmierung loszulegen. Ich möchte versuchen die wichtigsten Komponenten aufzuzählen und kurz zu erläutern:

    1. Voraussetzungen für die Android-Programmierung:

    1. Java Kenntnisse:
      Java ist eine der bekanntesten Programmiersprachen und findet in vielen Komponenten ihren Einsatz. Viele bekannte Tools und Programme basieren komplett oder zumindest zum Teil auf Java. Hierzu zählen unter anderem: eclipse, jDownloader, IBM Lotus Notes, NetBeans, aber auch bekannte Web-Applikationen wie eBay

      Und wie lerne ich nun Java?
      Hier gibt es natürlich viele Ansätze. Für die meisten Programmierer beginnt in fast jeder Programmiersprache alles mit Hello World. Dies ist eine Tradition, welche aus einem Eintrag in einem Programmierhandbuch von 1974 zur Sprache C entstanden ist.
      Im Internet gibt es natürlich übermäßig viele Guides und Tutorials, welche allesamt irgendwo zum Ziel führen. Auch Fachliteratur gibt es natürlich haufenweise. Ich empfehle hierbei einfach mal das OpenBook Java ist auch eine Insel von GalileoComputing, welches hier: Galileo Computing :: Java ist auch eine Insel (8. Auflage) eingesehen werden kann.
      Ich empfinde dieses OpenBook als sinnvollen Anfang für den Umgang / die Beschäftigung mit Java.

      Achtung: Das Lernen einer Programmiersprache ist nicht leicht und kann auch oft deprimieren, aber mit stetiger Übung und sinnvollen Zielsetzungen, ist es durchaus schaffbar.

      Vorteile von Java: Natürlich hat jede Programmiersprache ihre Vor- und Nachteile - ich versuche hier ein paar Vorteile zu nennen, welche auch bei Android zum Einsatz kommen.

      1. objektorientiert
      2. dynamisches Speichermanagement
      3. kann Multi-Threading
      4. leicht zu erlernen
      5. Plattform unabhängig
      6. gute Performance

      Was man verstehen/kennen sollte: Ich kann natürlich nicht alles aufschreiben, was wichtig ist. Jedoch versuche ich, eine kleine Liste mit nützlichen Begriffen zu verfassen, welche Dir im Laufe deines Studiums von Java sicherlich begegnen.

      Achtung: Nicht jeder dieser Begriffe muss Dir in der Android-Welt begegnen, jedoch tragen sie zum allgemeinen Verständnis von Java sicherlich bei:

      1. Threads
      2. Objekte
      3. Klassenvariablen
      4. Objektvariablen
      5. Handler
      6. Vererbung (Interfaces und Extends)
      7. Schleifen (for, while, do-while)
      8. Bedingungen (if, else, else if, switch:case)
      9. Rekursion
      10. Überladung von Methoden
      11. Oberflächen (Swing / AWT)
      12. ...

    2. Programmierumgebung für Android:
      Sobald Du dich genug mit Java beschäftigt hast oder es einfach nicht mehr abwarten kannst, solltest Du Dir folgende Dinge runterladen, um deine ersten Schritte in der Android-Programmierung zu tätigen:

      1. eclipse: Eclipse Downloads (Ich empfehle Classic)
      2. Java JDK: Java SE Downloads - Sun Developer Network (SDN)
      3. Android SDK: Android SDK | Android Developers

      Sobald Du die genannten Komponenten runtergeladen hast, geht es natürlich ans Installieren. Nachdem du das JDK und eclipse installiert hast, geht es an das Android SDK.
      Die benötigten Schritte hierzu findest du hier: Installing the SDK | Android Developers

      Wenn Du die beschriebenen Schritte hinter Dich gebracht hast, geht es ans Eingemachte.

    2. Deine erste(n)Anwendung(en):
    Du hast Dich dazu entschieden für Android zu entwickeln und hast nun hoffentlich erste Java-Kenntnisse. Jetzt ist es Zeit Deine erste Anwendung zu entwickeln.

    Hier: Hello, World | Android Developers findest Du eine wunderbare Anleitung um eine erste Nachricht auf Deinem Gerät oder innerhalb des Android-Emulators anzuzeigen.

    Ganz ähnlich wie bei Swing lassen sich bei Android Interfaces zusammensetzen. Jedoch gibt es zusätzlich aber auch noch den bequemen Weg, ein GUI mit XML zu definieren.

    Hast Du es geschafft? Dann geht es gleich weiter!

    Hello, Views | Android Developers zeigt verschiedene Layout-Elemente, welche Dir immer und immer wieder begegnen werden. Natürlich kannst Du auch eigene Layout-Elemente definieren, jedoch muss man auch nicht für jede Aufgabe das Rad neu erfinden :D
    Ziel von Hello, Views ist es natürlich Dich mit den verschiedenen Layout-Elementen bekannt zu machen und Dir ein Gefühl für GUI-Entwicklung mit dem Android SDK zu geben.

    Solltest Du nun langsam der Meinung sein, dass Du mehr möchtest, kannst Du Dir zum Beispiel diesen Link anschauen: List of Sample Apps | Android Developers - hierbei sind verschieden Applikationen mit unterschiedlichen Funktionen aufgeführt, welche sehr interessant sind und auf jeden Fall viel nützliches vermitteln.

    Was kannst Du noch tun?
    Sei kreativ! Nutze die Forensuche! Frag nach! Lies Dir mal den Code von größeren Projekten durch, zum Beispiel hier: Google Code! Google!

    Und wenn Du gar nicht mehr weiter weißt, dann frag einen Thread mit einer sinnvollen Frage. Wer richtig fragt und einen ordentlichen Ton verwendet, findet oft schnelle Hilfte durch viele kompetente Entwickler, welche sich hier im Forum tummeln.

    3. Literatur und sonstiges:
    Inzwischen gibt es auch im Bereich Android einige gute Bücher, die den Einstieg erleichtern, oder aber auch tiefergehende Themen wie zum Beispiel ContentProvider ausführlichst behandeln. Die Literaturempfehlungen, die ich hier gebe beruhen auf eigenen Erfahrungen mit den Werken:
    1. Android 2 Application Development von Reto Meier
      Sehr frisch erschienen und das bisher beste Buch, welches mir in die Hände gekommen ist - 500 Seiten umfassend und keine ist langweilig. Ich habe es bei einem Aufenthalt im Krankenhaus an einem Tag das erste Mal durchgelesen und mochte sowohl den Schreibstil, als auch die ausführlichen Beispiele.
      Auch für erfahrene Programmierer ist hier sicherlich noch das ein oder andere Schmankerl enthalten.
      Achtung: Englisch

    2. Android: Grundlagen und Programmierung von Arno Becker
      Ein älteres Buch, welches sich auf Android <= 1.5 konzentriert. Sehr gut geschrieben um die Grundlagen zu verstehen und ein nettes Fallbeispiel, welches konsequent weiterentwickelt wird.

      Inzwischen übrigens auch als PDF kostenlos zu erhalten: dpunkt.verlag | E-Books
      Dieses Buch bekommt von mir eine Einsteigerempfehlung!

    3. Videotutorial: http://eclipsetutorial.sourceforge.net/totalbeginner.html
      Achtung: Englisch

    4. Nützliche Tools:
    Die meisten nützlichen Tools habt ihr bereits mit der Installation des SDKs vor Euch liegen:
    1. DDMS
      Mit DDMS könnt ihr nicht nur Screenshots machen, sondern vor allem LogCat auslesen. LogCat zeigt alle möglichen Informationen an, die während der Ausführung einer App bzw. während der Ausführung des Systems passieren.
      Entwickler haben mit LogCat ein tolles Tool um Informationen, aber auch Warnungen in einer Konsole anzeigen zu lassen.
      Von daher ist LogCat für mich eines der wichtigsten Tools in der Android-Entwicklung, welche mir sehr beim Fehlerfindungsprozess helfen können.
      Wie Du LogCat innerhalb deiner Anwendung benutzen kannst, findest du ausführlichst hier: Log | Android Developers

      Kurzes Beispiel: Wir wollen einen String ausgeben, welcher uns zur Übersicht dient:
      Code:
      Log.d("Name","onCreate gestartet");
      Es wird nun über DEBUG eine Nachricht ausgegeben.

    2. adb
      Mittels adb kannst Du sowohl Dein eigenes Gerät, als auch den Emulator mit Befehlen fernsteuern. Zum Beispiel kannst du eine App (de-)installieren, oder auch eine Datei auf das Gerät schieben (push) bzw. vom Gerät runterladen (pull).
      Der Syntax von adb wird wie üblich bei Kommandozeilenprogrammen mit folgendem Befehl angezeigt:
      Code:
      adb help
    3. layoutopt
      Du bist Dir nicht sicher, ob Deine XML-Layout Dateien wirklich optimal geschrieben sind? Benutze layoutopt und finde es raus.
      Die genaue Funktionsweise wird hier beschrieben: layoutopt | Android Developers
      Kurzes Beispiel:
      Code:
      layoutopt res/layout-land
      oder auch
      Code:
      layoutopt res/layout/main.xml res/layout-land/main.xml
      und schon wird geprüft, was zu optimieren ist.

    4. draw9patch
      Du hast schicke Grafiken, zum Beispiel für einen Header deiner App und regst dich jedes mal darüber auf, dass die Grafik falsch skaliert, wenn Du eine neue Version Deiner App auf verschiedenen Auflösungen testest?
      Dafür gibt es eine tolle Alternative! Schon mal Dateien mit .9.png bei Android-Projekten gesehen? Hierbei kannst Du festlegen, welche Teile Deiner Grafik skalieren dürfen und welche nicht. Klingt cool?
      Auf jeden Fall und ist auch noch einfach. Ein tolles Tutorial hierzu findet man übrigens bei AndroArt: Draw9 PNGs - Tutorials - Andro.Art

    5. DroidDraw: Ein interessantes Tool (gerade für Anfänger), welches nicht zum SDK gehört:
      Ein simpler GUI-Builder, welcher Dir beim Design deiner Applikation helfen kann. Leider wurde er schon eine gewisse Zeit nicht mehr aktualisiert - es kann also vorkommen, dass nicht alle aktuellen Layout-Elemente vorhanden sind. Übrigens wurde DroidDraw auch in Java programmiert.
      DroidDraw : Graphical User Interface Editor for Android Cell Phone Development and Programming



    Dieser Guide ist noch in Entwicklung und wird nach und nach von mir mit Informationen erweitert um Dir den Zugang zur Android-Entwicklung leichter zu machen...
     
    ways, b3i5i53ibi, BlackManta und 156 andere haben sich bedankt.
  2. #2 RinTinTigger, 31.03.2010
    Wie wärs....schreib ein Buch :)

    Danke Tim für diesen feinen kleinen Einstieg!
    Aber keine Angst, ich entwickle nix für Android :D


    P.s.:

    Um die Rekursion verstehen zu können musst du erst die Rekursion verstehen!
     
  3. #3 SeraphimSerapis, 31.03.2010
    ... musst du erst die Rekursion verstehen :cool:

    Danke schon mal :)
     
  4. #4 MeetAndroid, 31.03.2010
    Jo, ein Buch wär cool oder wenigstens so ein Flyer :p
    Ich hätte jetzt Bock ein Cover zu photoshoppen :D

    Edit: Ich hasse while Schleifen! :D
     
  5. #5 SeraphimSerapis, 31.03.2010
    Ich will meine Bachelorarbeit über Android schreiben :D
     
    Stereobeat, hansichen, fsi09 und 3 andere haben sich bedankt.
  6. #6 MeetAndroid, 31.03.2010
    Das wirst du wohl hinkriegen ;)
     
  7. #7 Timotime, 01.04.2010
    Das passt hier vlt nicht Hunderprozentig. Aber ich bin ein echter Fan von Seraphim geworden. Du bist so jung, du studierst erfolgreich. Man merkt das du voll hinter dem stehst was du tust. Du hast seit kurzem eine eigen Firma, programmierst eigene Apps und ganz nebenbei bist du hier ein Halbgott weil du Android ständig (na klar nicht ganz alleine) rootest. Ich glaube aus dir wird mal ein sehr bekannter Programmierer. Mach weiter so ;)
     
  8. #8 MeetAndroid, 01.04.2010
    Timo, du machst mir Angst
     
    Hectic, ZrWX1KI9S7, Dodge und eine weitere Person haben sich bedankt.
  9. #9 Timotime, 01.04.2010
    Muha, wieso denn. Ich bin nur nett :)
     
  10. #10 Radioid, 01.04.2010
    Hey danke Sera, interessantes HowTo. Hab auch vor einigen Wochen mein erstes HelloWorld auf den Emulator bekommen. :)

    Sobald ich mein n1 oder desire habe möchte ich richtig einsteigen. Hab da schon einige Ideen.. ;)
     
  11. das hab ich auch versucht ;) aber da es fast keine aktuelle literatur dazu gibt, ist es schwerer als erwartet. ( ich will ja nicht mit android 1.5 rumkämpfen ;) )

    hab nun das thema gewechselt und schneide android nur noch ein wenig an ;)
     
  12. #12 SeraphimSerapis, 02.04.2010
    bei mir fällt es wohl eher mit einem thema aus der e-finance oder entscheidungsunterstützung zusammen und wird in android realisiert :D


    An die Anderen:
    Vielen Dank für das Lob. Ich werde den Guide natürlich noch stetig weiterentwickeln.

    EDIT: layoutopt- und draw9patch-Erklärung hinzugefügt
     
  13. #13 IrealiTY, 13.04.2010
    Yay ich werde erwähnt :D
     
  14. #14 swordi, 13.04.2010
    Zuletzt bearbeitet: 13.04.2010
    das kannst du wohl sicher selbst beantworten ;)
     
    SeraphimSerapis bedankt sich.
  15. #15 SeraphimSerapis, 13.04.2010
    mehr gibt es dazu nicht zu sagen
     
  16. Moin ,

    hier habe ich noch ein Videotutorial für Java, zwar in Englisch aber leicht zu verstehen. Das könntest du ja noch in s HowTo einbinden.

    Eclipse and Java for Total Beginners

    Gruß Nils
     
    huhu und SeraphimSerapis haben sich bedankt.
  17. #17 SeraphimSerapis, 20.04.2010
    Vielen Dank, binde ich ein.
     
  18. Shit...irgendwie hab ich mir das etwas einfacher vorgestellt.
    Als ich damals von Delphi auf C# umgestiegen bin, hab ich mich gleich ganz gut zurechtgefunden...

    Aber irgendwie, hab ich gehofft, nicht erst Java lernen zu müssen. Da hab ich mich wohl getäuscht.

    Bis zum GridView war noch alles einfach. Klar, programmieren war das noch nicht wirklich. Aber das dann nun doch... und da haperts. TableLayout war noch ganz einfach...doch plötzlich werden einem Sachen abverlangt, die gar nicht gescheit erklärt werden?! Oder kann es sein, dass das mit dem GridView im neuen Eclipse gar nicht funktioniert?

    Gruß und trotzdem Danke Sera
     
  19. #19 SeraphimSerapis, 03.05.2010
    Der Unterschied von C# zu Java ist doch gar nicht so groß ;)

    Eigentlich sollten alle Views funktionieren. Wobei ich mich auch nicht erstmal an den Layouts festhalten würde, sobald du sowas wie das relative Layout verstehst.

    In der Praxis verwende ich das relative Layout zu etwa 60% ;)

    Gruß Tim.
     
  20. Hey Leute,

    Ich hab schon vor ner längeren Zeit alles nach der Englischen Fassung gemacht. Alles klappt wunderbar, bis ich bei Eclipse Name vom Project undsoweiter auswählen muss. Dort muss ich ja auch ein Target auswählen. SO kann ich logischerweise nichts Erstellen -.-


    Ich hoffe, ihr könnt mir helfen.

    MfG NiG
     

Diese Seite empfehlen

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. java android programmieren

    ,
  2. android apps programmieren

    ,
  3. android app programmieren eclipse

    ,
  4. android java programmierung,
  5. android app entwickeln eclipse,
  6. Programieren für Android