2013-08-06 6 views
25

Wir haben Android + Linux m/c, melden wir uns in Linux-Shell und starten Sie die Maschine in android GUI. Jetzt haben wir das einige Skript, das auf dem gleichen Computer durch Linux-Shell läuft. In diesem Fall, wenn das Skript hängt, müssen wir Android-Maschine neu starten. aber es führt dazu, dass auch der Linux-Rechner neu gestartet wird. wie sie auf derselben Maschine sind. Also brauche ich den Weg, um das Android neu zu starten, damit es aus dem Hang-Zustand kommt und die Kontrolle bleibt auf dem Skript, das durch die Linux-Shell läuft.Neustart android Maschine

also gibt es irgendwelche adb oder linux Befehl, die für mich arbeiten?

+1

** adb reboot ** neu starten beide? – EvZ

+0

ja, da beide auf derselben Maschine sind. – Sagar

+1

Was ist ein "m/c"? Bitte [bearbeiten] Sie Ihre Frage und klären Sie, und kennzeichnen Sie diesen Kommentar als obsolet. – unforgettableid

Antwort

27

Sie können das Gerät neu starten, indem Sie die folgende Sendung zu senden:

$ adb shell am broadcast -a android.intent.action.BOOT_COMPLETED

72

Haben Sie versucht, einfach mit adb "neu zu starten"?

adb reboot 

Sie können auch komplette Shell-Skripten (z starten Sie Ihren Emulator) über adb laufen:

adb shell <command> 

ich here ein paar adb Befehl auf meiner Seite zusammengefasst, die Ihnen helfen könnten.

+0

meine Frage sorgfältig lesen ... wenn ich ADB Neustart android und Linux Maschine beide neu gestartet, wie sie auf der gleichen Maschine sind. Ich möchte die Android-Maschine aber nicht Linux-Shell neu starten. – Sagar

+0

Ja, ich habe das verstanden, aber mein Beispiel oben zeigt, wie man den Neustart Befehl an die Instanz von Android auf Ihrem Rechner sendet. Ich dachte, die Android-Maschine läuft als VM in einem Emulator, oder meinst du, dass Android nativ läuft? auf welcher Maschine. Beschreiben Sie Ihr Problem genauer. Android läuft auf Arm-Computern, aber nicht auf x86 (nativ), also ist deine Android-Instanz in einem Emulator, oder? – alex

+0

nein es wird nativ ausgeführt. und Android läuft auch nativ auf x86 m/c. Ich habe Android + Linux-Maschine. gerade jetzt in Android gestartet. Ich logge mich über xshell in die Linux-Shell dieses Rechners ein. Ich führe ein Skript durch diese Shell, die mit Android kommunizieren. wenn ich feststelle, dass android gehängt wird, dann möchte ich das system neu starten, aber wenn ich das system neu starte, bootet es schließlich das linux auch neu. Ich will Linux nicht neu starten, weil Skript durch linx Schale läuft. – Sagar

12

adb reboot sollten Sie Ihre Linux-Box nicht neu starten.

Aber in jedem Fall, können Sie den Befehl an ein bestimmten adb Gerät umleiten adb -s <device_id> command verwenden, wo

Geräte-ID aus dem Befehl erhalten werden kann adb devices
Befehl ist in diesem Fall reboot

0

Ich denke, Der einzige Weg, dies zu tun, besteht darin, einen anderen Rechner parallel laufen zu lassen und diesen Rechner zu verwenden, um Befehle an Ihre Android-Box zu senden, ähnlich wie Sie es mit einem Telefon tun würden. Wenn Sie Probleme mit der IP-Änderung haben, können Sie eine IP-Adresse auf Ihrem Router reservieren und sich von der Maschine greifen lassen, anstatt die Router DHCP nach einer zu fragen. Auf diese Weise können Sie das Gerät anpingen und herausfinden, ob es neu gestartet wurde, um das Skript fortzusetzen.