Android Tutorial Gerät an das IDE anschließen

klaus

Expert
Licensed User
Das Englische Originaltutorial wurde von Andrew Graham geschrieben.

Einführung

Das Programm adb.exe (Android Debug Bridge) ist die Schlüsselkomponente die zur Verbindung zwischen Programmen auf dem Desktop und dem Emulator oder dem Gerät benutzt wird. adb.exe kann ohne Eingriff des Benutzers von Programmen wie Basic4Android und Eclipse aufgerufen werden, es hat aber auch ein Kommandolinieninterface das von fortgeschrittenen Benutzern verwendet werden kann. adb.exe ist im Android SDK enthalten und findet sich, zusammen mit anderen Entwicklungstools, im <android-sdk-windows>\tools Ordner. Außer der Verbindung zum Emulator oder dem Gerät kann adb.exe keine andere Anwendungen laden weder noch ausführen, jedoch können Anwendungen kompiliert und mit USB auf die Geräte SD Karte kopiert und von dort installiert werden. Dieses Tutorial versucht zu erklären wie man das Gerät mit adb.exe verbindet damit man es mit dem Basic4Android IDE verwenden kann.


Geräte SD Karten und USB

Obwohl diese Möglichkeit völlig unabhängig von adb ist, ist es doch nützlich, zur Vollkommenheit, zu erklären wie Geräte die USB Verbindungen benutzen. Android Geräte haben einen USB Port der, wenn man ihn an einen Desktop anschließt, die SD Karte des Gerätes vom Desktop wie ein USB Speicher behandelt wird. Wenn ein Gerät das Erste mal an einen Desktop angeschlossen wird sollte Windows das Gerät automatisch erkennen und die relevanten Driver installieren ohne daß der Benutzer irgend etwas zu machen hat. Die SD Karte erscheint dann, wenn das Gerät angeschlossen ist, wie ein Laufwerk im Windows Explorer und im Device Manager. Solange die SD Karte im Desktop als Laufwerk zu sehen ist hat das Gerät keinen Zugriff auf die Karte mehr weil sie vom Gerät abgeschaltet ist. Einige Geräte, aber nicht Alle, erlauben eine SD Karte vom Gerät an- und abzuschalten wenn der USB Port an den Desktop angeschlossen ist. Andere Geräte bieten diese Option nicht an, aber schalten die Karte automatisch ab sobald der USB angeschlossen ist und schalten die Karte wieder an wenn die USB Verbindung unterbrochen wird. Sie müssen auf Ihrem Gerät nachsehen wie es sich in dieser Hinsicht verhält.



Der Emulator und adb

Es sollten absolut keine Probleme beim Benutzen des Emulators mit Basic4Android aufkommen. adb verbindet sich automatisch und sollte ohne weiteres funktionieren, Ich habe jedoch festgestellt daß, wenn der Emulator unter Android 1.6 läuft die adb Verbindung öfters unterbrochen wird und Probleme erzeugt. Deshalb schlage Ich vor den Emulator unter Android 2.1 oder höher laufen zu lassen um Probleme zu vermeiden. Es sollten auch keine Probleme in der Interaktion zwischen dem Emulator und adb im Command Line Modus (Kommandolinieninterface) falls nötig. Der Emulator sollte genau so arbeiten wie die Verbindung von adb mit Geräten, so wie es im Rest dieses Tutorials beschrieben ist.



Geräte und adb

Nach meiner bisherigen Erfahrung sind die USB Möglichkeiten und deren Interaktion mit adb und Windows sehr unterschiedlich zwischen den verschiedenen Geräten, deshalb kann das Folgende nur eine Richtlinie sein. Ihre eigenen Erfahrungen könnten unterschiedlich sein.

adb kann ein Gerät mit dem Desktop durch zwei Mitteln verbinden, Wi-Fi und USB. Damit adb das Gerät erkennt muß auf dem Gerät Settings -> Applications -> Development -> USB debugging 'gechecked' (angekreuzt) sein. Dies läßt das adb 'daemon' auf dem Gerät laufen und kommuniziert mit adb auf dem Desktop.


adb and WiFi

Um ein Gerät drahtlos zu verbinden muß man es an das Netzwerk über Wi-Fi verbinden um die IP-Adresse zu erhalten. Diese kann man unter Settings -> Wireless & Networks -> Wi-Fi Settings finden. Wenn man auf das angeschlossene Netzwerk in der 'WiFi Networks section' drückt wird eine MessageBox mit den Verbindungsdetails angezeigt.

Bevor man Basic4Android startet muß man ein 'Command Window' im <android-sdk-windows>\tools Ordner öffnen und diese Kommandozeile schreiben

adb connect 192.168.0.10

und obige Adresse durch die des Gerätes ersetzten.

falls ein Fehler auftritt kann man auch versuchen den Port zu bestimmen

adb connect 192.168.0.10:5555

Ich habe mit adb und Wi-Fi nur teilweise Funktionalität begegnet. Ich habe ein Tablett das einwandfrei mit adb und somit auch mit Basic4Android funktioniert – was auch gut ist da das Tablett keine USB Verbindung hat die für adb nötig ist. Ich habe auch ein Gerät, das hauptsächlich mit adb im Kommandozeilen-Modus arbeitet aber adb hängt auf und gibt die Eingabeaufforderung nach einer Installation oder Deinstallation nicht zurück, obwohl die eigentliche Bedienung am Gerät erfolgreich ist. Dieses Verhalten bedeutet, daß weder Basic4Android noch Eclipse mit dem Handy drahtlos genutzt werden können aber daß sie glücklicherweise perfekt über USB funktionieren.



adb und USB

Viele Android Geräte, aber nicht Alle, wie einige billige Chinesische Android Tabletts, haben zwei zusätzliche USB Interfaces "Android ADB Interface" und "Android Composite ADB Interface". Diese erscheinen dann, nach erfolgreicher USB Driver Installation, als "Android Phone" im 'Device Manager' und werden von adb zur Verbindung des Gerätes über USB verwendet. Falls Ihr Gerät keines dieser Interface besitzt bleibt immer noch die drahtlose Verbindung, wie oben beschrieben, übrig.

Diese Android Interface brauchen spezielle USB Driver, anders als der SD Karten Zugang, die man unter <android-sdk-windows>\usb_driver findet. In diesem Ordner befindet sich die 'android_winusb.inf' Datei die die USB IDs für dieInstallation der Driver für die verschiedenen Geräte enthält. Wenn ein Gerät angeschlossen ist und Windows nach Drivern verlangt, weisen Sie es zu diesem Ordner. Falls die Installation der Driver scheitert heißt das daß 'android_winusb.inf' keine IDs für dieses Gerät enthält. In 'android_winusb.inf' gibt es zwei Abschnitte, der eine mit dem Namen [Google.NTx86] enthält die Details für 32 Bit Systeme, der Andere mit dem Namen [Google.NTamd64] enthält die Details für 64 Bit Systeme. Beide Abschnitte sind in der Tat identisch. Damit mein Gerät erkannt wurde mußten Ich folgende Details in jeden der Beiden Abschnitte eingefügen.

;Orange San Francisco
%SingleAdbInterface% = USB_Install, USB\VID_19D2&PID_1354&MI_00
%CompositeAdbInterface% = USB_Install, USB\VID_19D2&PID_1354&MI_02

Diese notwendigen Details wurden mit einer gewissen sehr bekannten 'Suchengine' gefunden.


Beachten Sie, daß für einige Geräte, wie meins, Windows versuchen kann, die Treiber zu installieren ohne daß 'USB-Debugging' auf dem Telefon aktiviert wurde. Dies dürfte zum Scheitern führen, auch wenn man Windows auf die Driver weist die erfolgreich mit 'USB-Debugging' aktiv (enabled) installiert wurden. Da dies jedes Mal passieren wenn das Gerät an USB angeschlossen wird, ist die Lösung 'USB-Debugging' immer aktiv (enabled) zu behalten. Dies hat keinen Nachteil, zumindest für dieses Gerät, da der Zugang auf die SD Karte total unabhängig ist, egal ob 'USB-Debugging' aktiviert ist oder nicht.


Mehr über adb und WiFi

Manche Geräte scheinen kein 'adb daemon' für drahtlose Verbindung zur Verfügung zu haben. Es gibt eine Anwendung, Namens 'adbWireless', die dies überwinden kann, aber leider nicht für alle Geräte. Es ist auf dem Android Market erhältlich, in der neuesten Version 1.4.1, es braucht aber einen Root-Zugriff damit es auf dem Gerät funktioniert.


Eine andere Anwendung, UniversalAndroot, kann hier helfen, sie funktionierte auf meinem ZTE Blade/Orange SanFrancisco und erlaubte mir 'adbWireless' zum Laufen zu bringen. Man kann es von universalandroot herunter laden. Auf einen der Links im unteren Teil der Seite bei den 2D Barcodes klicken.
 
Top