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
bat如何实现多台android设备同时安装多个apk的更多相关文章
- 关于如何惟一地标识一台Android设备的综合性讨论
想必大家在开发Android项目的时候,多多少少会遇到“如何惟一地标识一台Android设备”等类似的问题.不只是以前,即使是现在乃至可以预见的将来,这个问题都将一直存在. 如果大家使用搜索工具搜索的 ...
- 【阿里聚安全·安全周刊】500万台Android设备受感染|YouTube封杀枪支组装视频
本周的七个关键词: 500万Android 设备受感染丨 黑客将矛头指向无线传输协议 丨 YouTube封杀枪支视频 丨 AMD将发布补丁 丨 Gooligan Android 僵尸网络 丨 N ...
- 查看当前android设备已安装的第三方包
查看当前android设备已安装的第三方包 adb shell pm list package -3 2 adb shell "getprop ro.build.version ...
- 制作bat脚本,抓取Android设备logcat
::bat制作抓取Android设备的logcat,并保存以时间命名的txt文件至设备目录 1 @ECHO off adb wait-for-device ECHO 正在连接设备 adb logcat ...
- 如何唯一的标识一台Android设备?
UUID : (Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.由以下几部分的组合:当前日期和时间(U ...
- 同时连接多台Android设备进行Monkey Test
事情多了就会乱,时间久了就会忘. adb -s remount id(devices ID) adb -s shell id monkey -p package name -v count
- Android设备网络压力测试
网络测试的几个维度: 网络的性能 带宽:通过TCP测试来量度 时延:用ping命令量度 数据报丢失:用Iperf UDP测试来量度 Jitter(延时变化):用Iperf UDP测试来量度 信号强度( ...
- Android设备上i-jetty环境的搭建-手机上的web服务器
本文主要跟大家分享如何将一台Android设备打造成一个web服务器使用. 编译i-jetty 1.将源码download下来,http://code.google.com/p/i-jetty/dow ...
- 获取Android设备的唯一识别码|设备号|序号|UUID
如何获取一个能唯一标识每台Android设备的序号? 这个问题有很多答案,但是他们中的大部分只在某些情况下有效. 根据测试: 所有的设备都可以返回一个 TelephonyManager.getDevi ...
随机推荐
- 帮助类-AD域操作
private static void GetAllUsersInAD() { DirectorySearcher searcher = new DirectorySearcher(); search ...
- 【mmall】IDEA插件jrebel
破解方法 http://www.jianshu.com/p/87b11bad3d7f
- 爬虫BS4—淘女郎
1.修改网页头 用独自的py文件getheaders,随机返回header getheaders文件 import random headerstr = """Mozil ...
- G - Intersecting Rectangles Kattis - intersectingrectangles (扫描线)(判断多个矩形相交)
题目链接: G - Intersecting Rectangles Kattis - intersectingrectangles 题目大意:给你n个矩形,每一个矩形给你这个矩形的左下角的坐标和右上角 ...
- #6284. 数列分块入门 8(区间询问等于一个数 cc 的元素,并将这个区间的所有元素改为 c)
题目链接:https://loj.ac/problem/6284 题目大意:中文题目 具体思路:还是和sqrt那个题的思路相同的,标记每一块的值是不是相同的,注意lazy下标的下放. AC代码: #i ...
- Thymeleaf在前台下拉列表获取后台传的值
Thymeleaf在前台下拉列表获取后台传的值 后台添加代码: /** * 新增机构 */ @GetMapping("/add") public String add(ModelM ...
- python基础-----函数/装饰器
函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 函数的优点之一是,可以将代码块与主程 ...
- Debian 为firefox安装flash插件 以及 音频驱动
1. flash下载地址:http://get.adobe.com/cn/flashplayer/ lv@lv:~/Downloads$ tar -zxvf flash_player_npapi_li ...
- ASP.NET Core中使用Unity5
⒈添加相关依赖 Install-Package Unity Install-Package Unity.RegistrationByConvention ⒉扫描项目接口实现类 using System ...
- Redis主从哨兵和集群搭建
主从配置 哨兵配置 集群配置 1.主从: 国王和丞相,国王权力大(读写),丞相权利小(读) 2.哨兵: 国王和王子,国王死了(主服务挂掉),王子继位(从服务变主服务) 3.集群: 国王和国王,一个国王 ...