首页 > 其他 > 详细

脚本 批量安装和卸载apk

时间:2021-06-02 21:26:49      阅读:25      评论:0      收藏:0      [点我收藏+]

思路:

1、前提:已连接设备,查询连接设备,cmd输入命令:adb devices

2、批量获取device name,然后过滤

  ①正则表达式过滤:‘\n(.+?)\t‘

  debug模式下可看到device name是以\n开头、\t结束

  技术分享图片

  ②字符串过滤

3、使用到的adb命令

# 查询已连接设备
adb devices

# 多设备连接时,添加参数-s
adb -s <devices_name>

# 查询是否已安装某个apk
adb -s <devices_name> shell pm list packages | findstr "<package_name>"

# 安装apk
adb -s <devices_name> install <apk路径>

# 卸载apk
adb -s <devices_name> uninstall <package_name>

# 查询包名
adb shell pm list pm list packages -3 # 查询第三方应用
aapt dump badging <apk路径>  # 获取包名

 

4、设备是否已安装apk,已安装则卸载,未安装则安装

后续可优化:1、apk安装路径从网站下载

      2、多进程同步执行命令,可以多设备同时进行

实现代码:

 1 # coding=utf-8
 2 import re
 3 import os
 4 import time
 5 
 6 
 7 def get_devices():
 8     str_init =  
 9     # 获取命令adb devices所有打印内容
10     all_info = os.popen(adb devices).readlines()
11     # 过滤打印设备名称
12     for i in range(len(all_info)):
13         str_init += all_info[i]
14     device = re.findall(\n(.+?)\t, str_init, re.S)
15     return device
16
17 
18 def in_uninstall_apk():
19     result = ‘‘
20     file = r<安装包路径>
21     for i in get_devices():
22         # 查询是否已安装apk
23         package_list = os.popen(adb -s %s shell pm list packages | findstr "<pacakge_name>" % i).read()
24         if len(get_devices()) == 0:
25             result = 无可连接设备
26         # 已安装,则卸载
27         if <pacakge_name> in package_list:
28             cmd = adb -s %s uninstall <pacakge_name> % i
29             os.system(cmd)
30             result = f"设备:{‘、‘.join([str(count) for count in get_devices()])}卸载成功。"
31         else:     # 未安装
32             cmd = adb -s %s install %s % (i, file)
33             os.system(cmd)
34             time.sleep(2)
35             result = f"设备:{‘、‘.join([str(count) for count in get_devices()])},安装apk:{file}成功。"
36     return result
37 
38 
39 print(in_uninstall_apk())

 

脚本 批量安装和卸载apk

原文:https://www.cnblogs.com/spritegirl/p/14842538.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!