我使用 Ubuntu 14.04 编写了一些脚本,并adb
自动配置了 100 部 Android 智能手机。为了实现这一点,我使用了一个udev
规则来识别 USB 设备是否连接到 pc,如果是这种情况,我会调用我的脚本将一些应用程序安装到设备上。
到目前为止,一切都很好,但也存在一些问题。目前我们正在同时连接 5 台设备,但经常发生在其中一台设备上没有安装一个或多个应用程序的情况。它不遵循模式,它只是随机发生。有时计算机的性能也会在白天下降。
这是我的udev
规则:
ACTION=="add", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}!="1d6b", ATTRS{idVendor}!="203a", ATTRS{idVendor}=="****", ATTRS{idProduct}=="****", RUN+="/usr/local/bin/selectDevices.sh"
/usr/local/bin/ 中的第一个脚本,用于识别应安装应用程序的设备
#!/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
编辑 1:
我已经尝试过,就像 Alex P. 建议的那样,或者在我对他的回答的解释中。将序列传递给 tmp 脚本,tmp 脚本正在调用实际的安装脚本at now
。在安装脚本启动之前,它会休眠 2 秒。但问题依然存在。也许我需要记录安装过程中发生的事情,但目前我不知道该怎么做。
编辑2:
一段时间后,我想我找到了一些东西,但我仍然不知道为什么。我认为当两台设备要同时安装一个应用程序时,adb 会出现问题。我管理它以接收错误消息,例如rm failed for /data/local/tmp/foo.apk, No such file or directory
. 之后,我切换到首先将包复制到设备,然后使用 shell 包管理器安装它们,但仍然没有解决方案。