如何等待ADB推送完成?

时间:2015-06-23 18:24:47

标签: bash adb

某些自动化设置要求将文件加载到Android设备上。当ADB推送完成时,内部存储器不会自动刷新。

我当前的脚本会同时为每个设备循环播放ADB命令,然后通过action.MEDIA_MOUNTED广播睡眠并触发内存扫描:

adb devices | while read line
do
    if [ ! "$line" = "" ] && [ `echo $line | awk '{print $2}'` = "device" ]
    then
        device=`echo $line | awk '{print $1}'`
        echo "$device $@ ..."
        #Additional ADB commands
        #Load files
        adb -s $device push home/test/test-automation-agent/loadondevice/. /sdcard &
    fi
done

#Wait for push to complete
sleep 30

adb devices | while read line
do
    if [ ! "$line" = "" ] && [ `echo $line | awk '{print $2}'` = "device" ]
    then
        device=`echo $line | awk '{print $1}'`
        echo "$device $@ ..."
            #Trigger refresh of internal storage
            adb -s $device shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file://mnt/sdcard 
    fi
done

执行ADB推送所需的时间可能会发生巨大变化。我想用检测ADB推送完成的东西替换睡眠并执行广播。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

删除sleep 30并添加wait,以便等待所有孩子退出。

答案 1 :(得分:0)

$ meteor create semantic
$ cd semantic
$ meteor add semantic:ui-css
$ meteor add iron:router