通过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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/367398.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PWA · 前后端协作 · Node | JTalk 掘金线下活动第七期

通知 余票仅剩 3张,欢迎加入活动群获取更多通知。北京的小伙伴可以关注我们的 JTalk 第八期:前端安全 | 美团点评技术团队专场 ? 报名 扫码报名: 报名链接:点我报名 ? 介绍 本期 JTalk 来杭州啦! 掘金线下活动 J…

指数函数中x的取值范围_基本初等函数I: 指数函数、对数函数和幂函数

本文大约4800字, 建议学习时间1个小时.在学习过一次函数和二次函数(修改版)后, 我们知道, 一次函数ykxb当一次项系数k大于零时是增函数, 小于零时是减函数. 二次函数yax2bxc当二次项系数a大于零时图象沿x轴从左向右先减后增, a小于零时先增后减. 可以想象, 次数更高的函数, 在定…

Linux系统之TroubleShooting(启动故障排除)

尽管Linux系统非常强大,稳定,但是我们在使用过程当中,如果人为操作不当,仍然会影响系统,甚至可能使得系统无法开机,无法运行服务等等各种问题。那么这篇博文就总结一下一些常见的故障排除方法,但…

皮肤可配置化:变量、样式分离

之前皮肤开发了一个版本,抽是抽出来了,但是变量只抽出了几个颜色,没什么价值(上个版本开发过程), 这次我又进行了一次迭代,现在是一个较成熟的版本了。整体理一下思路,可以总结为3步…

【考试记录】4.8 Path (网络流 —— 劲题)

手抄代码 学习指针 冥思苦想一晚上终于——在一瞬间开窍了。果然题目都是这样:突破了一个点,一切都是柳暗花明。 题面描述: 样例: 这道题目,首先注意到给定的边的性质:这些边在平面上构成了一棵树&#x…

Servlet 3.0概述

Servlet 3.0 –具有许多突破性的功能,这些功能最终将改变开发人员编写和编写JEE Web应用程序的方式–有人可能会说,它的约定违背了我们对事物在理论上“应该”如何工作的大多数理解,但这就是其中之一。创新和持续改进; 挑战公约并…

MySQL(介绍,安装,密码操作,权限表)

一、数据库介绍1、数据库相关概念a、支持并发b、锁的问题c、对客户端请求进行认证d、存取效率(降低IO次数)数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)数据库管理管理系统RDBMS&…

matlab如何测两点的角度_【邢不行|量化小讲堂系列01-Python量化入门】如何快速上手使用Python进行金融数据分析...

引言:邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。【历史文章汇总】请点击此处【必读文章】:【邢不行|量化小讲堂系列27-Python量化入门】EOS期现套利&…

结对项目

一、【Coding.Net项目地址】https://git.coding.net/verde/Pair_Work.git 二、【对接口进行的设计】 看教科书和其它资料中关于Information Hiding, Interface Design, Loose Coupling的章节,说明你们在结对编程中是如何利用这些方法对接口进行设计的。 如下图SRC的…

国家开放大学形成性考核 统一资料 参考试题

试卷代号:1174 水工钢筋混凝土结构(本)参考试题 一、选择题(每小题2分,共20分,在所列备选项中,选1项正确的或最好的作为答案,将选项号填入各题的括号中) 1.钢筋混凝土结…

两个向量之间的夹角公式_向量的内积

向量的内积也叫向量的数量积、点积。我们定义两个向量的内积是一个数: 其中 是这两个向量的夹角。 对于向量的内积,最重要的一个结论是: 定理1:两向量垂直的充分必要条件是它们的内积为 0,即 这个定理我们几乎不用证明了,因为从定义来看,如果两个向量都不零向量,则只能…

springcloud 入门 10 (eureka高可用)

eureka高可用: 说白了,就是加一个实例作为原实例的备份,然后一起对外提供服务。这样可以保证在一台机器宕机的时候,整个系统不会死掉。保证其继续对外服务。 eureka的集群化: 服务注册中心Eureka Server,是一个实例&am…

为什么REST如此重要

这篇文章致力于REST,一种塑造Web服务的体系结构风格,以及IT历史上最容易被误解的概念。 这篇文章针对的是那些正在设计Web服务api的人,他们并未完全了解REST的实际含义。 我想给你个主意。 这篇文章也发给了那些想知道REST意味着什么的人&…

你真的懂js获取可视区宽高吗

可能你会觉得获取可视区宽高不是很简单吗 原生js获取高度不就是就window.innerHeight一句话的事,可是真的这么简单吗 来看个测试页面,如果页面带有横向纵向的滚动条,我们打印出各个高度进行查看对比 顺便你也可以看看document.body和document.documentEl…

詹金斯的Maven报告

代码质量是一个敏感的话题。 它会影响您的维护成本以及客户满意度。 更不用说您的开发人员使用代码的动力。 谁想要修复难看的代码,对吗? 讨论代码质量总是需要事实和数字! 因此,这是一个简短的教程,介绍如何创建一些…

python实现矩阵叉乘_矩阵乘法的纯Python实现 | 离开Python库!!

点击关注我哦一篇文章带你了解矩阵乘法的纯Python实现在《这篇文章》中,我们有简单提到“矩阵乘法”的相关知识,如果你不记得了,可以复习一下这张图片。想起来了没?本篇文章将深入探讨在没有机器学习库的情况下如何从零实现矩阵乘…

Github Actions:再次改变软件开发

本文转自 FEPulse 公众号(微信搜索 FEPulse,精选国内外最新前端资讯,为你把握前端脉搏)。 Github Actions 是 GitHub Universe 大会上发布的,被 Github 主管 Sam Lambert 称为“再次改变软件开发”的一款重磅功能&…

为别人软件加入广告或者密码(特别思路)

洪雨的的这款软件比较奇特,是忽然想到一个思路,然后实现了一下。 exe文件都有一个很有趣的地方,只要内部完整,就可以运行。比如一个exe文件,我们运行的时候,电脑知道他是exe所以可以直接运行。假如洪雨将它…

Django 错误跳转页面

原网站:https://blog.csdn.net/goupper1991/article/details/50736826 django404,500错误自定义页面: 将 改为 1.修改settings文件DEBUG FalseALLOWED_HOSTS [127.0.0.1, localhost]或者ALLOWED_HOSTS [*]2.配置urls文件from django.conf.…

ElasticSearch-Hadoop:从Hadoop到ElasticSearch的产品视图计数索引和客户顶部搜索查询...

这篇文章涵盖了如何使用ElasticSearch-Hadoop从Hadoop系统读取数据并在ElasticSearch中对其进行索引。 它涵盖的功能是在最近n天中为每个客户的产品浏览量计数和热门搜索查询编制索引。 分析的数据可以进一步在网站上使用,以显示最近浏览过的客户,产品浏…