我正在研究一个从设备执行adb pull命令的python脚本。如果我拉大的.apk文件,有没有办法找出完成拉动需要多长时间?
抽样示例:
./adb pull /data/app/com.rovio.angrybirdsstarwars.ads.iap-1.apk
这需要一段时间才能完成,即使在睡眠(4)
之后我的下一个命令也开始了答案 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