【问题标题】:adb wait-for-devices timeout/nonblocking?adb 等待设备超时/非阻塞?
【发布时间】:2015-01-15 03:05:16
【问题描述】:

调用“adb wait-for-devices”时有没有办法超时?

场景:

adb reboot
adb wait-for-devices (timeout listed here - if possible)
**if times out: echo timed out**
**else**
adb root
adb wait-for-devices

【问题讨论】:

    标签: android timeout adb nonblocking


    【解决方案1】:

    在 Bash 中,

    timeout <time_in_seconds> adb wait-for-any-device
    

    例如:下面的命令等待 40 秒扫描 adb 设备,成功时返回命令的退出码,超时返回 124,命令失败时返回命令的退出码。

    timeout 40 adb wait-for-any-device
    

    【讨论】:

    • 我在终端试了一下:``` timeout 2 adb -s 1234567891234 wait-for-device ```我在等待一个不存在的序列号设备,应该是超时了。但是使用上面的命令我在终端中没有任何输出。
    【解决方案2】:

    这个问题的目的是为了自动化,所以我找到了一个使用 Perl 的警报功能的临时解决方案:

    sub ADB_Wait_Timeout
    {
        eval 
        {
            local $SIG{ALRM} = sub { die "Timeout\n" };
            alarm 60;
            system("adb wait-for-devices");
            alarm 0;
        };
        if ($@) 
        {
            print "Device did not come up\n";
        }
    }
    

    关于如何使用超时进行系统调用也有类似的答案: https://stackoverflow.com/a/2563551/3491654

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 2010-11-11
      • 1970-01-01
      相关资源
      最近更新 更多