Brauche ich adb? Was ist mit dem Terminal los?

Ich bin ziemlich neu in Android, aber ich habe ein bisschen Linux-Verständnis. Muss ich adb verwenden und muss ich adbvor jedem Befehl tippen?

Auf meiner GS3 läuft SSHDroid. Ich öffne mein reguläres Linux-Terminal und habe ssh root@<ip>. Als ich einstieg, tippte ich abd logcat, das schlug fehl. hat gerade logcatfunktioniert.

Ich bin zufrieden mit der Shell, die ich kenne, wird dies ein Problem verursachen?

Ich habe versucht, die grundlegenden Gemeinsamkeiten und Unterschiede mit meiner Antwort zu erklären. Ich habe vielleicht etwas übersehen – weise einfach darauf hin und ich füge es hinzu. Als einfache kurze Antwort: Verbinden Sie sich über SSH, stellen Sie sich Ihr Android-Gerät als "einen anderen Linux-Computer" vor. Sie müssen nichts mit "adb" voranstellen - das machen Sie auch nicht auf Ihrem Linux-Rechner, oder? :)

Antworten (1)

Die Antwort hängt davon ab, was Sie tun möchten. ADB und SSH dienen unterschiedlichen Zwecken, obwohl sie einige Gemeinsamkeiten haben: Sie können remote auf Ihr Android-Gerät zugreifen und Befehle darauf ausführen. Mit ADB können Sie noch viel mehr – Sie bekommen eine Vorstellung, wenn Sie das ADB-Tag-Wiki lesen und auch den dort enthaltenen Links folgen.

Eine weitere Gemeinsamkeit: Beide können interaktiv genutzt werden.

Und noch ein Shorty: Sie sind nicht voneinander abhängig.

SSH

Um SSH zu verwenden, müssen Sie einen SSH-Server auf Ihrem Android-Gerät installieren. Wenn letzteres gerootet ist (als Linux-Benutzer brauche ich nicht zu erklären, dass "root" das Administratorkonto ist und auch als "Superuser" bezeichnet wird, der vollen Zugriff auf alles hat), können Sie es einrichten Verwenden Sie den Standard-SSH-Port - andernfalls müssen Sie einen über 1000 wählen, wie es bei Linux der Fall ist.

Jetzt können Sie mit dem Gerät interagieren: Dateien mit kopieren scpoder sich direkt am Gerät anmelden. Auf diese Weise erreichen Sie eine Shell und können auf dem Gerät wie auf jedem anderen Linux-Rechner arbeiten (fast -- natürlich gibt es einige Einschränkungen, wie zB kein vorhandener X-Server und eine begrenzte Anzahl von Befehlen).

ADB

Mit ADB können Sie auch einen solchen "Terminalmodus" einrichten, indem Sie einfach den Befehl adb shellohne Argumente ausführen. Dies bringt Sie direkt zum Shell-Prompt. Ähnlich wie bei sshkönnen Sie Befehle auch direkt ausführen, indem Sie sie einfach als Parameter übergeben. In diesem Fall kehren Sie wie bei ssh nach Abschluss des Befehls zu Ihrer lokalen Terminal-Eingabeaufforderung zurück.

ADB bietet zusätzliche Befehle, nicht nur "shell". adb pushSo können Sie zB oder verwenden , adb pullum Dateien zu übertragen (vergleichbar mit scp). Alle anderen Funktionen gehen über den Rahmen Ihrer Frage hinaus - aber das oben erwähnte Tag-Wiki sollte Ihnen auch hier den Einstieg erleichtern.

Ein letztes Wort zu ADB: Ähnlich wie bei SSH handelt es sich hier um ein Client-Server-Modell. Das heißt, um ADB-Befehle von einem Client auszuführen, muss ein Server laufen. Dieser wird gestartet, wenn Sie in den Einstellungen Ihres Android-Geräts „USB-Debugging“ aktivieren.

Danke... Benötigt ADB eine USB-Verbindung?
Normalerweise ja (deshalb heißt die entsprechende Option zum Starten des ADB-Servers auf dem Gerät „USB-Debugging“). Aber es gibt auch "ADB via WiFi" alias "wireless adb" (mit einer App dieses Namens im Playstore), wenn Sie dies bevorzugen. Ich habe lange gezögert, ADB zu verwenden (hauptsächlich, weil ich nicht die Überlastung eines vollständigen SDKs haben wollte), bis ich von einem minimalistischen Ansatz erfahren habe – jetzt möchte ich ihn nicht mehr missen :)
Das scheint mir der bedeutendste Unterschied zu sein. USB oder ip.
Aus Sicherheitsgründen: Nichts geht über eine direkte Kabelverbindung (pro für USB). Für die Geschwindigkeit wahrscheinlich das gleiche (hängt davon ab, also neutral). Der Einfachheit halber ist Wireless der "Profi" (und um die Sicherheit auszugleichen, würde ich hier SSH bevorzugen). Ich habe die Sicherheit für "wireless adb" nicht überprüft, da ich das nie benutzt habe. ABER: Alle genannten Beispiele verwenden IP (ja, einschließlich ADB - also passt Ihr "USB oder IP" nicht :)
Mit den Beispielen, die Sie gegeben haben, sieht es so aus, als adbwäre es nutzlos, wenn wir bereits sshund haben scp, ist das richtig? Es scheint, dass wir mit und alles tun können adb, was wir tun können . sshscp
Ist das so? Dann versuchen Sie zB ssh backup(funktioniert nicht). ADB hat leicht erhöhte Privilegien, obwohl sie bei weitem nicht die Root-Ebene erreichen.
"Alle genannten Beispiele verwenden IP (ja, einschließlich ADB - also passt Ihr "USB oder IP" nicht". Meinen Sie damit, dass beim Anschließen eines Android-Telefons an einen Computer über ein USB-Kabel adb auf dem Computer die identifiziert Telefon durch die IP-Adresse des Telefons?Warum verwenden wir dann ein USB-Kabel für die Verbindung?
@Tim "einschließlich ADB" bezog sich auf "ADB drahtlos" (siehe den zweiten Kommentar). Für "kabelgebundenes ADB" wird IMHO keine IP verwendet, sondern nur eine Socket-Verbindung.