Próbuję debugować aplikację na telefonie Motorola Droid , ale mam problemy z połączeniem się z urządzeniem przez USB. Mój serwer programistyczny to 64-bitowa maszyna wirtualna z systemem Windows 7 działająca w Hyper-V , więc nie mogę połączyć się bezpośrednio przez USB w gościu lub z hosta.
Zainstalowałem kilka różnych rozwiązań USB-over-TCP, ale wydaje się, że połączenie ma problemy, ponieważ monitor ADB zgłasza, że „urządzenie devicemonitor nie rozpoczęło monitorowania” wielokrotnie. Czy istnieje sposób połączenia bezpośrednio z klienta na maszynie programistycznej z demonem na urządzeniu za pomocą sieci zamiast połączenia USB lub innych wykonalnych opcji?
adb tcpip 5555
. Odłącz USB, wyświetl adres IP telefonuSettings > About Phone > Status
. Terazadb connect 192.168.x.x
i to wszystko. Bez narzędzi, bez oprogramowania. Po prostu działa.Odpowiedzi:
Proces ręczny
Z urządzenia, jeśli jest zrootowane
Zgodnie z postem na XDA-Developers , możesz włączyć ADB przez Wi-Fi z urządzenia za pomocą poleceń:
Możesz go wyłączyć i przywrócić ADB do słuchania na USB za pomocą
Z komputera, jeśli masz już dostęp USB (nie wymaga rootowania)
Jeszcze łatwiej jest przejść na Wi-Fi, jeśli masz już USB. Z wiersza poleceń na komputerze, do którego podłączone jest urządzenie przez USB, wydaj polecenia
Zastąp
192.168.0.101
adres IP, który jest faktycznie przypisany do twojego urządzenia. Po zakończeniu możesz rozłączyć się z sesją adb tcp, uruchamiając:Adres IP tabletu można znaleźć na dwa sposoby:
Ręczne wykrywanie adresu IP:
Przejdź do ustawień WiFi Androida, kliknij przycisk menu na pasku akcji (pionowa elipsa), naciśnij Zaawansowane i zobacz adres IP u dołu ekranu.
Użyj ADB, aby odkryć IP:
Wykonaj następujące polecenie za pomocą adb:
Informowanie demona ADB o powrocie do słuchania przez USB
Aplikacje do automatyzacji procesu
Istnieje również kilka aplikacji w Google Play, które automatyzują ten proces. Szybkie wyszukiwanie sugeruje adbWireless , WiFi ADB i ADB WiFi . Wszystkie wymagają dostępu do konta root, ale adbWireless wymaga mniejszej liczby uprawnień.
źródło
adb tcipip 5555
iadb connect ...
nie jest konieczneadb tcpip <port>
nadal wymaga alboro.kernel.qemu
właściwość być ustawiony (działa w trybie emulacji),ro.secure
aby być 0 (czyli zakorzenione urządzenie), lubro.debuggable
iservice.adb.root
być ustawiony na 1.adbd
prostu nie otworzyć połączenie TCP / IP, jeśli żadne z powyższych jest spełniony. Zobacz części netmite.com/android/mydroid/system/core/adb/adb.c naadb_main
tematsecure
zmiennej.adbd
na moim nieukartowanym 2.3.7 Android w ogóle nie przechodzi w tryb TCP / IP.Jest to bardzo proste, jeśli Twój telefon jest zrootowany.
Pobierz emulator terminala z Google Play (wiele jest bezpłatnych). Upewnij się, że urządzenie z Androidem jest podłączone do Wi-Fi i uzyskaj adres IP Wi-Fi . Otwórz program terminala i wpisz:
Teraz przejdź do komputera (zakładając, że używasz systemu Windows) i utwórz skrót na pulpicie dla „cmd.exe” (bez cudzysłowów).
Kliknij prawym przyciskiem myszy skrót cmd i wybierz
"Run as Administrator"
Przejdź do swojego
android-sdk-windows\tools
folderuRodzaj:
adb powinien teraz powiedzieć, że masz połączenie.
Uwaga: jeśli jesteś zbyt szybki, aby wydać polecenie połączenia, może się nie powieść. Spróbuj więc co najmniej dwa razy w odstępie pięciu sekund, zanim powiesz, że to nie działa.
źródło
adb tcpip 5555
a następnie druga osoba wykonałaadb connect myIP:5555
na swoim komputerze. Mógł zainstalować aplikację na moim telefonie, ale nie mógł jej zdalnie debugować. Czy można zdalnie debugować? Na moim telefonie było okno dialogowe nawaiting for debugger
zawsze.Podłącz urządzenie przez USB i upewnij się, że działa debugowanie, a następnie uruchom:
Odłącz USB i kontynuuj bezprzewodowe debugowanie.
Gdy skończysz i chcesz wrócić do debugowania USB, uruchom:
Aby znaleźć adres IP urządzenia, przejdź do
Settings > Wi-Fi > Advanced > IP Address
urządzenia lub uruchomadb shell netcfg
.Nie wymaga rootowania. Jednocześnie można debugować tylko jedno urządzenie.
Zobacz ten post XDA .
adb
Komenda znajduje się wplatform-tools
folderze Android SDK.źródło
adb tcpip 5555 && adb connect <DEVICE_IP_ADDRESS>:5555
Załóżmy, że zapisałeś ścieżkę adb do ścieżki środowiska Windows
Aktywuj tryb debugowania w Androidzie
Podłącz do komputera przez USB
Otwórz typ wiersza polecenia:
adb tcpip 5555
Odłącz tablet lub smartfon od komputera
Typ otwartego wiersza polecenia:
adb connect IPADDRESS
(IPADDRESS to adres DHCP / IP tabletu lub smartfona, który można znaleźć przez Wi-Fi -> aktualnie podłączona sieć)Teraz w wierszu polecenia powinieneś zobaczyć wynik: podłączony do xxx.xxx.xxx.xxx:5555
źródło
Od
adb --help
:Nawiasem mówiąc, jest to opcja wiersza polecenia.
Spróbuj podłączyć telefon do Wi-Fi, a następnie uzyskaj jego adres IP z routera. To nie będzie działać w sieci komórkowej.
Port to 5554.
źródło
adb tcpip port
ponieważ domyślnie jest to debugowanie przez USB. Po tym ostatnim możesz się połączyćconnect host:port
i powinno działaćDla użytkowników systemu Windows:
Krok 1:
Musisz włączyć opcje programisty w telefonie z Androidem.
W ten sposób możesz włączyć opcje programistyczne.
• Otwórz Ustawienia> Informacje> Informacje o oprogramowaniu> Więcej.
• Następnie dotknij siedem razy „Numer kompilacji”, aby włączyć opcje programisty.
• Wróć do menu Ustawienia, a teraz zobaczysz tam „Opcje programisty”.
• Stuknij i włącz Debugowanie USB z menu na następnym ekranie.
Krok 2:
Otwórz cmd i wpisz adb.
jeśli okaże się, że polecenie adb nie jest prawidłowym poleceniem, musisz dodać ścieżkę do zmiennej środowiskowej.
• Najpierw przejdź do folderu zainstalowanego SDK
Postępuj zgodnie z tą ścieżką, a ta ścieżka jest tylko przykładem. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \; D: \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;
• Teraz wyszukaj w ustawieniach zaawansowanych systemu Windows
•
Otwórz zmienną środowiskową.
następnie otwórz ścieżkę i wklej następującą ścieżkę, to jest przykład.
Twoja ścieżka SDK jest inna niż moja, użyj swojej. D: \ softwares \ Development \ Andoird \ SDK \ sdk \ platform-tools \;
D: \ softwares \ Development \ Andoird \ SDK \ sdk \ tools;
Krok 3:
Otwórz cmd i wpisz adb. jeśli nadal widzisz, że polecenie adb jest nieprawidłowe, oznacza to, że ścieżka nie została poprawnie ustawiona, wykonaj powyższe kroki.
Teraz możesz podłączyć swój telefon z Androidem do komputera.
Otwórz cmd i wpisz adb urządzenia, a zobaczysz swoje urządzenie. Znajdź swój adres IP telefonu.
Wpisz: - adb tcpip 5555
Uzyskaj adres IP swojego telefonu
Teraz,
Teraz uruchom swój projekt na Androida, a jeśli nie zobaczysz swojego urządzenia, wpisz ponownie adres IP swojego telefonu
Użytkownicy systemów Linux i macOS :
Krok 1: otwórz terminal i zainstaluj adb za pomocą
sudo apt-get install android-tools-adb android-tools-fastboot
Podłącz telefon za pomocą kabla USB do komputera. Wpisz następujące polecenie w terminalu
Za pomocą adb połącz swój adres IP telefonu z systemem Android.
Usuń swój telefon.
źródło
Z komputera na nierootowanym urządzeniu
(Pamiętaj, że można to zrobić również przy użyciu zrootowanego urządzenia, ale możesz użyć powłoki na zrootowanym urządzeniu, które nie wymaga połączenia USB)
Po pierwsze, otwórz wiersz polecenia (CMD). Jeśli korzystasz z Android Studio lub IntelliJ, jest tam konsola, z której możesz korzystać.
Jeśli dodałeś adb do ścieżki, możesz pominąć część cd.
Jeśli to możliwe, otwórz lokalizację SDK, kliknij prawym przyciskiem myszy i naciśnij „uruchom wiersz polecenia tutaj”. Nie wszystkie mają tę opcję, więc musisz także wykonać następujące (/ te) polecenia:
Windows: zmień dysk (jeśli dotyczy)
Uzyskaj dostęp do narzędzi SDK i platformy. Zastąp tę ścieżkę swoją lokalizacją zestawu SDK:
Teraz masz dostęp do mostu debugującego Androida.
Po podłączeniu urządzenia do komputera:
Gdzie
<port>
jest port, z którym chcesz się połączyć (domyślnie jest5555
) i<ip>
adres IP urządzenia, z którym chcesz się połączyć.Uwaga:
5555
jest domyślnym portem i wystarczy wpisać adres IP, aby go połączyć. Jeśli używasz niestandardowego portu, możesz przynajmniej trochę poprawić bezpieczeństwo. Debugowanie USB przez Wi-Fi może być nadużywane, ale tylko wtedy, gdy urządzenie jest podłączone do komputera, który chce nadużyć urządzenia. Korzystanie z portu innego niż domyślny utrudnia przynajmniej połączenie.Jeśli korzystasz z niestandardowego portu, pamiętaj o dodaniu go po adresie IP. Zapisywanie żadnego portu się nie łączy,
5555
a jeśli go nie użyjesz, połączenie się nie powiedzie.Adres IP urządzenia można znaleźć na dwa sposoby:
W zależności od urządzenia dokładne nazwy mogą się różnić. Otwórz ustawienia i przejdź do Informacje o urządzeniu -> Status -> Adres IP
Użyj ADB, aby uzyskać adres IP
Z konsoli wykonaj:
A po zakończeniu połączenia możesz odłączyć urządzenie od komputera, wykonując:
Lub brak adresu IP, aby odłączyć wszystkie urządzenia. Jeśli korzystałeś z niestandardowego portu, musisz określić, z którego portu się rozłączyć . Domyślnie jest tu również 5555.
Aby wyłączyć port (jeśli jest to coś, co chcesz zrobić), wykonaj następujące polecenie z podłączonym urządzeniem:
Lub możesz ponownie uruchomić urządzenie, aby usunąć połączenie tcpip
Z komputera na zrootowanym urządzeniu
Po pierwsze, potrzebujesz dostępu do powłoki. Możesz podłączyć urządzenie za pomocą kabla USB i użyć
adb shell
lub pobrać aplikację z Google Play, FDroid lub innego źródła.Następnie wykonujesz:
Aby podłączyć urządzenie, postępuj tak jak w wersji niezrootowanej
adb connect <ip>:<port>
.A jeśli chcesz wyłączyć port i wrócić do słuchania USB:
Możesz również użyć wtyczki Android Studio, aby zrobić to za Ciebie (nie pamiętam teraz nazwy), a dla zrootowanych użytkowników istnieje również możliwość pobrania aplikacji na Androida w celu skonfigurowania połączenia telefonicznego (prawdopodobnie połączenie adb jest nadal wymagane ).
Niektóre telefony mają ustawienie w opcjach programistycznych (dotyczy to niektórych nierootowanych telefonów, choć prawdopodobnie także telefonów zrootowanych), które umożliwiają przełączanie ADB przez Wi-Fi z samego urządzenia bez rootowania lub połączenia z komputerem, aby go uruchomić. Chociaż jest to mało telefonów
źródło
adb shell ip -f inet addr show wlan0
Czy adres IP i obsługa portów mają być podstawione gdzieś indziej?Musiałem uruchomić zarówno USB, jak i TCPIP dla ADB (nie pytaj), więc wykonałem następujące czynności (korzystając ze wskazówek, które inni napisali od programistów xda)
Używanie
adb shell
:źródło
/sbin/adbd
. To może się różnić w zależności od telefonu. Oczywiście musisz być zrootowany ... Jeśli nie jesteś zrootowany, nie będziesz mógł uzyskać dostępu / sbin.Aby podłączyć tablet za pomocą portu TCP. Upewnij się, że system i urządzenie są podłączone do tej samej sieci.
adb tcpip 5555
adb connect 192.168.1.2
adres IP urządzeniaPołączono za pomocą przekierowania portów Spróbuj wykonać przekierowanie portów,
adb forward tcp:
<PC port>
tcp:<device port>
lubić:
Jeśli pojawi się komunikat o błędzie: nie znaleziono urządzenia podłącz urządzenie USB do systemu, a następnie wykonaj tę samą procedurę.
dla zrootowanego urządzenia
źródło
su
Najpierw napisz w konsoli, aby uzyskać zrootowaną konsolę.Nie wiem, jak podłączyć urządzenie w ogóle bez połączenia USB, ale jeśli uda ci się to podłączyć na innym komputerze, możesz przełączyć adbd w tryb TCP, wydając
z terminala i połącz się z urządzeniem przez Wi-Fi z dowolnego komputera w sieci poprzez:
Być może możliwe jest również przełączenie do trybu TCP z terminala w urządzeniu.
źródło
Najpierw musisz podłączyć urządzenie przez USB
Następnie podłącz urządzenie do WIFI i uzyskaj adres IP. Wciąż łącząc się za pomocą usb, wpisz to w wierszu poleceń lub przez terminal Android Studio
Zobaczysz te wiadomości:
Teraz odłącz kabel USB, a Twój logcat nadal będzie normalny
Gotowy. Cieszyć się
źródło
Jeśli chcesz łatwo podłączyć urządzenie do uruchamiania, debugowania lub wdrażania aplikacji na Androida przez Wi-Fi, możesz użyć opracowanej przeze mnie wtyczki IntelliJ typu open source. Tutaj jest kod i tutaj plugin gotowy do użycia.
Użycie jest dość proste. Tutaj masz gif:
źródło
Jak powiedział Brian:
To działa. Musisz tylko uzyskać dostęp do powłoki Androida i wpisać te polecenia ...
Na rynku jest jeszcze jedno (łatwiejsze) rozwiązanie: adbBezprzewodowe, automatycznie ustawi telefon.
Korzeń jest wymagany! dla obu...
źródło
Dziwne, ale działa to tylko dla mnie, jeśli mam podłączony kabel USB, wtedy mogę odłączyć USB i przejść do niego ze wszystkim innym ADB.
i to samo po powrocie do usb,
będzie działać tylko wtedy, gdy usb jest podłączony.
Nie ma znaczenia, czy wydam
lub
następnie zatrzymaj i uruchom adbd, wciąż potrzebuję kabla USB lub to nie działa.
Więc jeśli mój ADB przez USB nie działał, założę się, że nie byłbym również w stanie włączyć ADB przez WiFi.
źródło
Aby przełączać tryby TCP i USB za pomocą jednego polecenia, możesz dodać to do
/init.rc
:A teraz możesz użyć właściwości,
service.adb.tcp.enable
aby włączyć lub wyłączyć nasłuchiwanie na porcie 5555. Uruchom,netstat
aby sprawdzić, czy nasłuchuje. Jak widać, uruchomi się również, jeśli chcesz zmienićservice.adb.tcp.port
ręcznie.źródło
Funkcja Bash:
źródło
KROK 1.
Upewnij się, że zarówno komputer hosta adb, jak i urządzenie z Androidem są w tej samej sieci Wi-Fi.
KROK 2.
Połącz urządzenie z Androidem z komputerem za pomocą kabla USB. Jak tylko to zrobisz, komputer hosta wykryje twoje urządzenie, a adb zacznie działać w trybie USB na komputerze. Możesz sprawdzić podłączone urządzenia,
adb devices
upewniając się, że adb działa w trybie USB, wykonującadb usb
.KROK 3.
Uruchom ponownie adb w trybie tcpip za pomocą tego polecenia:
KROK 4.
Znajdź adres IP urządzenia z Androidem. Można to zrobić na kilka sposobów:
$ adb shell netcfg
.Teraz, gdy znasz adres IP swojego urządzenia, podłącz do niego hosta adb.
KROK 5.
Odłącz kabel USB i powinieneś być podłączony do urządzenia. Jeśli go nie widzisz,
adb devices
po prostu połącz się ponownie, używając polecenia z poprzedniego kroku:Albo jesteś gotowy, aby przejść teraz, albo będziesz musiał zabić swój serwer adb przez wykonanie
adb kill-server
i jeszcze raz wszystkie kroki.Mam nadzieję, że to pomaga!
Odniesienie:
źródło
Są to kroki, które podążyłem i zadziałały dla mnie,
źródło
Możesz także użyć przekierowania lokalnego portu SSH. Ale nadal wymaga kabla USB. Podłącz telefon za pomocą USB do komputera (hosta) z uruchomionym sshd. Na zdalnym komputerze (gościu) uruchom klienta SSH zdolnego do przekazywania / tunelowania portów. Przykład:
Korzystam z tej konstrukcji, aby podłączyć urządzenie do maszyny wirtualnej. Eltima USB na Ethernet nie był wystarczająco stabilny (przekroczony limit czasu podczas debugowania).
Tunelowanie SSH działa za darmo i jest bardziej niezawodne.
źródło
Inne odpowiedzi są mylące. Znacznie prostsze w użyciu adbWireless:
http://ppareit.github.com/AdbConnect/
Wystarczy zainstalować aplikację na telefonie, aby przełączyć debugowanie przez Wi-Fi, zainstalować wtyczkę Eclipse i gotowe.
źródło
Złożyłem plik wsadowy do automatycznego włączania i łączenia ADB przez TCP z urządzeniem podłączonym przez USB. Dzięki temu nie musisz ręcznie wpisywać adresu IP.
źródło
Oto rozszerzenie odpowiedzi Briana za pomocą Bluetooth:
W systemie Linux korzystaj z Blueman, aby współdzielić Internet z komputerem swoim urządzeniem przez Bluetooth:
Użyj sieci Bluetooth do poleceń ADB:
Po zakończeniu, aby powrócić do trybu USB:
Uwaga: Bluetooth 3.0 i 4.0 mogą zwiększać prędkość do 24 Mbit / s .
źródło
Kroki :
su
- Aby przejść do superużytkownika.setprop service.adb.tcp.port 5555
- Aby określić Port TCP - 5555 jest tutaj numerem portustop adbd
- Aby zatrzymać usługę adbd.start adbd
- Aby uruchomić usługę ADBD.działa to doskonale z
ssh
moim komputerem z systemem WindowsPróbuję to zrobić przy rozruchu na moim telefonie komórkowym Cyanogen lub uruchomić to za pomocą Plink. Z plink nie mogę uruchomić powłoki z su po prawej ... polecenie sudo lub su nie działa. Podczas uruchamiania nie wiem, jak to działa! Mój program powłoki działa z ssh z
su -c "sh /storage/sdcard1/start_adb.sh"
ostatnimi 3 poleceniami (bez su -)Dzięki
źródło
Jedna dodatkowa uwaga (nauczyłem się na własnej skórze): Nie powinieneś mieć jednocześnie aktywnego połączenia VPN swojej firmy ...
źródło
Musisz zrobić następujące rzeczy:
źródło
Istnieją dwa sposoby połączenia urządzenia z Androidem z ADB przez TCP?
Pierwszy sposób
Wykonaj następujące kroki
WYJŚCIE powyższej komendy
Przy pomocy powyższej komendy znajdziesz adres IP podłączonego urządzenia
Powyższe polecenie zrestartuje ten port TCP: 5555
Drugi sposób
Możesz użyć wtyczki Android Studio
Android device with ADB
Android WiFi ADB - wtyczka IntelliJ / Android Studio
Sprawdź ten artykuł, aby uzyskać więcej informacji
Połącz urządzenie z Androidem i Wi-Fi w Android Studio
źródło
Mam ten sam problem, ale prosty hack
adb reverse tcp:<PORT> tcp:<PORT>
dla mnie zadziałał . Pozwala systemowi akceptować żądania TCP.Dziękuję za przeczytanie
źródło
Użyj aplikacji adbwireless, aby włączyć telefon, a następnie użyj adb connect z komputera z systemem Windows, aby z nim porozmawiać. Aplikacja adbwireless w telefonie mówi, jak się z nią połączyć, podając adres IP i wszystko.
O wiele mniej zabawną alternatywą jest połączenie przez USB, poinstruowanie telefonu, aby używał protokołu TCPIP przez adb tcpip 5555, a następnie odłączyć USB, a następnie użyć połączenia adb. Jest to o wiele trudniejsze, ponieważ w ten sposób musisz samodzielnie ustalić adres IP telefonu (adbwireless informuje o adresie IP), musisz połączyć się przez USB i musisz uruchomić adb tcpip (adbwireless też się tym zajmuje).
Więc: zainstaluj adbwireless na swoim telefonie. Użyj tego. Jest to możliwe, robię to rutynowo w systemie Linux i Windows.
źródło
W moim systemie wyglądało to tak:
Na moim urządzeniu z Androidem w mojej powłoce Linux prosty „ifconfig” nie podał mi adresu IP. Musiałem wpisać:
ifconfig eth0
-lub-
netcfg
aby uzyskać mój adres IP. (Wiedziałem, że eth0 został skonfigurowany, ponieważ widziałem go w moim dmesg.) Następnie wykonałem:
setprop service.adb.tcp.port -1
przestań adbd
zacznij adbd
Następnie na moim polu Win7 (tym z uruchomionym Eclipse 3.7.1). Otworzyłem wiersz polecenia do
\ android-sdk \ platform-tools>
bez uruchamiania jako administrator. Potem zrobiłem
adb connect 12.345.678.90
Nigdy nie stawiam portu. Gdybym zrobił
adb tcpip 5555
powiedział, że nie może znaleźć urządzenia, więc nic nie pojawiło się na mojej liście „urządzeń adb”. To znaczy, działa to tylko wtedy, gdy NIE wykonam powyższego polecenia tcpip.
Mogę zrobić „powłokę adb” i zadzierać z moim urządzeniem z Androidem. Ale moje urządzenie z Androidem nie pojawia się teraz w mojej zakładce Run-> Run Configurations-> Target. Z drugiej strony, jeśli ustawię opcję Zakładka celu na automatyczną. Następnie, gdy uruchamiam aplikację za pomocą polecenia Uruchom-> Uruchom, działa ona na moim urządzeniu z Androidem, nawet jeśli moje urządzenie z Androidem nie jest nawet wymienione jako jeden z moich celów.
źródło
Sprawiłem, że to działało. Nie użyłem żadnego kabla USB.
Uruchom. To ustawi IP i port; Następnie w dos
Połączony.
źródło