Python操作adb命令脚本
一、脚本代码(有错误,抓紧改进中)
import os
import datetime date1=datetime.datetime.now().strftime('%Y%m%d')
date2=datetime.datetime.now().strftime('%H%M%S') adb_dic = {
'': 'adb devices',
'': 'adb shell pm list packages',
'': 'adb shell pm list packages -3',
'': 'adb shell pm list packages -s',
'': r'adb logcat -c && adb logcat >D:\log\%s\\log_%s.txt'%(date1,date2),
'': r'adb logcat -v time >D:\log\%s\\log_%s.txt'%(date1,date2),
'': 'adb kill-server',
} def adb_cmd(k):
adb = adb_dic[k]
os.system(adb) def adb_run():
while True:
print("""1.获取连接设备 2.查看应用列表 3.查看第三方应用列表 4.查看系统应用列表 5.抓日志 6.time格式日志
7.停止日志""")
choice = input('请输入序号选择您需要的功能:').strip()
if choice not in adb_dic: continue # 如果输入的不在里面,返回循环
adb_cmd(choice) # 加括号就可执行 def run():
while True:
print("""
1.adb命令
2.其他1 """)
choice = input('请选择:').strip()
if choice == '':
adb_run()
else:
print('输入的指令有误')
if __name__ == '__main__': #
run() # 程序启动
二、adb logcat 命令详解
#显示全部日志
adb logcat #筛选日志
adb logcat -s [TAG] [TAG] [TAG] [TAG]... #筛选TAG是Wallet和QPayAdapter的日志
adb logcat | grep [TAG] #筛选以Wallet开头的TAG日志
adb logcat [TAG]:S #过滤掉TAG是Wallet的日志 #保存日志到文件
adb logcat > ~/Desktop/log.txt
adb logcat -v time > ./a.log #日志输出到文件,-v表示输出格式
adb logcat -v time | tee ./a.log #日志输出到文件和屏幕 -d 将日志显示在控制台后退出
-c 清理已存在的日志
-f <filename> 将日志输出到文件
-v <format>设置日志输入格式控制输出字段,默认的是brief格式
brief — 显示优先级/标记和原始进程的PID (默认格式)
process — 仅显示进程PID
tag — 仅显示优先级/标记
thread — 仅显示进程:线程和优先级/标记
raw — 显示原始的日志信息,没有其他的元数据字段
time — 显示日期,调用时间,优先级/标记,PID
long —显示所有的元数据字段并且用空行分隔消息内容
三、python中的subprocess.Popen()使用详解
https://www.cnblogs.com/lgj8/p/12132829.html
Python操作adb命令脚本的更多相关文章
- pyadb关于python操作adb的资料
		
3.最后adb命令由于是android的原生操作命令,支持实现的功能非常多.这里举几个pyapp里实现的功能例子:获取,修改手机当前使用的输入法(adb shell ime list),获取当前手机界 ...
 - python操作adb代码
		
adb命令的练习 #!/usr/bin/env python # encoding: utf-8 import os import re nameplt=re.compile("packag ...
 - [adb 学习篇] python将adb命令集合到一个工具上
		
https://testerhome.com/topics/6938 qzhi的更全面,不过意思是一样的,另外补充一个开源的https://github.com/264768502/adb_wrapp ...
 - python操作redis命令
		
Python操作redis from redis import StrictRedis, ConnectionPoolredis_url="redis://:xxxx@112.27.10.1 ...
 - python调用adb命令进行手机操作
		
Python中执行cmd命令可以用到os和subprocess两个模块. 区别在于os是阻塞式的,subprocess是非阻塞式的,所以一般我们使用subprocess是比较适合的. 接下来我先举一个 ...
 - python操作excel实用脚本
		
import xlrd data = xlrd.open_workbook('/home/ppe/workspace/pythonwp/tianranqi_org.xls') table = data ...
 - appium+python自动化-adb shell模拟点击事件(input tap)
		
前言 appium有时候定位一个元素很难定位到,或者说明明定位到这个元素了,却无法点击,这个时候该怎么办呢? 求助大神是没用的,点击不了就是点击不了,appium不是万能的,这个时候应该转换思路,换其 ...
 - python操作MySQL数据库报错问题解决
		
编写好Python操作数据库的脚本后,运行报错如下: 报错1:“AttributeError: 'NoneType' object has no attribute 'encoding'” 解决办法: ...
 - python借助ADB工具实现自动化操作手机
		
核心工具——ADB工具 adb工具用于连接Android手机和PC端,我们借助adb工具,就可以通过命令行对手机进行相应的操作 注意:若要通过adb操作手机,需打开手机的开发者模式,并打开USB调试功 ...
 
随机推荐
- yum只下载不安装
			
1 修改/etc/yum.conf的keepcache=1 [root@136 packages]# vi /etc/yum.conf keepcache=1 2 安装yum-utils包 [root ...
 - vue全家桶(2.4)
			
3.6.重定向和别名 3.6.1.重定向 路由重定向通俗的说就是从一个路由重新定位跳转到另一个路由,例如:访问的 "/a" 重定向到"/b" 重定向也是通过配置 ...
 - LeetCode64. 最小路径和
			
这题和62题以及63题类似,只不过dp数组的状态表示变了,这里dp数组不再表示方案数,而是到当前格子的最小路径和.可以发现:要到达第i行第j列的格子,只有从第i - 1行第j列的格子或第i行第j - ...
 - C++ ACE 动态加载链接库
			
添加头文件 #include <ace/DLL.h> #include <ace/DLL_Manager.h> 定义函数接口 typedef long (*PFN_TEST)( ...
 - Java 添加、下载、读取PDF附件信息(基于Spire.Cloud.SDK for Java)
			
Spire.Cloud.SDK for Java提供了PdfAttachmentsApi接口添加附件addAttachment().下载附件downloadAttachment().获取附件信息get ...
 - python 实现汉诺塔
			
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具.大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘. 大梵天命令婆罗门把圆盘从下面开始按大小顺 ...
 - 解决idea中“系统找不到指定路径”的问题
			
有时在其他工具中运行正确的项目,在idea中运行会报路径找不到的错误. 该路径是相对路径的情况下,很有可能是因为idea中的工作空间没有选择正确而导致的.设置工作空间: 该目录没有配置到你运行的模块, ...
 - 微服务框架Demo.MicroServer运行手册
			
一.背景说明: 之前分享过一个微服务开发框架, "享一个集成.NET Core+Swagger+Consul+Polly+Ocelot+IdentityServer4+Exceptionle ...
 - DLL隐式链接
			
动态链接库有2种连接方式,一种是通过库直接加入(又叫隐式加载或载入时加载),一种是在运行时加入.后者很好理解,比如LoadLibrary(),GetProcAddress()获取想要引入的函数,使用完 ...
 - MySQL 对window函数执行sum函数疑似Bug
			
MySQL 对window函数执行sum函数疑似Bug 使用MySql的窗口函数统计数据时,发现一个小的问题,与大家一起探讨下. 环境配置: mysql-installer-community-8.0 ...