Я новичок в форуме, и я надеюсь, что поставил свой вопрос в нужном месте.android - Проблемы с установкой приложений на 100-х устройствах с использованием Ubuntu и ADB
Я написал несколько сценариев, используя Ubuntu 14.04 и Android Debug Bridge для автоматической настройки 100-дюймовых Android-смартфонов. Для этого я использовал правило udev, чтобы определить, подключено ли USB-устройство к компьютеру, и если в этом случае я вызываю свои сценарии для установки некоторых приложений на устройства.
Пока что так хорошо, но есть некоторые проблемы. В настоящее время мы одновременно подключаем 5 устройств, но часто случается так, что на одном из устройств одно другое приложение не устанавливается. Это не соответствует шаблону, это просто случается случайным образом. Иногда также производительность компьютера уменьшается в течение дня.
Я был бы очень признателен за вашу помощь. Надеюсь, что описание понятное и, пожалуйста, простите меня за мой плохой англис.
Вот мои правила Udev в /etc/udev/rules.d
ACTION=="add", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}!="1d6b", ATTRS{idVendor}!="203a", ATTRS{idVendor}=="****", ATTRS{idProduct}=="****", RUN+="/usr/local/bin/selectDevices.sh"
Первый скрипт в/USR/местные/бен/для идентификации устройств на ведьму должны быть установлены в приложениях
#!/bin/bash
sleep 2
Pid=/home/android/Schreibtisch/PID
for DEVICE in `adb devices | tail -n +2 | grep device | awk '{print $1}'`;
do
if [ ! -f $Pid/$DEVICE.pid ];
then
touch $Pid/$DEVICE.pid
sh /usr/local/bin/touchDevices.sh $DEVICE
fi
done
и последний сценарий для установки приложений
#!/bin/bash
cd /home/android/Desktop/Apps
for APK in $(ls *.apk);
do
adb -s $1 install $APK
done
Edit 1: Я пробовал, как Алекс П. предложил это или в моей интерпретации его ответа. Передайте серийный номер сценарию tmp, а сценарий tmp вызывает фактический сценарий установки с at now
. Перед запуском скрипта установки он засыпает 2 секунды. Но проблемы все еще существуют. Maybee Мне нужно регистрировать то, что происходит во время установки, но на данный момент я понятия не имею, как это сделать.
Редактировать 2: Через некоторое время я думаю, что нашел что-то, но я до сих пор не знаю, почему. Я думаю, что у adb возникают проблемы, когда два устройства хотят установить одно приложение одновременно. Я управлял им, чтобы получить сообщение об ошибке, например rm failed for /data/local/tmp/foo.apk, No such file or directory
. После этого я переключаюсь, чтобы сначала скопировать Пакет на устройства, а затем установить их с помощью диспетчера пакетов оболочки, но все равно никакого решения.
Большое спасибо за ответ, но у меня есть некоторые вопросы. –
Где бы вы предложили поместить команду ожидания перед отправкой команд adb? В правиле udev или только в первой строке скрипта? Как бы вы использовали 'at now' с правилом udev? что-то вроде этого? 'RUN + =" на -f /pathto/script.sh $ attr {serial} теперь "'. Проблема в том, что он не примет параметр, если я сделаю это таким образом. Или мне нужно вызвать скрипт, который будет работать с 'at now'? –
добавлено больше указателей и некоторого кода ответа –