Подтвердить что ты не робот

Как я могу script эмулятор genymotion запускать данный avd, безголовый?

Есть ли способ запустить по командной строке данный avd и зарегистрировать его через adb?

Я также предпочел бы, чтобы эмулятор запускался без головы.

Я ищу это, чтобы быстро запускать тесты.

4b9b3361

Ответ 1

Для других, которые ищут запуск без командной строки:

/Applications/Genymotion.app/Contents/MacOS/player --vm-name "xxxx"

Получить список vms:

$ VBoxManage list vms
"Galaxy Nexus - 4.2.2 - API 17 - 720x1280" {56d8e3aa-ecf8-483e-a450-86c8cdcedd35}

Где xxxx может быть либо именем, либо id:

/Applications/Genymotion.app/Contents/MacOS/player --vm-name 56d8e3aa-ecf8-483e-a450-86c8cdcedd35
/Applications/Genymotion.app/Contents/MacOS/player --vm-name "Galaxy Nexus - 4.2.2 - API 17 - 720x1280"

Вы можете убить его с помощью обычного процесса kill:

ps | grep "Genymotion\.app/Contents/MacOS/player" | awk '{print $1}' | xargs kill

Ответ 2

Вот лучшая процедура. Это потребует первого запуска вручную, но после этого вы получите пылающую быструю головоломку в течение нескольких секунд. Следующие скрипты были протестированы на macos x. Им может понадобиться еще одна работа для Linux.

Во-первых, запускайте эмулятор genymotion обычно через приложение genymotion. Затем получите его sha1 из виртуального окна:

VBoxManage list vms

Затем сделайте снимок из командной строки:

#script genymotion-save.sh
VM=6a5d9245-b751-47aa-b38d-989c5f1a9cfb

echo "VM is \"$VM\""
VBoxManage snapshot $VM take snap1 

Затем вы можете обнаружить свой ip, используя этот script (большая часть его сложности исходит от преобразования MAC-адресов):

#script genymotion-detect-ip.sh
VM=6a5d9245-b751-47aa-b38d-989c5f1a9cfb

#find mac of vm
#http://stackoverflow.com/questions/10991771/sed-to-insert-colon-in-a-mac-address
# Update arp table
for i in {1..254}; do ping -c 1 192.168.56.$i 2&>1; done

MAC=`VBoxManage showvminfo "$VM" | grep MAC | grep Host | awk -F ":" '{print $3}' | cut -c 2-13`
#echo "MAC is $MAC"

MAC=`echo $MAC | sed -e 's/\([0-9A-Fa-f]\{2\}\)/\1:/g' -e 's/\(.*\):$/\1/' | tr '[:upper:]' '[:lower:]'`
#echo "MAC is $MAC"

# Find IP: substitute vname-mac-addr with your vm mac address in ':' notation
IP=`arp -a | sed "s/ \(.\):/ 0\1:/" | sed "s/:\(.\):/:0\1:/g"|sed "s/:\(.\):/:0\1:/g"|sed "s/:\(.\)$/:0\1/"|grep $MAC`
#echo "IP is $IP"

IP=`echo $IP | cut -d "(" -f2 | cut -d ")" -f1`
echo $IP

Теперь у вас есть все, что вам нужно, чтобы запустить моментальный снимок vm из командной строки и подключиться к нему через adb (используя root). Вы можете сделать это с помощью этого script:

# script genymotion-start.sh
VM=6a5d9245-b751-47aa-b38d-989c5f1a9cfb

echo "VM is \"$VM\""
VBoxManage snapshot $VM restore snap1 &
VBoxHeadless -s $VM &

IP=`./genymotion-detect-ip.sh`
echo $IP

#adb tcpip 5555
adb connect $IP:5555

#restart adb as root to allow powering it off
#root mode is generally what we want from a headless emulator (to download emma files for instance)
adb root
adb connect $IP:5555

И, наконец, вы также можете использовать script для правильного выключения эмулятора:

#script genymotion-stop.sh 
IP=`./genymotion-detect-ip.sh`

adb root
adb connect $IP:5555
adb shell reboot -p &

Это все еще много скриптов, но оно отлично работает и эффективно управляет эмулятором genymotion.

Пусть надеется, что genymobile может облегчить этот выпуск в будущих выпусках.

Ответ 3

Я работаю на Ubuntu, и я модифицировал ответ Snicolas и загрузил его как Gist: https://gist.github.com/guneysus/410bb0e6b56d6f228555

Основные отличия:

  • Поиск метода IP не работает на Ubuntu. Я пришел с другим обходом
  • Определенные устройства в geny_devices.sh и отправьте этот файл, чтобы легко выбрать VM:

`` `

# script geny_devices.sh

s3_43="e63063e8-a922-4832-8bcf-05362c3a1c9a"
nexus_44="45287ed9-2d5e-49a5-a0f9-82c29e7cc4b3"

# Samsung Galaxy S3 - 4.3 - API 18 - 720x1280" {e63063e8-a922-4832-8bcf-05362c3a1c9a}
# "Google Nexus 7 - 4.4.4 - API 19 - 800x1280" {45287ed9-2d5e-49a5-a0f9-82c29e7cc4b3}

#script geny_snap.sh
source geny_devices.sh
VM=${s3_43}

# Hopefully performance improvement ;) Not really necessary
# for in in {1..254}; 
#     do ping -c 192.168.56.$1 2&>1;
# done

MAC=`VBoxManage showvminfo ${VM} | grep MAC | awk -F ":" '{print $3}' | cut -c 2-13`
# echo "MAC is ${MAC}"

# On linux data returned from arp -a is like 
# ? (192.168.56.101) at 08:00:27:b0:7f:38 [ether] on vboxnet0
# ? (192.168.0.1) at 9e:a9:e4:d5:43:5b [ether] on eth2

# Find IP with 
IP=`arp -a | egrep vboxnet|grep -E -o  "([0-9]{1,3}[\.]){3}[0-9]{1,3}"`
# echo "IP is $IP"

IP=`echo $IP | cut -d "(" -f2 | cut -d ")" -f1`
# echo $IP|xclip
# echo -e "[OK] IP  \t:\t ${IP} 
# IP exported as global variable and to the clipboard."
echo $IP

# script geny_save.sh
source geny_devices.sh
VM=${s3_43}

echo "VM is \"$VM\""
VBoxManage snapshot $VM restore snap1 &

# script geny_start.sh
source geny_devices.sh
VM=${s3_43}

echo "VM is \"$VM\""
VBoxManage snapshot $VM restore snap1 &
VBoxHeadless -s $VM &

IP=`./geny_ip.sh`
echo ">>>>>>" $IP

adb tcpip 5555
adb connect $IP:5555

#restart adb as root to allow powering it off
#root mode is generally what we want from a headless emulator (to download emma files for instance)
adb root
adb connect $IP #:5555

#script geny_stop.sh 
IP=`./geny_ip.sh`

adb root
adb connect $IP:5555
adb shell reboot -p &

`` `

Ответ 4

Благодаря ответу @k s я смог запустить эмулятор движения Geny на Mac, но мне пришлось внести несколько изменений для Mac OS Sierra 10.12.6 и GenyMotion 2.10.0

/Applications/Genymotion.app/Contents/MacOS/player.app/Contents/MacOS/player --vm-name "xxxx"

и убить его

ps | grep "/Applications/Genymotion\.app/Contents/MacOS/player\.app/Contents/MacOS/player" | awk '{print$1}' | xargs kill

Надеюсь, что это поможет кому-то.

Ответ 5

В дистрибутивах GNU/Linux

Легко

 cd genymotion/

В этой папке вам нужно найти файл player

введите описание изображения здесь

Теперь вам нужно имя устройства

введите описание изображения здесь

В своем терминале напишите эту команду, заменив NameDevice на имя вашего устройства

 ./player --vm-name <NameDevice>

введите описание изображения здесь

введите описание изображения здесь

И теперь ваш эмулятор запустил

введите описание изображения здесь

В GNU/Linux вы можете создать доступ в меню

введите описание изображения здесь

введите описание изображения здесь

Удача

Ответ 6

Команда для запуска genymotion из командной строки -

     player --vm-name Nexus_4

Если игрок еще не добавлен в путь, добавьте его в путь, используя следующую команду в ~/.bash_profile

      export PATH=/Applications/Genymotion.app/Contents/MacOS/:$PATH



Когда используется более одного устройства, "adb -s" используется для перенаправления команд на конкретное устройство После запуска эмулятора они будут перечислены в adb-устройствах

Пример:

       adb devices
       List of devices attached 
       192.168.56.101:5555  device


Отправить команду, чтобы щелкнуть по клавише меню на устройстве Android, когда подключено несколько устройств.

      adb -s 192.168.56.101:5555 shell input keyevent KEYCODE_MENU