Menyambungkan ke emulator Android di Mac dari dalam komputer virtual Windows
Emulator Android menyediakan kemampuan jaringan serbaguna yang dapat digunakan untuk tujuan yang berbeda, termasuk menyambungkan ke emulator yang berjalan di Mac dari dalam komputer virtual (VM) Windows. Ini berguna saat menjalankan Windows di Paralel di Mac. Dalam skenario ini, Anda harus menggunakan emulator di Mac karena tidak dapat berjalan di Paralel. Untuk informasi tentang menginstal emulator Android di Mac, lihat Penginstalan.
Penting
Alamat 127.0.0.1 pada komputer pengembangan Anda sesuai dengan antarmuka loopback emulator.
Ada dua pendekatan utama untuk menyambungkan ke emulator Android di Mac dari dalam VM Windows:
- Menggunakan
nc
untuk melakukan penerusan paket. Untuk informasi selengkapnya, lihat Menggunakan nc untuk melakukan penerusan paket. - Menggunakan
ssh
penerusan port. Untuk informasi selengkapnya, lihat Menggunakan penerusan port ssh.
Dalam kedua kasus, Android Debug Bridge (ADB) digunakan untuk terhubung ke emulator. ADB adalah alat baris perintah yang dibundel dengan paket Android SDK Platform Tools, yang memungkinkan Anda berkomunikasi dengan perangkat. Perintah ini adb
memfasilitasi berbagai tindakan perangkat, termasuk menyambungkan ke perangkat. Untuk informasi selengkapnya tentang adb
, lihat Android Debug Bridge (adb) di developer.android.com.
Menggunakan nc untuk melakukan penerusan paket
Untuk menyambungkan ke Android Emulator yang berjalan di Mac dari VM Windows, dengan menggunakan penerusan paket, gunakan langkah-langkah berikut:
Di Mac Anda, mulai emulator Android.
Di Mac Anda, buka Terminal.
Di Terminal, matikan
adb
server:adb kill-server
Di Terminal, identifikasi port yang digunakan oleh emulator:
lsof -iTCP -sTCP:LISTEN -P | grep 'emulator\|qemu' emulator6 94105 macuser 20u IPv4 0xa8dacfb1d4a1b51f 0t0 TCP localhost:5555 (LISTEN) emulator6 94105 macuser 21u IPv4 0xa8dacfb1d845a51f 0t0 TCP localhost:5554 (LISTEN)
Emulator menggunakan sepasang port TCP berurutan - port bernomor genap untuk koneksi konsol, dan port bernomor ganjil untuk
adb
koneksi. Dalam output di atas emulator mendengarkanadb
di port 5555 dan mendengarkan koneksi konsol pada port 5554.Di Terminal, gunakan
nc
untuk meneruskan paket TCP masuk yang diterima secara eksternal pada port 5555 (atau port lain) ke port bernomor ganjil pada antarmuka loopback, dan untuk meneruskan paket keluar kembali dengan cara lain:cd /tmp mkfifo backpipe nc -kl 5555 0<backpipe | nc 127.0.0.1 5555 > backpipe
Dalam contoh ini,
127.0.0.1 5555
menunjukkan port bernomor ganjil pada antarmuka loopback.Asalkan perintah terus berjalan di jendela Terminal, paket akan diteruskan seperti yang
nc
diharapkan. Setelah selesai menggunakan emulator, Anda dapat berhentinc
melakukan penerusan paket dengan menekan CTRL+C di jendela Terminal.Di VM Windows Anda, buka Prompt Perintah.
Di Prompt Perintah, sambungkan ke emulator:
adb connect ip-address-of-the-mac:5555
Ganti
ip-address-of-the-mac
dalam contoh ini dengan alamat IP Mac Anda, dan 5555 dengan port yang telah Anda gunakan dari langkah sebelumnya.Catatan
Akses baris perintah ke
adb
dapat diperoleh di Visual Studio melalui item menu Tools > Android > Android Adb Command Prompt... .
Ketika koneksi selesai, Visual Studio akan menampilkan emulator sebagai target debug di bawah Perangkat Lokal Android, yang dapat Anda gunakan untuk menyebarkan aplikasi Anda ke emulator.
Menggunakan penerusan port ssh
Asalkan Remote Login diaktifkan di Mac, Anda dapat menggunakan ssh
penerusan port untuk terhubung ke emulator.
Penting
ssh
penerusan port mengharuskan Anda menginstal klien SSH di VM Windows Anda. Salah satu opsinya adalah menginstal Git untuk Windows. Perintah ssh
kemudian akan tersedia di prompt perintah Git Bash .
Untuk menyambungkan ke Android Emulator yang berjalan di Mac dari komputer virtual Windows, dengan menggunakan ssh
penerusan port, gunakan langkah-langkah berikut:
Di Mac Anda, mulai emulator Android.
Di Mac Anda, buka Terminal.
Di Terminal, matikan
adb
server:adb kill-server
Di Terminal, identifikasi port yang digunakan oleh emulator:
lsof -iTCP -sTCP:LISTEN -P | grep 'emulator\|qemu' emulator6 94105 macuser 20u IPv4 0xa8dacfb1d4a1b51f 0t0 TCP localhost:5555 (LISTEN) emulator6 94105 macuser 21u IPv4 0xa8dacfb1d845a51f 0t0 TCP localhost:5554 (LISTEN)
Emulator menggunakan sepasang port TCP berurutan - port bernomor genap untuk koneksi konsol, dan port bernomor ganjil untuk
adb
koneksi. Dalam output di atas emulator mendengarkanadb
di port 5555 dan mendengarkan koneksi konsol pada port 5554.Di VM Windows Anda, buka Prompt Perintah.
Di Command Prompt, jalankan
ssh
untuk menyiapkan penerusan port dua arah antara port lokal di Windows dan port emulator bernomor ganjil pada antarmuka loopback Mac:ssh -L localhost:15555:127.0.0.1:5555 mac-username@ip-address-of-the-mac
Dalam contoh ini,
localhost:15555
menunjukkan port lokal di Windows dan127.0.0.1 5555
menunjukkan port bernomor ganjil pada antarmuka loopback.Ganti
mac-username
dengan nama pengguna Mac Anda, yang dapat diperoleh denganwhoami
perintah, danip-address-of-the-mac
dengan alamat IP Mac Anda.Di Command Prompt, sambungkan ke emulator menggunakan port lokal:
adb connect localhost:15555
Dalam contoh ini,
localhost:15555
menunjukkan port lokal di WindowsCatatan
Akses baris perintah ke
adb
dapat diperoleh di Visual Studio melalui item menu Tools > Android > Android Adb Command Prompt... .
Ketika koneksi selesai, Visual Studio akan menampilkan emulator sebagai target debug di bawah Perangkat Lokal Android, yang dapat Anda gunakan untuk menyebarkan aplikasi Anda ke emulator.