python 多设备同时安装app包

python  多设备同时安装app包

上代码

 1 #!/usr/bin/env python 
 2 # -*- encoding: utf-8 -*-
 3 import os 
 4 import time 
 5 from multiprocessing import Pool 
 6 list=[] 
 7 
 8 def getDevicesAll(): 
 9     #获取devices数量和名称 
10     devices = [] 
11     try: 
12         for dName_ in os.popen("adb devices"): 
13             if "	" in dName_: 
14                 if dName_.find("emulator") < 0: 
15                     devices.append(dName_.split("	")[0]) 
16         devices.sort(cmp=None, key=None, reverse=False) 
17         print(devices) 
18     except: 
19         pass 
20     print(u"
设备名称: %s 
总数量:%s台" % (devices, len(devices))) 
21     return devices 
22 
23 def quickinstall(device):
24     packagename="com.ishugui"
25     #卸载原有apk 
26     try:
27 
28         os.system('adb -s ' + device + ' uninstall %s'%packagename)
29         os.system('adb -s ' + device + ' uninstall %s'%packagename)
30         print(device + " 卸载成功
")
31     except: 
32         print(device + " 卸载失败
")
33 
34     try:
35         print('-----list-----',list)
36 
37         for i in list: 
38             os.system('adb -s ' + device + ' install ' + i)
39 
40     except: 
41         print(device + " 安装失败
")
42     print(device + " 安装成功
")
43 
44 def qainstall(devices,):
45     starttime=time.time() 
46     pool = Pool(2) #创建8个任务池
47     result=pool.map(quickinstall,devices)
48     endtime=time.time() 
49     pool.close() 
50     pool.join() 
51     print(endtime-starttime) #打印时间 
52 
53 def get_apk(filename):
54     global  list
55     #filesname = 'F:/download/apk'
56     #获取安装包
57     print(filesname)
58     for parent, dirnames, filnames in os.walk(filesname):
59         for filname in filnames:
60             path = os.path.join(parent, filname)
61             list.append(path)
62     print('-----list-----', list)
63     return  list
64 
65 #包路径
66 filesname = 'F:/download/apk'
67 #获取安装包
68 print(filesname)
69 for parent, dirnames, filnames in os.walk(filesname):
70     for filname in filnames:
71         path = os.path.join(parent, filname)
72         list.append(path)
73 print('-----list-----', list)
74 
75 
76 if __name__ == "__main__":
77 
78     filesname = 'F:/download/apk'
79     list=get_apk(filesname)
80 
81     try:
82         devices = getDevicesAll() 
83     except: 
84         print("获取设备出错") 
85     res = input("输入1开始更新:") 
86 
87     if int(res) == 1: 
88         try:
89             qainstall(devices)
90         except:
91             print("更新失败")
92     #Touch(devices)
原文地址:https://www.cnblogs.com/lisa2016/p/11209215.html