0

デバイスからadb pullコマンドを実行するpythonスクリプトに取り組んでいます。大きな .apk ファイルをプルする場合、プルが完了するまでにかかる時間を調べる方法はありますか?

プルの例:

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

これは、スリープ後でも次のコマンドが開始される前に、完了するまでに時間がかかりました(4)

4

1 に答える 1

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を調整する必要があるかもしれません...また、デバイスが1.1ではなくusb 2.0で実行されていることを確認してください(または、はるかに遅くなります...ダウンロード速度を取得したリンクを参照してください)

これは、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
于 2013-09-17T23:50:31.327 に答える