python tk/ttk制作 安卓群控助手,多台设备多任务多线程执行
```
仅供学习,禁止商用,转载请注明出处。
```
**更新记录**:
20190926 | 重大更新,将页面重构,代码重构,交互更加方便,任务模快完成,整个程序可以正常运行,并稳定运行。
20190826 | 初版成型,页面布局已经完成,但任务执行模块未实现
# 简介
第一次使用python的tkinter库,一个python简单的GUI编程库
通过ADB命令去控制手机,同时使用多线程,对手机进行批量操作,如,多台设备同时安装软件,生成通讯录测试数据等。
由于公司测试组的工作需要,简单开发的安卓手机助手,有助于提升工作效率。
## 工具界面
![简洁模式](https://img-blog.csdnimg.cn/20190926144821994.png)
![展开功能后](https://img-blog.csdnimg.cn/20190926145008708.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZJUDUxODYwMA==,size_16,color_FFFFFF,t_70)
1. **手机列表**:主要是获取已连接当前电脑的安卓设备;
2. **工具列表**:加载已写好的单个工具,比如软件安装、软件卸载等,可以自由扩展多个用于对设备进行控制的小工具;
3. **工具配置**:针对小工具编写的配置页面,方便进行工具参数的设定,比如生成通讯录数据的条数,安装软件的软件路径,软件卸载的包名。
4. **执行顺序**:小工具执行的执行顺序,比如先进行软件安装,再进行软件卸载,最后进行通讯录生成。
## 代码结构
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190926145306878.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1ZJUDUxODYwMA==,size_16,color_FFFFFF,t_70)
- <font color=red>PM2</font>
* <font color=red>mods</font>
+ <font color=red>platform-tools</font>
+ _ init _.py
+ bin_mod.py
+ get_vcardfile.py
+ getphone_mod.py
+ logger_mod.py
+ thread_mod.py
* <font color=red>page</font>
+ png
+ _ init _ .py
+ mainpg.py
+ mainpg_fun.py
* <font color=red>toolpg</font>
+ _ init _.py
+ _1_软件安装_.py
+ _2_软件卸载_.py
+ _3_通讯录_.py
+ ..................
* <font color=red>tools</font>
+ _1_tool.py
+ _2_tool.py
+ _3_tool.py
+ ............
* run.py
## 代码内容
__mods__:存放一些公共方法,比如获取已连接的手机列表,获取本地adb工具,直接cmd命令的方法目录
__platform-tools__:为了能使工具在其他windows上可用,我在这里添加了一个自有的adb工具包,直接调用即可,即使本地电脑上没有装adb环境。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190826150456424.png)
__bin_mod.py__:具体的公共方法文件,含有一系列自定义的方法
```python
import subprocess
import os
import re
class bin_mod:
work_name = "PMTool"
tempath = os.path.abspath('').rpartition(work_name)
work_path = tempath[0] + tempath[1]
def adb(self):
'''内置adb工具路径'''
adb = self.work_path + r'\mods\platform-tools\adb.exe '
return adb
def run_cmd(self, command):# 执行cmd命令
'''执行CMD命令
以列表形式返回执行内容'''
output = subprocess.Popen(command, stdout=subprocess.PIPE, encoding='utf-8')
return output.stdout.read().split("\n")
# 实时输出
def sh_cmd(self, command):
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, encoding='utf-8')
lines = []
for line in iter(p.stdout.readline, b''):
print(">>>", line)
lines.append(line)
return lines
def package(self, apks=1):# 获取安装包的包名
'''通过apk文件,获取对应的包名
参数说明:
<apks> 默认
返回包名组'''
aapt = self.work_path + r'\mods\platform-tools\aapt.exe'
packagelist = []
if type(apks) == str:
aapt = self.work_path + r'\mods\platform-tools\aapt.exe'
cmd = (aapt + ' dump badging ' + apks)
packagelist.append(re.split('[:=\' ]+', self.run_cmd(cmd)[0])[2])
return packagelist
else:
apks = self.otherapk()
for apk in apks:
cmd = (aapt + ' dump badging ' + apk)
packagelist.append(re.split('[:=\' ]+', self.run_cmd(cmd)[0])[2])
return packagelist
# 转换路径‘/,\’
def convert_path(slef, path: str) -> str:
return path.replace(r'\/'.replace(os.sep, ''), os.sep)
```
__get_vcardfile.py__:通讯录生成模块,可以生成对应数量的通讯录条数,便于导入到手机端生成数据,通讯录工具模块所调用的文件
```python
# -*- coding: utf-8 -*-
"""
Created on Tue Jul 2 08:40:20 2019
@author: REXLEE
"""
import random
import quopri
import logging
from .bin_mod import bin_mod
work_path = bin_mod.work_path # 获取工作目录
# 生成中文名(百家姓任选一,名字在常用选2个)
def gen_name():
first_names = ['赵', '钱', '孙', '李', '周', '吴', '郑', '王', '冯', '陈', '褚', '卫', '蒋', '沈', '韩', '杨', '朱', '秦', '尤', '许',
'何', '吕', '施', '张', '孔', '曹', '严', '华', '金', '魏', '陶', '姜', '戚', '谢', '邹', '喻', '柏', '水', '窦', '章',
'云', '苏', '潘', '葛', '奚', '范', '彭', '郎', '鲁', '韦', '昌', '马', '苗', '凤', '花', '方', '俞', '任', '袁', '柳',
'酆', '鲍', '史', '唐', '费', '廉', '岑', '薛', '雷', '贺', '倪', '汤', '滕', '殷', '罗', '毕', '郝', '邬', '安', '常',
'乐', '于', '时', '傅', '皮', '卞', '齐', '康', '伍', '余', '元', '卜', '顾', '孟', '平', '黄', '和', '穆', '萧', '尹',
'姚', '邵', '堪', '汪', '祁', '毛', '禹', '狄', '米', '贝', '明', '臧', '计', '伏', '成', '戴', '谈', '宋', '茅', '庞',
'熊', '纪', '舒', '屈', '项', '祝', '董', '梁']
last_names = ['的', '一', '是', '了', '我', '不', '人', '在', '他', '有', '这', '个', '上', '们', '来', '到', '时', '大', '地', '为',
'子', '中', '你', '说', '生', '国', '年', '着', '就', '那', '和', '要', '她', '出', '也', '得', '里', '后', '自', '以',
'会', '家', '可', '下', '而', '过', '天', '去', '能', '对', '小', '多', '然', '于', '心', '学', '么', '之', '都', '好',
'看', '起', '发', '当', '没', '成', '只', '如', '事', '把', '还', '用', '第', '样', '道', '想', '作', '种', '开', '美',
'总', '从', '无', '情', '己', '面', '最', '女', '但', '现', '前', '些', '所', '同', '日', '手', '又', '行', '意', '动',
'方', '期', '它', '头', '经', '长', '儿', '回', '位', '分', '爱', '老', '因', '很', '给', '名', '法', '间', '斯', '知',
'世', '什', '两', '次', '使', '身', '者', '被', '高', '已', '亲', '其', '进', '此', '话', '常', '与', '活', '正', '感',
'见', '明', '问', '力', '理', '尔', '点', '文', '几', '定', '本', '公', '特', '做', '外', '孩', '相', '西', '果', '走',
'将', '月', '十', '实', '向', '声', '车', '全', '信', '重', '三', '机', '工', '物', '气', '每', '并', '别', '真', '打',
'太', '新', '比', '才', '便', '夫', '再', '书', '部', '水', '像', '眼', '等', '体', '却', '加', '电', '主', '界', '门',
'利', '海', '受', '听', '表', '德', '少', '克', '代', '员', '许', '稜', '先', '口', '由', '死', '安', '写', '性', '马',
没有合适的资源?快使用搜索试试~ 我知道了~
基于adb可用功能的Android群控助手.zip
共833个文件
py:336个
css:87个
b:83个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 101 浏览量
2024-12-05
16:43:58
上传
评论
收藏 11.46MB ZIP 举报
温馨提示
基于adb可用功能的Android群控助手python tk/ttk制作安卓群控助手,多台设备多任务多线程执行仅供学习,禁止商用,转载请注明出处。记录20190926 | 重大更新,将页面重构,代码重构,交互更加方便,任务模式快速完成,整个程序可以正常运行,并稳定运行。 20190826 | 初版成型,页面布局已完成,但任务执行模块未实现简介第一次使用python的tkinter库,一个python简单的GUI编程库通过ADB命令去控制手机,同时使用多线程,对手机进行批量操作,如,多台设备同时安装软件,生成通讯录测试数据等。由于公司测试组的工作需要,简单开发的Android手机助手,有助于提升工作效率。工具界面 手机列表主要是获取已连接当前电脑的安卓设备工具列表加载已写好的单个工具,比如软件安装、软件卸载等,可以自由扩展多个用于对设备进行控制的小工具工具配置针对小工具编写的配置页面,方便进行工具参数的设置,比如生成通讯录数据的条数,安装软件的软件路径,软件卸载的包名。执行顺序小工具执行的执行顺序,比如先进行软件安装,再进行软件卸载,最后进行通讯
资源推荐
资源详情
资源评论
收起资源包目录
基于adb可用功能的Android群控助手.zip (833个子文件)
adb_profile_chrome 407B
adb_profile_chrome_startup 4KB
atrace_data 18KB
atrace_data_raw 18KB
atrace_data_stripped 18KB
atrace_extracted_tgids 17KB
atrace_extracted_threads 111B
atrace_fixed_tgids 19KB
atrace_missing_tgids 19KB
atrace_procfs_dump 23KB
AUTHORS 292B
dataurl-base64-singlequotes.out.b 83KB
dataurl-base64-doublequotes.out.b 83KB
dataurl-base64-noquotes.out.b 83KB
dataurl-base64-twourls.out.b 4KB
dataurl-base64-eof.out.b 4KB
dataurl-realdata-doublequotes.out.b 3KB
dataurl-realdata-singlequotes.out.b 3KB
dataurl-realdata-noquotes.out.b 3KB
dataurl-realdata-yuiapp.out.b 2KB
dataurl-base64-linebreakindata.out.b 2KB
dataurl-nonbase64-singlequotes.out.b 1KB
dataurl-nonbase64-noquotes.out.b 1KB
dataurl-nonbase64-doublequotes.out.b 1KB
color.out.b 719B
atgroup_10.out.b 450B
atgroup_09.out.b 447B
atgroup_11.out.b 446B
atgroup_08.out.b 445B
atgroup_07.out.b 442B
atgroup_05.out.b 436B
atgroup_06.out.b 436B
dataurl-dbquote-font.out.b 358B
dataurl-singlequote-font.out.b 356B
dataurl-noquote-multiline-font.out.b 354B
atgroup_04.out.b 308B
opacity-filter.out.b 293B
bug2527991.out.b 199B
atgroup_02.out.b 181B
color-simple.out.b 180B
preserve-case.out.b 171B
atgroup_03.out.b 168B
special-comments.out.b 159B
atgroup_01.out.b 147B
bug2527974.out.b 141B
media-empty-class.out.b 141B
comment_01.out.b 129B
media-multi.out.b 121B
font-face.out.b 109B
box-model-hack.out.b 100B
preserve-strings.out.b 95B
zeros.out.b 89B
pseudo-first.out.b 88B
concat-charset.out.b 85B
dollar-header.out.b 79B
bug2528034.out.b 75B
media-test.out.b 68B
preserve-new-line.out.b 65B
charset-media.out.b 62B
webkit-transform.out.b 59B
background-position.out.b 56B
string-in-comment.out.b 56B
border-none.out.b 50B
first_02.out.b 47B
decimals.out.b 45B
star-underscore-hacks.out.b 44B
ie5mac.out.b 31B
atgroup_00.out.b 29B
comment.out.b 27B
comment_00.out.b 26B
pseudo.out.b 25B
first_01.out.b 25B
first_00.out.b 23B
url_09.out.b 22B
url_06.out.b 21B
bug2527998.out.b 20B
url_05.out.b 15B
url_00.out.b 14B
url_04.out.b 13B
url_03.out.b 13B
url_08.out.b 13B
url_01.out.b 12B
url_07.out.b 12B
url_02.out.b 11B
escape_05.out.b 10B
escape_04.out.b 9B
escape_03.out.b 6B
escape_06.out.b 5B
escape_02.out.b 4B
escape_01.out.b 3B
comment_03.out.b 3B
comment_02.out.b 3B
comment_04.out.b 3B
escape_00.out.b 3B
run.bat 23B
BENCHMARKS 8KB
BENCHMARKS 2KB
rcssmin.c 29KB
rjsmin.c 17KB
jsmin.c 7KB
共 833 条
- 1
- 2
- 3
- 4
- 5
- 6
- 9
资源评论
徐浪老师
- 粉丝: 8552
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- html5新年快乐主题带动画网页设计模板
- 美食点餐系统-JAVA-基于微信美食点餐系统小程序的设计与实现(毕业论文)
- 实时RGB-D多人检测与跟踪系统:适用于移动机器人和头戴摄像头的深度感知方法
- 纵向泵浦固态激光器吸收损耗模型及其对性能的影响
- MATLAB面板 BP的交通标志系统.zip
- 医学图像分析中基于弱监督推断个性化心脏模型的4D心腔表面网格生成技术
- Python网络编程与数据处理任务指南 - 实现基于Socket通信的任务并确保唯一性
- 交通标志照片测试素材集
- MATLAB【面板】 GUI的水果识别.zip
- MATLAB【面板】 ORL的人脸考勤系统.zip
- MATLAB【面板】 GUI漂浮物垃圾分类检测.zip
- MATLAB【面板】 SVM的车牌识别.zip
- 【被动 LQR主动悬架模型】 采用LQR控制的主动悬架模型,选取车身加速度、悬架动挠度等参数构造线性二次型最优控制目标函数 输入为B级随机路面激励,输出为车身垂向加速度、俯仰角加速度、
- 探究回文串的特性及其在计算机科学与多领域中的应用价值
- MATLAB【面板】车标识别.zip
- MATLAB【面板】车道线检测.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功