Saya menyadari pertanyaan ini benar-benar tua, tetapi saya menyelesaikan masalah dengan sedikit berbeda, dan saya butuh beberapa saat untuk menemukan solusi yang sepele ini.
Saya biasanya menggunakan PC Windows7 atau laptop (tergantung di mana saya bekerja) sebagai front-end saya karena saya suka GUI, namun saya lebih suka melakukan semua edit / kompilasi / debug saya pada server Ubuntu tanpa kepala karena semua kekuatan baris perintah yang diberikannya. Tujuan saya adalah membuat setiap sistem windows menjadi thin-client sebanyak mungkin tanpa layanan tambahan (seperti sshd) atau lubang firewall.
Jadi inilah senario tersebut:
- System-A: Sistem Windows7 dengan emulator android berjalan
- System-B: Server Ubuntu dengan SDK diinstal
Masalah seperti yang dijelaskan sebelumnya adalah emulator di System-A mengikat ke localhost, bukan antarmuka ethernet eksternal, sehingga adb di System-B tidak dapat mengakses emulator di System-A. Yang perlu Anda lakukan hanyalah mengatur penerusan port jarak jauh di PuTTY untuk koneksi SSH Anda ke System-B. Triknya adalah dengan memeriksa tombol radio "Remote" ketika Anda membuat dua terowongan sehingga arah terowongan dibalik (tunneling dari server tempat Anda masuk ke klien tempat Anda masuk).
Terakhir, hubungkan dengan adb ke "localhost" di System-B setelah membuat koneksi SSH:
System-B$ adb connect localhost
connected to localhost:5555
System-B$ adb devices
List of devices attached
localhost:5555 device
Sekarang Anda dapat mengunduh gambar / debug seperti biasa, dan itu adalah masalah yang sepele untuk beralih ke sistem Windows yang berbeda jika Anda ingin mengeluarkan laptop Anda dan minum kopi.
Selain itu, dengan juga tunneling port 5037 dengan cara yang sama Anda sebenarnya dapat meneruskan koneksi server adb Anda sehingga Anda dapat menghubungkan perangkat android nyata melalui USB pada System-A, dan mendownload gambar dari System-B. Agar ini berfungsi, Anda perlu memastikan bahwa server adb berjalan di System-A, dan tidak berjalan di System-B sebelum memulai sesi SSH Anda:
Pertama, mulai server adb di System-A (command prompt)
C:\> adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
C:\> adb devices
List of devices attached
3435F6E6035B00EC device
Selanjutnya, matikan server adb di System-B
System-B$ adb kill-server
Terakhir, mulai ulang sesi ssh Anda ke System-B dan verifikasi
System-B$ adb devices
List of devices attached
3435F6E6035B00EC device