Bagikan melalui


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:

  1. Menggunakan nc untuk melakukan penerusan paket. Untuk informasi selengkapnya, lihat Menggunakan nc untuk melakukan penerusan paket.
  2. 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:

  1. Di Mac Anda, mulai emulator Android.

  2. Di Mac Anda, buka Terminal.

  3. Di Terminal, matikan adb server:

    adb kill-server
    
  4. 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 mendengarkan adb di port 5555 dan mendengarkan koneksi konsol pada port 5554.

  5. 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 berhenti nc melakukan penerusan paket dengan menekan CTRL+C di jendela Terminal.

  6. Di VM Windows Anda, buka Prompt Perintah.

  7. 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:

  1. Di Mac Anda, mulai emulator Android.

  2. Di Mac Anda, buka Terminal.

  3. Di Terminal, matikan adb server:

    adb kill-server
    
  4. 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 mendengarkan adb di port 5555 dan mendengarkan koneksi konsol pada port 5554.

  5. Di VM Windows Anda, buka Prompt Perintah.

  6. 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 dan 127.0.0.1 5555 menunjukkan port bernomor ganjil pada antarmuka loopback.

    Ganti mac-username dengan nama pengguna Mac Anda, yang dapat diperoleh dengan whoami perintah, dan ip-address-of-the-mac dengan alamat IP Mac Anda.

  7. Di Command Prompt, sambungkan ke emulator menggunakan port lokal:

    adb connect localhost:15555
    

    Dalam contoh ini, localhost:15555 menunjukkan port lokal di Windows

    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.