gpt4 book ai didi

android - 带进度条的 adb 推/拉

转载 作者:IT老高 更新时间:2023-10-28 12:39:28 35 4
gpt4 key购买 nike

如果您将大文件推送/拉到设备上,这真的很烦人,现在无法知道它有多远。是否可以运行 adb push 或 adb pull 并使用“bar”实用程序获取进度条?

这里的主要问题是我认为 adb 需要两个文件名,如果输入文件可以被 stdin 替换,您可以通过 'bar' 实用程序管道并获得一个进度条。到目前为止,我还没有成功,但我并不是真正的 shell 大师,这就是我在这里问的原因:)

请注意,我在 Linux 上使用 bash。

最佳答案

最新的 adb 好像有进度支持了。

Android Debug Bridge version 1.0.32
device commands:
adb push [-p] <local> <remote>
- copy file/dir to device
('-p' to display the transfer progress)

但是,上面的答案也适用于没有进度选项的“adb install”。我修改了第一个答案的脚本以这种方式工作:

在 PATH 的某处创建“adb-install.sh”并运行“adb-install.sh”而不是“adb install -f”

#!/bin/bash
# adb install with progressbar displayed
# usage: <adb-install.sh> <file.apk>
# original code from: http://stackoverflow.com/questions/6595374/adb-push-pull-with-progress-bar

function usage()
{
echo "$0 <apk to install>"
exit 1
}

function progressbar()
{
bar="================================================================================"
barlength=${#bar}
n=$(($1*barlength/100))
printf "\r[%-${barlength}s] %d%%" "${bar:0:n}" "$1"
# echo -ne "\b$1"
}

export -f progressbar

[[ $# < 1 ]] && usage

SRC=$1

[ ! -f $SRC ] && { \
echo "source file not found"; \
exit 2; \
}

which adb >/dev/null 2>&1 || { \
echo "adb doesn't exist in your path"; \
exit 3; \
}

SIZE=$(ls -l $SRC | awk '{print $5}')
export ADB_TRACE=all

adb install -r $SRC 2>&1 \
| sed -n '/DATA/p' \
| awk -v T=$SIZE 'BEGIN{FS="[=:]"}{t+=$7;system("progressbar " sprintf("%d\n", t/T*100))}'

export ADB_TRACE=

echo

echo 'press any key'
read n

关于android - 带进度条的 adb 推/拉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6595374/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com