Perl脚本存储设备序列号并使用adb安装apk

时间:2012-01-12 22:36:54

标签: android perl adb

我想要做的是捕获设备序列号并将它们存储在数组或列表中。然后我想在我连接到我的系统的各种Android设备上安装我的apk。我正在尝试制作一个可以为我做这个的perl脚本。

这样的事情:

if($ostype eq 'MSWin32') {

  system("title Android");

    $adbcommand_devices = "adb devices";

    $adbcommand_install = "adb -s xxxxxxxx install HelloWorld.apk";
}

  if(`adb -s xxxxxxxx get-state` =~ m/device/i) {
          system($adbcommand_devices);            
          system($adbcommand_install);

         }
 else {
    print "Device is offline\n";
}

序列号应来自当前连接的设备。

1 个答案:

答案 0 :(得分:2)

以下是使用IPC::Run3adb devices命令的示例:

use strict;
use warnings qw(all);

use IPC::Run3;
use Carp qw(croak confess cluck);
use Data::Dumper;

my $ADB_PATH = '/path/to/adb';  # EDIT THIS

my @devices = get_devices();
print Dumper(\@devices);
exit 0;

# subs
sub get_devices {
    my $adb_out;
    run3 [$ADB_PATH, 'devices'], undef, \$adb_out, undef;
    $? and cluck "Warning: non-zero exit status from adb ($?)";

    my @res = $adb_out =~ m/^([[:xdigit:]]+) \s+ device$/xmg;
    return wantarray ? @res : \@res;
}

对于其中很多内容,您也可以使用qx/``。例如,您可以将run3替换为my $adb_out = `$ADB_PATH devices`;(因为您不需要将任何内容传递给它,只需输出,也不需要避免使用shell。)