2013-08-06 33 views
25

mamy android + m/c linuxa, zalogujemy się do powłoki linuksowej i uruchomimy maszynę w androidowym GUI. teraz mamy skrypt, który działa na tym samym komputerze przez powłokę Linuksa. W takim przypadku, gdy skrypt się zawiesza, musimy ponownie uruchomić komputer z Androidem. ale spowoduje to również ponowne uruchomienie maszyny linuxowej. ponieważ są na tej samej maszynie. więc potrzebuję sposobu na ponowne uruchomienie Androida, aby wyjść ze stanu zawieszenia, a kontrola nad skryptem działającym przez powłokę linuksową.Ponownie uruchom urządzenie z Androidem

więc czy jest jakieś polecenie adb lub linux, które działa dla mnie?

+1

** ** restart restart adb oboje? – EvZ

+0

Tak, ponieważ oba są na tej samej maszynie. – Sagar

+1

Co to jest "m/c"? Proszę [edytuj] swoje pytanie i wyjaśnij, a następnie oznacz ten komentarz jako przestarzały. – unforgettableid

Odpowiedz

27

można ponownie uruchomić urządzenie, wysyłając następujące nadanie:

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

72

Czy próbowałeś po prostu "zrestartować" za pomocą adb?

adb reboot 

Ponadto można uruchomić kompletne skrypty powłoki (na przykład ponowne uruchomienie emulatora) poprzez adb:

adb shell <command> 

I podsumował kilka komendę adb na mojej stronie here że może pomóc.

+0

uważnie przeczytaj moje pytanie ... kiedy zrobię adb, zrestartuj system Android i maszynę linuksową, oba zostaną zrestartowane, ponieważ są na tej samej maszynie. chcę zrestartować komputer z Androidem, ale nie powłoka linux. – Sagar

+0

Tak, rozumiem to, ale mój przykład powyżej pokazuje, jak wysłać polecenie restartu do instancji Androida na twoim komputerze. Myślałem, że urządzenie z Androidem działa jako vm w emulatorze, czy masz na myśli, że Android działa natywnie? na jakiej maszynie. proszę opisz swój problem bardziej szczegółowo. Android działa na urządzeniach ramienia, ale nie na x86 (natywnie), więc Twoja instancja Androida jest w emulatorze, prawda? – alex

+0

nie jest uruchamiany natywnie. i Android działa również na x86 m/c. mam maszynę Android + Linux. teraz uruchamiany w systemie Android. loguję się przez xshell do tej powłoki Linuksa maszyn. uruchamiam skrypt za pośrednictwem tej powłoki, komunikuję się z Androidem. kiedy wykryję, że Android jest zawieszony, chcę zrestartować system, ale kiedy zrestartuję system, w końcu zrestartuję też Linuksa. Nie chcę restartować Linuksa, ponieważ skrypt działa przez powłokę linx. – Sagar

12

adb reboot nie powinien ponownie uruchamiać twojego Linuxa.

Ale w każdym przypadku można przekierować polecenia do określonego urządzenia adb wykorzystaniem adb -s <device_id> command, gdzie

Device ID można uzyskać z komendy adb devices
polecenia w tym przypadku jest reboot

0

myślę jedynym sposobem, aby to zrobić, jest równoległe uruchamianie innej maszyny i używanie tego komputera do wydawania poleceń do androida, podobnie jak w przypadku telefonu. Jeśli masz problemy ze zmianą adresu IP, możesz zarezerwować ip na routerze i poprosić komputer o pobranie go zamiast zadawania routerom DHCP jednego. W ten sposób możesz wysłać polecenie ping do komputera i dowiedzieć się, czy zostało ono ponownie uruchomione, aby kontynuować skrypt.

Powiązane problemy