通过adb巧用monkey获取android设备中所有应用的主activity
由于工作需要,想获取所有应用的activity(这里仅限应用的主入口Launcher activity),搜索了一下,网上实现的方案都是基于android编程实现的,对于不懂开发的测试来说稍有难度,而且对于PC端测试工具来说可行性略差。
给大家共享个非常简单的办法——通过monkey日志获取所有Launcher activity。
当输入adb shell monkey -c android.intent.category.LAUNCHER -v -v -v 0,会得到以下格式日志。
解释:-c android.intent.category.LAUNCHER意思是仅包含category属性为launcher的activity,也就是会在launcher上显示图标的应用。
-v -v -v 是monkey的日志级别,感兴趣可以试试从只输入-v到3个-v的区别。
当我们想知道单个应用的activity时,可以通过-p指定包名,通过monkey日志的Using main activity得到包对应的activity。
图中标记部分分别是应用的类名和包名。
获取这些信息后,通过简单的代码就可以进行结果格式化了。
贴出部分代码,凑合看吧。
1 def get_all_launcher_activity(self): 2 out, err = self.run_cmd( 3 'shell monkey -c android.intent.category.LAUNCHER -v -v -v 0') 4 out = out + err 5 acs = {} 6 for i in out: 7 try: 8 pkg = re.search(r'\(from package (.*?)\)', i).group(1) 9 act = re.search(r'Using main activity (.*?) \(', i).group(1) 10 full_act = pkg + '/' + act 11 acs[pkg] = full_act 12 del pkg, act 13 except AttributeError: 14 pass 15 return acs
转载请声明出处。
转载于:https://www.cnblogs.com/mrleopard/p/9620171.html
通过adb巧用monkey获取android设备中所有应用的主activity相关推荐
- 获取Android设备中全部App
获取android设备中全部app名称和应用包名 /*** 获取android设备中全部app名称和应用包名* */public void getAllAppNames(){ArrayList cus ...
- Android设备 D获取,如何获取Android设备名称(常用ADB命令介绍)
如何获取Android设备名称 sdk安装和配置 1.Android SDK 工具的安装,下载地址:https://www.androiddevtools.cn 2.环境变量配置 2.1:增加选项AN ...
- Appium:获取Android设备手机屏幕分辨率
Appium:获取Android设备的手机屏幕分辨率 使用Appium获取手机屏幕分辨率 print(driver.get_window_size()) # {'width': 1080, 'heig ...
- android获取wifi连接状态,获取android设备wifi连接状态
本文将介绍如何获取android设备wifi连接状态! 添加访问权限(AndroidManifest.xml文件里) Java代码(MainActivity.java文件) package com.e ...
- android 摄像头参数,获取Android设备上的详细的摄像头信息
原标题:获取Android设备上的详细的摄像头信息 如何获取Android设备上的详细的摄像头信息呢? 目前Samsung的Galaxy Tab和Nexus S均有前置摄像头,获取Android摄像头 ...
- ADB命令行卸载或删除你的Android设备中的应用
如果你对你的Android设备在与命令行的交互间有一定的兴趣,那你可能想学习一些使用ADB卸载设备中已安装应用的技巧.为了使这种方法生效,你将需要在你的电脑中设置好Android ADB.可以去看看关 ...
- 通过ADB命令行卸载或删除你的Android设备中的应用
对于通过ADB卸载一个应用程序,你必须知道这个应用程序的程序包名称,在这点上,你要注意的是,这未必是某应用的APK文件名字,比如Yahoo! Mail(雅虎邮箱)Android终端应用,它的程序包名称 ...
- java 如何获取设备号_java – 如何获取android设备ID?
如何获取Android设备ID?我不知道什么是"背景". import android.content.Context; import android.provider.Setti ...
- 获取android设备唯一ID和用途
获取android设备唯一ID和用途 编者:李国帅 qq:9611153 微信lgs9611153 时间:2021/5/16 获取android设备唯一ID: 在android9及之前,我们还是可以获 ...
最新文章
- 深度|全面了解一下这个世界上最奇葩的公司:Google!
- HTML, CSS. JS的各种奇淫技巧
- vsftp 添加虚拟帐号
- modelsim加入xilinx ISE库的方法
- linux内核启动后门,Linux下编写隐蔽的自启动回连后门
- JAVA将 带有空格或特殊字符的字符串转换成int数组的方法
- rocksdb学习笔记
- dart系列之:dart优秀的秘诀-隔离机制
- AJPFX关于构造器的总结
- QT开发(十)——QT输入组件
- 数据可视化【一】JavaScript学习
- C语言(记录)——内存相关_2:内存的编址与管理
- ArcSDE工作机制
- 中文的括号和英文的括号区别_家庭教育的困惑 (数学,中/英文)
- 冒泡排序(普通,加强对比)
- IBM DS STORAGE MANAGER软件
- Openstack+Opencontrail安装与部署初级教程
- Could not start AVD
- DCGM-Exporter 安装 显卡监控 Prometheus
- 配置ST-GCN体会