einige Fragen zum Anfang..

  • Hallo,


    fange gerade an, mich mit Android-Programmierung zu beschäftigen. Konkret gehts darum, eine bereits bestehende "normale" java-Swing-Applikation nach Android zu portieren. Dazu hab ich ein paar Fragen. Man findet zwar auch alles irgendwie online dokumentiert, aber bevor ich mich da durchwühle, wärs ganz gut, ein paar Dinge direkt in Erfahrung zu bringen.


    Ich hab das SDK und das Eclipse-Plugin installiert, läuft auch soweit alles.


    - die Applikation arbeitet mit Dateien (lesen und schreiben). Man kann mit "String s=getFilesDir().getAbsolutePath();" zwar den Pfad, an dem die Anwendung ihre Daten ablegt, erfragen, aber finde ich den auch tatsächlich irgendwo auf der Festplatte vor (wenn ich mit dem Emulator arbeite), oder existiert der nur temporär im Speicher des Emulators, während dieser läuft? Wäre praktisch für mich, wenn ich Dateien zum Testen irgendwo hin kopieren könnte, und dann innerhalb der Anwendung (die im Emulator läuft) darauf zugreifen kann. Hab mal testeweise eine kleine Datei angelegt, aber die mit dem Windows-Explorer nirgends wiedergefunden.


    - Zu GUI-Elementen (vor allem Menus, Radiobuttons, Checkboxes) wird überwiegend gesagt, man solle diese nicht programmatisch anlegen, sondern mit diesen XML-Layout-Dateien. Meine Anwendung muss jedoch jede Menge dieser Elemente dynamisch erzeugen, ohne vorher den genauen Inhalt zu kennen, also zwangsläufig "programmatisch". Hat irgendjemand ein Beispiel oder ein Tutorial, wie man beispielsweise eine RadioButton-Group oder ein paar Checkboxes komplett innerhalb des java-Codes anlegt, ohne XML-Dateien?


    Bin für Hilfe dankbar..


    Gruß
    Jan

  • Eine Frage noch, hatte die eben vergessen: Laufen im Emulator eigentlich auch tatsächlich nur die java-Klassen und -packages, die auch auf dem realen Android-Gerät laufen? Also wenn mein Projekt irgendwas enthält, was vom Android-java-Dialekt nicht unterstützt wird, merk ich das schon im Emulator, oder erst die böse Überraschung beim Versuch, die Anwendung auf dem realen Gerät laufen zu lassen?

  • Und noch eine Frage die ich vergessen hatte: Wie kommt die Applikation aufs Gerät? Geht das nur über irgendein web-publishen über irgendeinen Market, oder kann man die auch per USB-Kabel direkt und ganz altmodisch aufs Gerät kopieren und dort installieren? Für meine Anwendung wäre eher letzteres praktikabel.

  • Zitat

    Und noch eine Frage die ich vergessen hatte: Wie kommt die Applikation aufs Gerät? Geht das nur über irgendein web-publishen über irgendeinen Market, oder kann man die auch per USB-Kabel direkt und ganz altmodisch aufs Gerät kopieren und dort installieren? Für meine Anwendung wäre eher letzteres praktikabel.


    Wenn du dein Android Gerät am PC mit USB verbindest und vorher den USB-Treiber welcher beim SDK ist installiert hast, kannst du in Eclipse dein Gerät statt dem Emulator einstellen. Die App verbleibt dann auf dem Handy. USB-Debugging muss noch eingestellt werden im Handy.


    Denke sollte auch möglich sein direkt zu kompilieren und über die SDK Karte zu installieren. Damit habe ich mich aber noch nicht befasst.


  • Hi JanHH,


    1. Frage
    ok ich versteh nicht so ganz was du da vor hast. Willst du aus dem Emulator auf eine Datei, die irgendwo auf deinem Rechner liegt, zugreifen?


    2.Frage:
    schau dir mal das an:
    http://www.ibm.com/developerwo…-andddyntut/section6.html


    3.Frage
    siehe den Post von MaxZorin


    4.Frage
    Ja alles was im Emulator läuft, läuft auch auf dem dem spätern Smartphone.
    Dabei ist aber zu beachten das das spätere Smartphone ungefähr über die gleichen Eigenschaften wie der Emulator verfügt sollte.
    In diesem Zusammenhang vieleicht noch interessant die Einrichtung verschiedener Emulatoren für verschiedene Smartphone Typen


    Gruß Titus :)


    p.s. Auch wenn dir deine Fragen banal vorkommen, wäre schön wenn du sie das nächste mal in das jeweilige Unterforum einträgst.
    Schließlich hast du auch was davon, weil dadurch mehr leute deine Post sehen und damit sich die Möglichkeit einer Antwort auch vergrößert. ;)


  • Ja danke für die Antworten. Mit den programmatischen Widgets bin ich schon selber weiter gekommen, ist ja wirklich alles andere als schwierig (finds noch deutlich einfacher als java-Swing).


    Auf dem Android soll die Applikation natürlich auf Dateien, die auf dem Android sind, zugreifen, aber zum Entwickeln selbiger wärs ganz gut, die Dateien per Hand in das Verzeichnis vom Android zu kopieren (in der realen Anwendung werden die per Socket übertragen und dann gespeichert, aber der Programmteil fehlt noch. Ggf. muss ich den halt als erstes bauen). Aber soweit ich das bisher ergooglet hab ist das Android-Dateisystem in irgendeinem image-File und so direkt per windows-Explorer (beim Emulator) nicht zugänglich. Ich hab auch bisher kein Gerät, ich MUSS das mit dem Emulator entwickeln/testen. Wobei ich gerade bei ebay ein HTC Wildfire ersteigert hab ;-).


    Sind die Android-Versionen eigentlich aufwärtskompatibel? Also wenn ich bspws. für Version 1.6 entwickel, läuft die dann auf 1.6 und allen höheren? Vermute ja?


    Danke
    Jan

  • Danke. Der Link zu dem Buch-pdf ist sehr schön, prima!


    Hab nun das File Explorer-Plugin bei eclipse gefunde, immerhin. Allerdings, überall steht: Nur die Anwendung selber darf Dateien in ihr Verzeichnis lesen und schreiben. Für meine Anwendung wärs nun nach wie vor praktisch, Dateien in dieses Verzeichnis zu kopieren (quasi mit dem Windows Explorer oder ähnlichen Programmen), die Anwendung liest diese Dateien dann, führt bestimmte Aktionen aus und schreibt das Ergebnis dieser in wiederum andere Dateien zurück (auf die man dann auch wieder irgendwie "von aussen" zugreifen muss).


    Nun gibt es jedoch auch die SD-card und wohl offenbar einen "öffentlichen" Bereich für Dateien. Ich blick da wirklich gerade nicht durch. Optimalerweise bräuchte ich irgendeinen Ordner, von dem aus ich sowohl per USB-Kabel vom PC aus zugreifen kann, als auch auf dem Android selber innerhalb der Applikation.


    Mit dem Code


    File f=new File("/");
    String[] s=f.list();


    bekomme ich schön den Inhalt des Stammverzeichnisses (nehme ich an), dort gibts z.B. config, sdcard, etc, cache, data, sys, sbin, proc, und so weiter und so fort. Wenn ich das Gerät (hab ja mittlerweile eins, HTC wildfire) im Modus "Festplatte" (also als USB-Speichermedium) mit dem PC verbinde, finde ich dort jedoch ganz andere Ordner vor. Einzig der Name "data" taucht bei beiden auf. Kann mir das nicht jemand erklären? Welches Verzeichnis bietet sich an für das, was ich vorhabe!? Finde das grad ziemlich konfus.

  • Na prima, habs hinbekommen.. vom Gerät aus betrachtet gibt es im "/"-Ordner ein Verzeichnis "sdcard". Der Inhalt dieses Verzeichnisses ist (was auch nicht ganz unlogisch ist) das, was man sieht, wenn man das Gerät als USB-Massenspeicher im Windows Explorer sieht. Also dort "data\testverzeichnis\abc.txt" ist innerhalb der App "sdcard/data/testverzeichnis/abc.txt". Klappt sowohl mit Lesen als auch mit Schreiben. Na prima..

  • Richtig, bei manchen Telefonen ist es auch so, dass die SD-Karte intern nicht mehr erkannt wird, wenn sie über USB am PC gemountet ist. Also wenn das nicht geht, erst wieder unmounten und dann schauen, ob die App die Karte wieder erkennt.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!