Bu sayfada, AAOS Emülatör'ün Web Hizmeti olarak nasıl çalıştırılacağı ve bir web tarayıcısı kullanarak o yere kullanıcıların uzaktan erişebilmesini sağlar. Bu sayede uçtan uca Google Cloud aracılığıyla minimum uygulanabilir referans Compute Engine Bununla birlikte, bu hizmeti dilediğiniz herkese açık veya özel bulut platformunda kullanabilirsiniz.
Amaç
Bu merkezi yapılandırma ve kurulum, AAOS Emülatör'ü tüm şirket için erişilebilir kılar, tedarikçiler ve evden çalışan geliştiriciler. Bu, yönetim ve yeni sürüme geçiş işlemlerini daha verimli hale getirir Böylece AAOS Emülatörü yeni sürümlere geçirebilir ve yerel makineleri kurup yönetmek için gereken zamandan tasarruf edebilirsiniz. kullanıcılara göre değişiyor. Bu çözüm, donanım kaynaklarının kullanımını optimize eder ve düşük maliyetli uygulama geliştirme ortamı sağlar. Örneğin, şu amaçlar için:
- Kullanıcı araştırması, kullanıcı deneyimi incelemesi, müşteri desteği ve eğitim.
- Potansiyel müşterilere ve satış kanallarına yönelik demolar.
- Uygulamaları (günlük OEM HMI derlemeleri dahil) geniş ölçekte test edin, doğrulayın ve hatta hata ayıklayın. Dikkatlice test banklarının uygulama geliştirmek için kullandığı bir emülatör görevi görür.
- OEM müşteri çağrı merkezi aracılarının tek tip ve kolayca erişilebilen bir HU kullanıcı arayüzü vardır.
AAOS Emülatörü kullanmanın sayısız avantajı vardır:
- Özelleştirilmiş ve bulut tabanlı bir AAOS Emülatörü oluşturmak için kurulum komut dosyası kullanın (bulut emülatörü).
- Sanal makine örnekleri için özelleştirilmiş bir AAOS Cloud Emulator görüntüsü derleyin:
- Bulut tabanlı bir emülatörün kurulumu için hazır.
- Hizmeti oluşturan kullanıcının AAOS AVD'yi başlatmak için kullanabileceği, herkese açık AAOS AVD görüntüleri komut verebilirsiniz. Örneğin, iş ortaklarının uyarlayıp uygulayabilmesi için örnek olarak herkese açık OEM AVD resimlerini kullanabilirsiniz.
Mimari
Cloud emülatör örneğinin mimarisi aşağıda gösterilmektedir. İlk minimum uygulanabilir hizmet, kendi OEM AVD resimlerinizi ekleyerek çalışır.
Şekil 1. Cloud AVD mimarisi
Temel emülatör yapı taşları:
burada bulabilirsiniz.Öğe | Amaç |
---|---|
Android Emülatör | Emülatör örneği AVD görüntüleri barındırır |
Japon balığı-webrtc köprüsü | Tepki uygulaması ile AAOS Emülatörü arasında iletişimi sağlayan Linux uygulaması |
android-emulator-webrtc | Emülatör kullanıcı arayüzünü web'de görüntülemek için React uygulaması emin olun. React ayrıca kullanıcı giriş etkinliklerini yakalar ve sunucuya geri gönderir. |
Android Emulator Container Komut Dosyaları | Yukarıdaki yazılım modülleri için Docker görüntülerini ve container'larını yönetmek ve oluşturmak üzere kullanılan Python komut dosyaları. |
Emülatörün erişim izinlerini yönetmek için jetonlar oluşturur. | |
Sunucuyu çevir | İstemci ile sunucu arasında WebRTC doğrudan bağlantısı oluşturur. Sunucuyu çevir yalnızca Emulator hizmeti güvenlik duvarları veya proxy'ler arkasında çalışıyorsa gereklidir. |
Envoy | Aşağıdakileri yapmak için bir proxy hizmeti:
|
Bulut sanal makinesinde emülatör ayarlama
GCP projesi oluşturmak için:
- Google Cloud Console'a gidin ve Proje seçin.
- Google Cloud projenizde faturalandırmanın etkinleştirildiğini onaylamak için şuraya bakın: Proje için faturalandırmayı etkinleştirme, devre dışı bırakma veya değiştirme ziyaret edin.
- API'yi etkinleştirin.
GCE'de Linux sanal makinesi oluşturma
1. İç içe sanallaştırmayı etkinleştir
Varsayılan olarak proje, klasör veya kuruluş düzeyinde iç içe yerleştirilmiş sanallaştırmaya izin verilir. Kuruluşunuzdaki çalışanlardan biri iç içe sanallaştırmayı devre dışı bıraktı, etkinleştirmek için herhangi bir şey yapmanız gerekmez.
- gcloud komut satırı aracını kullanma
Nested Sanallaştırma'ya izin verildiğini onaylamak için:
gcloud beta resource-manager org-policies describe \ constraints/compute.disableNestedVirtualization --effective --project=[PROJECT_ID]
2. Ubuntu-1804-lts önyüklenebilir bir disk oluşturun
- Git Cloud Console.
- GCP projesini seçin.
- Gezinme menüsüne gidip Compute Engine > Diskler >
Disk Oluştur'u tıklayın.
- Disk adı girin. Örneğin,
ubuntu1804lts
- Bölge ve Alt Bölge seçin. İç içe sanallaştırmanın desteklenmesi için Bölge ve seçtiğiniz alt bölge, Haswell (veya üzeri) işlemcileri destekler. Daha fazla bilgi edinmek için bkz. Bölgeler ve Alt Bölgeler.
ubuntu-1804-bionic-v20210211
adlı dosyanın kaynak resmini seçin- Uygun bir disk boyutu ayarlayın (100 GB veya daha büyük olması önerilir).
- Disk adı girin. Örneğin,
Şekil 2. Ubuntu önyüklenebilir diski oluşturun.
3. VMX'i etkinleştirmek için özel lisans anahtarına sahip özel bir görüntü oluşturun
- Cloud Console'a gidin.
- Bir Cloud Shell açın ve aşağıdaki komutu kullanın:
gcloud compute images create [IMAGE NAME] --source-disk-zone [DISK ZONE] --source-disk [DISK NAME] \ --licenses "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
.- Resim adı girin. Örneğin,
aaos-emulator-image
- Disk Alt Bölgesi'ni, diski oluşturduğunuz alt bölgeye ayarlayın.
- Disk adını, diski oluşturmak için kullandığınız ada ayarlayın.
Örnek:
gcloud compute images create aaos-emulator-image --source-disk-zone us-central1-a \ --source-disk ubuntu1804lts \ --licenses \ "https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
- Resim adı girin. Örneğin,
Ayrıntılar için bkz. İç İçe Yerleştirilmiş Sanallaştırma Sanal Makine Örneği.
4. Özelleştirilmiş görüntüyü kullanarak sanal makine örneği oluşturma
- Cloud Console'a gidin.
- GCP projesini seçin.
- Gezinme Menüsü'ne gidin > Compute Engine > Sanal makine örneği
Şekil 3. Sanal makine örneği oluşturun.
- Bir örnek adı girin. Örneğin,
aaosemulator
- İstediğiniz makine ailesini ve türünü seçin. Makinede dört vCPU ve 16 GB (veya daha fazla) bellek.
- CPU platformunu Intel Cascade Lake (veya üzeri) olacak şekilde seçin.
- Önyükleme diskini önceki adımda oluşturulan görüntüyle değiştirin.
- Güvenlik Duvarını şunlar için etkinleştir:
- HTTP trafiğine izin ver
- HTTPS trafiğine izin ver
5. Güvenlik duvarını 80 ve 443 numaralı bağlantı noktalarını açacak şekilde yapılandırın
- Cloud Console'a gidin.
- GCP projesini seçin.
- Gezinme Menüsü'ne gidin > Compute Engine > Sanal makine örneği > Güvenlik duvarı kuralı ayarlayın.
Sanal makinede gerekli yazılımı yükleyin
- Python 3 ve Python3-env'yi yükleyin:
sudo apt update sudo apt install python3 sudo apt-get install python3-venv
. - Android SDK'sını yükleyin
ve ADB'yi bulmanız gerekir.
sudo apt install android-sdk
Docker ve Docker-compose'u yüklemek için bkz. Docker ve Docker-compose. Koşabileceğinizden emin olun bunları kök olmayan kullanıcı olarak ayarlayın.
- CPU'nun donanım sanallaştırmayı desteklediğini onaylamak için (komutun,
sıfır olmayan bir sayı):
egrep -c '(vmx|svm)' /proc/cpuinfo
. - Kernel Sanal Makinesi'ni (KVM) kurun. KVM'yi yüklemek için şu komutu çalıştırın:
sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils
. - KVM'nin çalıştığını doğrulamak için:
sudo apt install cpu-checker kvm-ok
. Çıkış şu şekilde olmalıdır:INFO: /dev/kvm exists KVM acceleration can be used
- Node.js'yi ve Düğüm Paket Yöneticisi'ni (NPM) yüklemek için:
sudo apt install nodejs npm
.
Barındırılan kapsayıcıları başlatma
- Yüklemeyi doğrulamak için barındırılan Android Emulator container'larını herkesten çalıştırın
depodur. Kapsayıcılarla ilgili ayrıntıları
burada bulabilirsiniz.
Artık bu container'ları derlemeden çalıştırabilirsiniz. Örnek:
docker run \ -e ADBKEY="$(cat ~/.android/adbkey)" \ --device /dev/kvm \ --publish 8554:8554/tcp \ --publish 5555:5555/tcp \ us-docker.pkg.dev/android-emulator-268719/images/30-google-x64:30.1.2
.Bu komut, kapsayıcıyı aşağı çeker (yerel olarak kullanılabilir değilse) ve başlatır.
- Kapsayıcı başlatıldığında, ADB'yi aynı şekilde yapılandırarak cihaza bağlanın
Bu, yerel bir ana makinede ortalama görüntüleme süresi (AVD) oluşturmaktır. Örnek:
adb connect localhost:5555 adb devices
. Çıkış şu şekilde olmalıdır:List of devices attached localhost:5555 device
AAOS Emülatör hizmetini ayarlama
Emulator hizmetini ayarlamak için:
- Android Emulator Docker container komut dosyasını yükleyin:
git clone https://github.com/google/android-emulator-container-scripts.git
.cd android-emulator-container-script source ./configure.sh
- Böylece sanal bir ortam etkinleştirilir ve yürütülebilir emu-docker kullanılabilir hale gelir.
Kullanımı hakkında ayrıntılı bilgi edinmek için uygulamayı başlatın:
emu-docker -h
. - Docker container'ları oluşturmak için lisans sözleşmelerini kabul edin.
- AAOS Emülatör Docker container'ını oluşturun.
- 7154743 sürümünden sonraki bir emülatör derlemesini indirin. Örnek:
sdk-repo-linux-emulator-7154743.zip
. - AAOS emülatörü sistem görüntüsünü indirin. Örneğin,
sdk-repo-linux-system-images-7115454.zip
:emu-docker create <emulator-zip> <system-image-zip>
- Web kapsayıcılarını oluşturun ve uzaktan erişim için kullanıcı adı ile şifre belirleyin.
./create_web_container.sh -p user1,passwd1
- AAOS Emülatör Web Hizmeti'ni başlatın:
docker-compose -f js/docker/docker-compose-build.yaml -f js/docker/development.yaml up
.
AAOS Emülatör Web Hizmeti'ni başarıyla başlattınız. Erişim için şunları kullanın: kullanarak:
https://<VM_External__IP>
Sorun giderme
Sanal makine harici IP'sinde bağlantı hatası oluşursa sanal makinenin izin verecek şekilde ayarlandığından emin olun hem HTTPS trafiği için de geçerlidir. Bunu doğrulamak için bkz. Temel Apache web sunucusu çalıştırma.
Dönüş sunucusunu ayarlama
Her zaman kendi sıra sunucunuzu kullanabilirsiniz. Aşağıda bir Google Cloud sanal makinesi örneği verilmiştir kullanır.
Not: Sıra sunucusunun bir Google Cloud sanal makine örneğinde çalışması için şunları yaptığınızdan emin olun: Sanal makine güvenlik duvarı kuralını 3478 ve 3479 numaralı TCP ve UDP bağlantı noktalarında trafiğe izin verecek şekilde yapılandırın.
- Coturn sunucusunu kurun:
sudo apt install coturn systemctl stop coturn echo "TURNSERVER_ENABLED=1"|sudo tee -a /etc/default/coturn
. - Aşağıdaki satırları ekleyerek
/etc/turnserver.conf
dosyasını değiştirin:lt-cred-mech #set your realm name realm=test #coturn username and password user=test:test123 # external-ip=<VM-Public-IP>/<VM-Private-IP> external-ip=34.193.52.134/10.128.0.2 systemctl start coturn
- Docker Compose YAML dosyasını TURN yapılandırmasını içerecek şekilde değiştirin:
cd android-emulator-container-script nano js/docker/docker-compose-build.yaml
. - Emülatör bölümünde aşağıdaki iki ortam satırını ekleyin:
shm_size: 128M expose: - "8554" + environment: + - TURN=printf $SNIPPET
. - AAOS Emülatörü hizmetini, dönüş yapılandırmasıyla yeniden başlatın.
Aşağıdaki dönüş sunucusu IP'sini, kullanıcı adını ve kimlik bilgilerini kendi kimlik bilgilerinizle değiştirmeyi unutmayın:
export SNIPPET="{\"iceServers\":[{\"urls\":\"turn:35.193.52.134:3478\",\"username\":\"test\",\"credential\":\"test123\"}]}" docker-compose -f js/docker/docker-compose-build.yaml up
.