Python subprocess 使用(二)

本篇继续介绍subprocess的使用.

这里主要添加两个自己在工作过程中常用的两个小命令.

1: 获取顶层activity

import subprocess

def get_top_activity():
# 使用adb命令获取顶层activity
cmd = 'adb shell dumpsys window |grep "mCurrentFocus=Window"'
# 解析输出结果,提取顶层activity
result = subprocess.check_output(cmd, shell=True).decode('utf-8').strip()
return result # 调用函数获取顶层activity
print("Top activity:", get_top_activity())

2: 获取top activity 某个view 的id

import subprocess
import sys,os
name = sys.argv[0]
arg =sys.argv[1] def get_control_id():
# 使用adb命令获取当前activity某个组件id
cmd = 'adb shell dumpsys activity top |grep "app:id/'+arg+'"'
print(cmd)
result = subprocess.check_output(cmd, shell=True).decode('utf-8').strip() return result # 调用函数获取顶层activity
print("id/"+arg+":", get_control_id())

参数传入目标view的id name:

python3 topActivity.py item_icon

输出如下:

Top activity: mCurrentFocus=Window{bbad0c0 u0 com.test.signapk/com.test.signapk.MainActivity}
adb shell dumpsys activity top |grep "app:id/item_icon"
id/item_icon: androidx.appcompat.widget.AppCompatImageView{c12b536 V.ED..... ........ 35,35-315,315 #7f08008c app:id/item_icon}
androidx.appcompat.widget.AppCompatImageView{1f96f09 V.ED..... ........ 35,35-315,315 #7f08008c app:id/item_icon}
androidx.appcompat.widget.AppCompatImageView{9342b4b V.ED..... ........ 35,35-315,315 #7f08008c app:id/item_icon}
androidx.appcompat.widget.AppCompatImageView{607b57d V.ED..... ........ 35,35-315,315 #7f08008c app:id/item_icon}
androidx.appcompat.widget.AppCompatImageView{e8c756c V.ED..... ........ 35,35-315,315 #7f08008c app:id/item_icon}
androidx.appcompat.widget.AppCompatImageView{8f2f622 V.ED..... ........ 35,35-315,315 #7f08008c app:id/item_icon}
androidx.appcompat.widget.AppCompatImageView{c4337a5 V.ED..... ........ 35,35-315,315 #7f08008c app:id/item_icon}

Python subprocess 使用(二)的更多相关文章

  1. Python常用模块二

    一.time & datetime #_*_coding:utf-8_*_ import time # print(time.clock()) #返回处理器时间,3.3开始已废弃 , 改成了t ...

  2. python排序之二冒泡排序法

    python排序之二冒泡排序法 如果你理解之前的插入排序法那冒泡排序法就很容易理解,冒泡排序是两个两个以向后位移的方式比较大小在互换的过程好了不多了先上代码吧如下: 首先还是一个无序列表lis,老规矩 ...

  3. Python 基础语法(二)

    Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...

  4. Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识

    Python 数据分析(二) 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识 第1节 groupby 技术 第2节 数据聚合 第3节 分组级运算和转换 第4 ...

  5. 初学 Python(十二)——高阶函数

    初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...

  6. python/MySQL练习题(二)

    python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...

  7. Python/MySQL(二、表操作以及连接)

    Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...

  8. python下实现二叉堆以及堆排序

    python下实现二叉堆以及堆排序 堆是一种特殊的树形结构, 堆中的数据存储满足一定的堆序.堆排序是一种选择排序, 其算法复杂度, 时间复杂度相对于其他的排序算法都有很大的优势. 堆分为大头堆和小头堆 ...

  9. python函数(二)

    python函数(二) 变量的作用域 1.局部变量与全局变量 在函数内创建的变量被称为局部变量,这类变量的生命周期与函数相同,当函数执行完毕时,变量也就随之消失. 此类变量只能在函数内部调用,函数外不 ...

  10. Python爬虫利器二之Beautiful Soup的用法

    上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫Be ...

随机推荐

  1. [htmlayout] picture标签替代img, 解决更新图片数据后依然显示原图片数据

    在hl中, 你可能遇到过这样的情况.   给img标签设置了一个图片路径.   在软件使用过程中对这个路径的数据进行过重写, 删除等等 但img依然还是显示最初载入的图片数据. 解决办法: 用&quo ...

  2. 位图(bitmap)原理以及实现

    大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我们在日常 ...

  3. Solution -「YunoOI 2017」由乃的 OJ

    Description Link. 起床困难综合症 上树. Solution 线段树维护,树剖上树. 具体题解有空再写,我要去睡觉了. #include<bits/stdc++.h> ty ...

  4. mpi转以太网连接300PLC与易控INSPEC上位机软件通讯

    300PLC转以太网与易控 INSPEC 上位机软件通讯 易控 INSPEC 软件通过以太网连接西门子 S7300 系列 PLC, 兴达易控MPI-ETH-XD1.0通讯模块为 PLC 提供以太网通讯 ...

  5. Spring注解之@ExceptionHandler 统一异常处理和获取方法名

    摘要:在 Spring Boot 中,使用Spring注解@ControllerAdvice 和 @ExceptionHandler 统一处理异常,并捕获方法名,从而快速定位错误原因. 背景分析    ...

  6. 使用ensp搭建路由拓扑,并使用ospf协议实现网络互通实操

    转载请注明出处: 1.使用ENSP 搭建如下拓扑: 数据准备 为完成此配置例,需准备如下的数据: 设备 Router ID Process ID IP地址 DeviceA 1.1.1.1 1 区域0: ...

  7. ModelScope

    欢迎来到ModelScope平台!本篇文章介绍如何快速开始使用ModelScope平台上的模型,包括所需的基础概念,环境安装,模型推理和训练的快速实践示例. 如何开始# 如果你是新手,想快速体验产品, ...

  8. Android Studio3.2.1升级刨坑记录

    Android Studio出了3.2.1,我用的是2.3,所有决定升级一下,看看如何 为了保险一点,下载了官方的解压版本,也就是说不含sdk,下载android-studio-ide-181.501 ...

  9. 快来让你的网页色彩绚丽--linear-gradient与radial-gradient

    作者:WangMin 格言:努力做好自己喜欢的每一件事 随着前端技术的发展,单一的背景色已经满足不了客户的需求了,所以在前端开发中我们常常会用到一些渐变色的效果,这样可以使前端页面更加美观.那么渐变色 ...

  10. Null return value from advice does not match primitive return type for

    1.org.springframework.aop.AopInvocationException:Null return value from advice does not match primit ...