亚行拉动完成

时间:2013-09-17 23:36:41

标签: android python adb

我正在研究一个从设备执行adb pull命令的python脚本。如果我拉大的.apk文件,有没有办法找出完成拉动需要多长时间?

抽样示例:

      ./adb pull /data/app/com.rovio.angrybirdsstarwars.ads.iap-1.apk

这需要一段时间才能完成,即使在睡眠(4)

之后我的下一个命令也开始了

1 个答案:

答案 0 :(得分:2)

如何回合

file_name = "/data/app/com.rovio.angrybirdsstarwars.ads.iap-1.apk"
cmd = "adb shell ls -l %s"%file_name #stat doesnt work i dont think
file_size = subprocess.Popen(cmd,stdout=subprocess.PIPE).communicate()[0].split()[3]
usb2_xfer = 4603904.0 #4496 KB/s  (http://forum.xda-developers.com/showthread.php?t=882608)
print "EST TIME:%0.2f secs"%(file_size/usb2_xfer)

您可能需要调整usb2_xfer ...同时确保您的设备在usb 2.0中运行而不是1.1(或者它会慢得多......请参阅我从下载速度获得的链接)

这假设您通过USB连接到设备...如果您通过网络连接可能会下载一个小的txt文件以获得下载速度....

如果您使用os.system调用该命令,它应该阻塞直到命令完成

print "Start Command!"
os.system("adb pull ...")
print "Command Finished!!"

如果你打电话给Popen

print "start command"
p = subprocess.Popen("adb pull ...",stdout = subprocess.PIPE,stderr=subprocess.PIPE)
stdout,stderr = p.communicate() # you could do p.wait() if you dont care about output
print "Command Finished!"
print stdout
print stderr