Android und die VM

  • hi,
    ich versuche gerade mich in das Thema Android App-Entwicklung reinzuarbeiten.


    Zur Zeit habe ich noch kein Tablet oder ein anderes Android Gerät. Daher möchte ich ein solches auf dem PC simulieren.
    Der Emulator des SDK ist leider unbrauchbar. Da ich nicht nicht über 2teraflop Rechenleistung verfüge *scherzscherz* ist der Emulator zu langsam, um auch nur ansatzweise eine brauchbare Reaktion zu bekommen.
    Mein schönes "Hello World" geht in dem ganzen Bildgestotter leider unter.


    Nach einigen Anleitungen im Netz soll das Ganze auch in einer VM funktionieren. Eine VM habe ich bereits am laufen.
    VirtualBox mit dem image von androidx86.org funktioniert soweit schon mal.


    Mir fehlt jetzt noch irgendwie die Kommunikation zwischen den Beiden.
    Also wie bekomme ich meinen Code in die VM?
    Da die VM per TCP angebunden ist, kann ich keinen USB-Treiber installieren, durch den die ADB das Gerät in der VM finden würde.
    Stehe also momentan etwas auf dem Schlauch was das anbelangt.
    Wäre dankbar, für jeden Link oder Erfahrungsbericht, der diesen Kopplungsvorgang im Detail beschreibt.


    Meine Entwicklungsumgebung:
    NetBeans v7.0.1 mit Android Plugin
    Windows 7 64bit
    VirtualBox mit Android v3.2

  • Moin!


    Da hänge ich mich gleich mal dran. Auch ich versuche gerade, mich in die Thematik einzuarbeiten und scheitere am gleichen Problem. Ich habe die Virtualbox (kurz VBox) unter Linux laufen, darin das von Dir beschriebene Android-Iso und das geht auch gut. Leider hören alle möglichen Anleitungen, die man im Netz so findet, bei der Installation der VBox und des Android-Systems darin auf - als ob man damit nichts weiter anfangen wollte...


    Ich habe versucht, den Datenaustausch mit USB-Stick, "gemeinsamen Verzeichnissen" und einer echten SD-Karte hinzubekommen. Nichts davon hat funktioniert, weil das jeweilige Medium nicht bei Android in der VBox ankommt. Das scheint daran zu scheitern, daß man die dazu nötige Gasterweiterung der VBox nicht in ein Android-System installieren kann (oder doch?).


    Was noch möglich sein könnte, wäre ein Austausch über die Dropbox - die ist als App verfügbar, deren Installation scheitert aber (sie ist nicht im Emulator vorinstalliert). Denn ich kann zwar https://market.android.com/details?id=com.dropbox.android über den Browser anwählen, aber die Installation geht nicht, weil ich kein Handy bei Google angemeldet habe ("There is no Android phone associatetd with the account"). Zwar kann ich ich sie als apk-File holen (z.B. hier hier) - aber dann bekomme ich das immer noch nicht in den Emulator. Damit drehe ich mich also im Kreis...


    Einen weiteren Weg, der aber leider auch nicht funktioniert , habe ich noch gefunden: über die Linux-Konsole des Emulators in der VBox. Das ist mächtig "von hinten durch die Brust ins Auge", sieht aber vielversprechend aus. Ich habe hier einen lokalen Webserver, in dem ich ein Verzeichnis /android/ angelegt habe, und darin liegt die Dropbox.apk. Jetzt rufe ich in der VBox mit Alt-F1 die Konsole auf. Darin wechsle ich ins App-Verzeichnis (Achtung: amerikanische Tastatur! Da sollte ein Zettel mit dem Layout daneben liegen :) :(


    Code
    cd /system/app


    Dann kann ich das File wie folgt hier reinholen:


    Code
    wget http://10.0.2.2/android/Dropbox.apk


    Statt der lokalen IP-Adresse 10.0.2.2 sollte auch jede beliebige Webadresse gehen (z.B. innerhalb der eigenen Homepage), wohin man das File geschafft hat. Jetzt wird das File tatsächlich geholt und liegt anschließend im app-Verzeichnis. Allerdings tritt dabei eine Fehlermeldung auf: "wget: clock_gettime(MONOTONIC) failed". Und - und das ist das Traurige - die Datei im Emulator hat anschließend die Länge 0 und funktioniert natürlich nicht. Daß sie da ist, läßt sich z.B. mit einem beliebigen Dateimanager sehen (ich habe mir im Emulator den Ghost Commander vom Android-Market geholt, funktioniert gut). Ach ja, aus der Konsole zurück zur normalen Ansicht kommt man mit Alt-F7.


    Ihr seht, ich habe zwar keine Lösung gefunden, aber vielleicht kann ich trotzdem zur Lösung des Problems ein Stück beitragen. Ich bin selbst sehr interessiert daran.


    Ralph

  • Die letzte Lösung über den Webserver funktioniert. Allerdings nicht so umständlich wie beschrieben (mit wget), sondern einfach über den Browser im Emulator.


    Ich habe also ein Verzeichnis /android/ auf einem beliebigen Webserver (auch localhost/android, oder 10.0.2.2/android, oder eben auch http://irgendeinedomain.de/android). Darin liegen irgendwelche *.apk, also Apps, und die werden beim Aufruf des Verzeichnisses aufgelistet. Ich klicke auf eins drauf, es wird heruntergeladen und landet im Emulator in /sdcard/downloads. Mit einem beliebigen Dateimanager (ich habe den Ghost Comander aus dem AndroidMarket installiert) gehe ich dorthin und klicke auf das App. Ich werde gefragt, ob ich es installieren will, und wenn das klappt, kann ich es gleich starten und habe es in der App-Übersicht.


    Mächtig schräg, das ganze, aber erstmal praktikabel.

  • Warum nur soooo kompliziert?


    Ich habe unter Windows7 eine kleine VM (VMware --> XP mit Eclipse 3.7.1) laufen, welche inkl. Emulator ohne Probleme läuft.


    Das Image von androidx86.org ist gar nicht für eine Entwicklung geeignet/gedacht.

  • Das Image von androidx86.org ist gar nicht für eine Entwicklung geeignet/gedacht.

    Aha, und wofür dann? Nur zum Gucken? Das ist schade, denn dieses "Handy" scheint mir wesentlich schneller und weniger ressourchenhungig, wenn es auch nur eine einzige Android-Version bereitstellt.


    Ich lasse es inzwischen mit seinem Browser über die IP 10.0.2.2 auf meinen lokalen Webserver zugreifen und kann so beliebige Apps (*.apk) einbinden, die durch speichern beim Beenden der VM auch den Neustart überleben.

  • Schon gut, DAS geht freilich nicht. Wobei ja 2.2 oder 2.3 (oder was da drin steckt) nun nicht ganz so steinalt ist. Aber darüber will ich nicht streiten. Mir gings ums Prinzip - daß das Dingen ja zu irgendwas nütze sein müßte außer für den netten Anblick :-).

  • Der Nutzen von androidx86 ist doch klar:
    Ein lauffähiges Anroid-BS für x86-Prozessoren!
    Man kann Apps installieren und spielen. Ergo genaus das, was du gerade machst! ;)


    Für die App-Entwicklung brauchst du jedoch eine komplette Entwicklungsumgebung (a la Eclipse), welche nicht als kleine App verfügbar ist.


    Die Problematik des Themenerstellers kenne ich nicht. Der Emulator aus dem SDK läuft extrem flüssig, weshalb ich von einer fehlerhaften Konfiguration ausgehen. Die Lösung des Problems kann man nicht in einer Android-VM finden.

Jetzt mitmachen!

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