• bat如何实现多台android设备同时安装多个apk


    背景:在做预置资源(安装apk)时,有多台android设备需要做相同的资源(如:10台,安装10个apk)。一台一台去预置的话(当然也可以每人一台去预置),耗时较长有重复性。

    问题:如何去实现多台同时操作呢?(这个问题让我想到了多进程和多线程)

    思路:(前提:环境为window系统)。可以使用批处理来实现,假设有10台设备,分别开启10个cmd窗口进行安装。

    解决:初始方案-->最终方案

    No1  :将安装命令写到bat文件中,复制为10个bat文件。显然这是最原始的方法,也不方便。因为每次执行一个bat文件时,都要修改文件中的deviceId,多一个apk还得加一行代码,而且每个bat文件都要点击一遍(假设有20个,30个呢?想想这得修改点击多少次啊)

    @echo off
    adb -s deviceId install -r xxx1.apk
    adb -s deviceId install -r xxx2.apk
    adb -s deviceId install -r xxx3.apk
    adb -s deviceId install -r xxx4.apk
    pause

    No2 :对以上的方法进行修改,可以使用start cmd 去执行。这样一来,只需要点击一次就可以了。但是还得修改deviceId,多一台设备还要加一行start cmd。

    @echo off
    start  cmd /k "for /r "%cd%apkPackage" %%a in (*.apk) do ( adb -s deviceId install -r %%a)"
    start  cmd /k "for /r "%cd%apkPackage" %%a in (*.apk) do ( adb -s deviceId install -r %%a)"
    start  cmd /k "for /r "%cd%apkPackage" %%a in (*.apk) do ( adb -s deviceId install -r %%a)"
    start  cmd /k "for /r "%cd%apkPackage" %%a in (*.apk) do ( adb -s deviceId install -r %%a)" 
    pause

     No3 :No1和No2都不能满足需求。最终版本(还有其他异常情况,暂未处理)

    @echo off&setlocal enabledelayedexpansion
    title Install-MultipleDevices
    color 0a
    rem +++++++++++++++++++++++++++++++++++++++++++
    rem   Install-MultipleDevices.bat
    rem          By zhzw @2017/7/7
    rem   
    rem            Version: 1.2
    rem +++++++++++++++++++++++++++++++++++++++++++
    
    rem 两个adb devices 为了减少deamon start successfully语句写入deviceId.txt中
    adb devices
    adb devices >deviceId.txt
    rem 处理0台设备的情况
    set count=0
    type nul>temp.txt
    rem tonkes与delims的位置不能改变,否则会出现显示混乱
    for /f "skip=1 tokens=1 delims=    " %%i in (deviceId.txt) do (
        echo %%i >>temp.txt
        set /a count+=1
    )
    echo 总共!count!台设备
    for /f %%i in (temp.txt) do (
        start "Device:%%i" cmd /k "@echo off& for /r "%cd%apkPackage" %%a in (*.apk) do ( echo APK=%%~nxa &adb -s %%i install -r %%a)"    
    )
    del temp.txt
    pause 

    Update

    这是多台设备文件push的脚本,暂且贴在这吧

    @echo off
    setlocal enabledelayedexpansion
    
    rem .........................
    rem MutilPushFile.bat
    rem                    by zzw 
    rem ..........................
    
    @rem 判断设备数量
    for /f %%i in ('adb devices ^| find /c "device"') do (
        set a=%%i
        if !a! LEQ 1 ( echo "NO DEVICE CONNECTED" & echo,& goto end ) else ( set /a b=!a!-1 & echo Total !b! devices )
    )
    
    echo,
    echo start push file to devices ...
    echo,
    
    @rem push 文件到设备
    for /f %%i in ('adb devices ^|findstr device$') do (
        adb -s %%i push getspec.sh /data/local/tmp 1>nul 2>nul && echo push %%i success || echo push %%i ***fail***
    )
    :end
    echo,
    pause
  • 相关阅读:
    证明最大公约数Stein算法(高精度算法)
    链表常用内容和易犯错误
    斐波那契数列——各种公式证明
    用矩阵和待定系数法求数列的分析(复杂度log(n))
    盒模型(外边距)
    盒子模型(内边距)
    盒子模型(边框)
    jupyterhub
    1分钟k线图能反映什么?(转)
    python的self
  • 原文地址:https://www.cnblogs.com/zeo-to-one/p/7134497.html
Copyright © 2020-2023  润新知