【问题标题】:Adb install progress baradb 安装进度条
【发布时间】:2015-10-31 16:42:42
【问题描述】:

我是这方面的初学者,所以如果我问任何明显的问题,请注意。我正在尝试使用adb install apk.apkapk 安装到我的设备上,但是 apk 大约有几百 MB 大,并且需要一些时间。我可以在命令窗口中实现某种进度条来显示进度吗?我见过 adb push/pull 的东西。我不确定它是否相同。我在 Windows 8.1 中运行它。我还设置了一个 adb 环境变量。

非常感谢。

【问题讨论】:

    标签: android command adb line


    【解决方案1】:

    有点笨重,但如果您要求 ADB 这样做,它可能会变得冗长:

    $ adb --help
    ...
     $ADB_TRACE
         comma-separated list of debug info to log:
         all,adb,sockets,packets,rwx,usb,sync,sysdeps,transport,jdwp
    

    例如,如果您在调用adb push 之前设置ADB_TRACE=all(例如,通过在一行中运行ADB_TRACE=all adb push path/to/app.apk,或者提前执行export ADB_TRACE=all),那么您会得到这样的结果:

    ...
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:81] readx: fd=3 wanted=72
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:97] readx: fd=3 wanted=72 got=72 535441320000000020fd000000000000 STA2.... ....... [truncated]
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:107] writex: fd=3 len=51 53454e442b0000002f646174612f6c6f SEND+.../data/lo [truncated]
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:107] writex: fd=3 len=65544 4441544100000100504b030400000000 DATA....PK...... [truncated]
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:107] writex: fd=3 len=65544 44415441000001002c7903adab89d6d5 DATA....,y...... [truncated]
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:107] writex: fd=3 len=65544 4441544100000100e570055c0957c1d5 DATA.....p.\.W.. [truncated]
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:107] writex: fd=3 len=65544 4441544100000100f94f47fe441a3fa6 DATA.....OG.D.?. [truncated]
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:107] writex: fd=3 len=65544 44415441000001007bf1fa1b58c33b89 DATA....{...X.;. [truncated]
    adb D 01-02 15:41:36 41828 1867505 adb_io.cpp:107] writex: fd=3 len=65544 4441544100000100c6d8384d98f7b39d DATA......8M.... [truncated]
    ...
    

    它粗略地实时显示了带有时间戳的 64k 块传输。

    【讨论】:

      【解决方案2】:

      如果您没有调用推送/安装操作(例如,Android Studio 正在为您执行此操作),您可以按如下方式查询推送状态(bash 脚本):

      function check_push_progress(){
           local push_to=$1 #path in the device
           local push_from=$2 #path to local file
           local current=0
           local complete=1
           while [ $current -ne $complete ]; do
              current=`adb shell ls -l $push_to | awk '{print $5}'`
              complete=`ls -l $push_from | awk '{print $5}'`
              echo pushed $current bytes, out of $complete bytes, $((100*$current/$complete))%
              sleep 1
          done
      }
      

      【讨论】:

        【解决方案3】:

        嗯,adb install apk.apk 只是一个美化的捷径:

        adb push apk.apk /data/local/tmp
        adb shell pm install /data/local/tmp/apk.apk
        adb shell rm /data/local/tmp/apk.apk
        

        因此,如果您很想看到上传进度条 - 请先 adb push -p 您的 apk,然后手动或使用简单脚本 adb shell pm install

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多