python 多设备同时安装app包
python 多设备同时安装app包
上代码
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
import os
import time
from multiprocessing import Pool
list=[] def getDevicesAll():
#获取devices数量和名称
devices = []
try:
for dName_ in os.popen("adb devices"):
if "\t" in dName_:
if dName_.find("emulator") < 0:
devices.append(dName_.split("\t")[0])
devices.sort(cmp=None, key=None, reverse=False)
print(devices)
except:
pass
print(u"\n设备名称: %s \n总数量:%s台" % (devices, len(devices)))
return devices def quickinstall(device):
packagename="com.ishugui"
#卸载原有apk
try: os.system('adb -s ' + device + ' uninstall %s'%packagename)
os.system('adb -s ' + device + ' uninstall %s'%packagename)
print(device + " 卸载成功\n")
except:
print(device + " 卸载失败\n") try:
print('-----list-----',list) for i in list:
os.system('adb -s ' + device + ' install ' + i) except:
print(device + " 安装失败\n")
print(device + " 安装成功\n") def qainstall(devices,):
starttime=time.time()
pool = Pool(2) #创建8个任务池
result=pool.map(quickinstall,devices)
endtime=time.time()
pool.close()
pool.join()
print(endtime-starttime) #打印时间 def get_apk(filename):
global list
#filesname = 'F:/download/apk'
#获取安装包
print(filesname)
for parent, dirnames, filnames in os.walk(filesname):
for filname in filnames:
path = os.path.join(parent, filname)
list.append(path)
print('-----list-----', list)
return list #包路径
filesname = 'F:/download/apk'
#获取安装包
print(filesname)
for parent, dirnames, filnames in os.walk(filesname):
for filname in filnames:
path = os.path.join(parent, filname)
list.append(path)
print('-----list-----', list) if __name__ == "__main__": filesname = 'F:/download/apk'
list=get_apk(filesname) try:
devices = getDevicesAll()
except:
print("获取设备出错")
res = input("输入1开始更新:") if int(res) == 1:
try:
qainstall(devices)
except:
print("更新失败")
#Touch(devices)
python 多设备同时安装app包的更多相关文章
- 插入光盘,创建挂载点,挂载设备,安装rpm包,升级rpm包,卸载rpm包,查询rpm包是否安装,查询rpm包信息、安装位置,查询系统文件名属于哪个安装包
插入光盘: 创建挂载点: 创建挂载点. 挂载设备:或者mount /dev/sr0 /mnt/cdrom 安装rpm包: [root@localhost Packages]# rpm -ivh mys ...
- 在linux中自动向设备中安装apk包
环境:华为手机 linux centos64 为了锻炼自己,我把脚本文件和APK文件放到了不同的路径下. 需求:将虚拟机中的100个apk包安装到手机中. import os,time os.chdi ...
- 对于python setup.py install安装的包如何卸载
easy_install 安装 卸载命令 easy_install -m package-name setup.py安装 帮助你纪录安装细节方便你卸载 python setup.py install ...
- Python 在 Windows 下安装第三方包,报 Python 未注册的问题解决
保存一些代码为 reg.py,运行之即可. #/usr/bin/env python # -*- coding: utf-8 -*- import sys from _winreg import * ...
- Python中删除easy_install安装的包
网上查了一大圈,终于在官网上找到了.记一下,备忘...
- python源码安装的包的卸载
python setup.py install安装的包如何卸载 在使用源码安装的过程中,记录安装文件细节,如: python setup.py install --record log 这时所有的安装 ...
- ios模拟器安装测试包方法
1. 使用ios-sim ios-sim是一个可以用命令空着ios模拟器的工具.利用这个命令,我们可以启动模拟器.安装app.启动app.查询ios sdk,它可以使我们像自动化测试一样打开xcode ...
- 在Mac OS X 通过抓包、“第三方下载工具”加速下载、安装APP或系统
#!/bin/bash ######################################################################################## ...
- Appium+Python自动化 3 -获取 app 包名和 activity
方法一: ①手机通过USB连接电脑 ②打开手机上被测app ③在电脑上 dos命令窗口,输入命令 adb shell dumpsys window w | findstr \/ | findstr n ...
随机推荐
- 有关JWT(Json Web Token)的那些事
用户认证是计算机安全领域一个永恒的热点话题,然而你会发现,开发者很少讨论有关Json Web Token的话题,其实使用Json Web Token集成到API身份验证机制中是容易,本文给大家普及基础 ...
- HTML5: 目录
ylbtech-HTML5: 目录 1.返回顶部 1. http://www.runoob.com/html/html5-intro.html 2. http://www.w3school.com.c ...
- 76、python学习第二篇
生成随机数的测试数据 ''' Created on 2017年4月8日 @author: weizhen #to create data for testing ''' import random f ...
- 31. Git与Github
Github介绍 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub. GitHub于2008年4月10日正式上线,除了Git代码仓库 ...
- apache2.2.25+tomcat7.0.47集群方案
因为公司项目在线人数的增加,随着现在硬件成本越来越低,大多数的生产环境内存大多都已经达到 16G,尤其最新的阿里云,客户的机器都是配置超高的java主机,但是Java的运行环境,内存使用有限 ,这样就 ...
- Sql Server 表结构相关
1.库表列信息 --取所有库 SELECT Name FROM Master..SysDatabases ORDER BY Name --查询所有表 select name from 库名..syso ...
- 在python中创建列表的最佳和/或最快方法
在python中,据我所知,至少有3到4种方法来创建和初始化给定大小的列表: 简单循环append: my_list = [] for i in range(50): my_list.append(0 ...
- Alibaba-技术专区-开源项目之TransmittableThreadLocal
1.简介 TransmittableThreadLocal 是Alibaba开源的.用于解决 “在使用线程池等会缓存线程的组件情况下传递ThreadLocal” 问题的 InheritableThre ...
- android中的文件存储
Context类中提供的IO方法: FileOutputSream openFileOutput(String name, int mode):打开应用程序中的/data/data/<应用程序的 ...
- RocketMQ事务性消息
mq事务介绍 mq事务消息流程 生产者发送消息到mq,消息状态为:SEND_OK.此消息是消费者不可见(消费者无法消费此条消息) 执行本地任务:成功则返回COMMIT_MESSAGE,此时消费者可消费 ...