zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Path Sum
    Binary Tree Level Order Traversal II
    Jump Game
    leedcode 刷题-V2
    (2016 年) githup 博客地址 : https://github.com/JMWY/MyBlog
    算法分类总结
    剑指 Offer 题目汇总索引
    LeedCde 题解目录
    趣味算法总目录
    常用
  • 原文地址:https://www.cnblogs.com/lisa2016/p/11209215.html
Copyright © 2011-2022 走看看