手把手教你monkeyrunner_youni发短信

monkeyrunner+python脚本 monkeyrunner+python脚本 monkeyrunner+python脚本 monkeyrunner+python脚本 . monkeyrunner+python脚本 monkeyrunner+python脚本 立即下载


转自:

http://blog.youkuaiyun.com/tu_tustudio/article/details/8313976

 

前一段做到手机软件的自动化,找朋友咨询了一下,答复说用的比较多的是monkeyrunner和adb工具。于是就试了试。先试了下有源码的公司项目,这个比较容易,启动的activity和控件id一类的在源码里面都有呢。于是想试试只有apk包的,就拿youni来试试吧。

 

Youni是盛大公司产品,可以免费发短信(对方也得是youni会员),实际使用层面,和qq不觉得有啥不同,测试了一下,倒是真的走的短信接口。咱就来试试发发短信。

 

后面会提到的两个工具都是sdk自带的,位置在:android-sdk\tools,至于手机是用的ZTE中兴N880S,别砸砖,哥们比较穷,所以手机比较挫,youni的程序是从豌豆荚上下载后在pc上安装到手机的。

 

好了,咱先写一个id引用方式操作界面的脚本,在写脚本之前,得先看看界面,分析一下操作步骤:

 

第一个界面:

001.png

 

这是主界面,进入这个界面,我们需要知道他的package和activity,进入界面后,要点击那个新消息,所以还得知道这个控件的id,点击后,就进入第二个界面:

002.png

 

在这个界面上,需要操作的控件有三个:发送的号码,短信内容和发送按钮。

 

小结一下,我们需要得到五个东西:

1.      主界面的[package和activity];

2.      主界面的[新消息] 控件id;

3.      第二个界面的[发送的号码] 控件id;

4.      第二个界面的[短信内容] 控件id;

5.      第二个界面的[发送按钮] 控件id;

 

 

来,咱来取得这个东东,先启动工具hierarchyviewer.bat(android-sdk\tools),在启动前把其他的连接手机的工具暂时关闭,避免影响,启动后看看:

003.jpg

 

得到了第一项:主界面的[package和activity];

Package=com.snda.youni

Activity= com.snda.youni.YouNi

 

哈哈,这下可以启动程序了。点击[Load View Hierarchy],进入另外一个界面,来找找那个新消息控件:

004.jpg


先设置20%缩放,这样拉动viewtree的时候比较容易看到哪个控件被选中了;然后在缩略图里面点击那个新消息的位置,光标停留在上面的时候,会显示真实的控件样子,仔细看,是不是看到了新消息几个字;选上了以后,拉动一下viewtree,被选中的控件很显眼,因为会弹出一个描述,放大放大,就是下面这个样子:

005.jpg

 


可以肯定了,就是这个控件了,第二项:主界面的[新消息] 控件id=new_chat,顺带看看这个控件的其他属性,比如:mLeft,mTop,mBottom,mWidth,mHeight,如果你的脚本是直接点击,就可以参考这些属性了,左面往右一点就能点击到控件了。

 

手机上点击控件[新消息],进入第二个界面,点击[Load View Hierarchy],找寻后三项,有点慢,别着急,等等。后面三项很容易找到了。

 

第二个界面的[发送的号码] 控件id= btn_send

第二个界面的[短信内容] 控件id= recipients_editor

第二个界面的[发送按钮] 控件id= edit_text

 

好了,我写两个版本吧,一个是用id来引用的,另外一个是绝对定位操作的,供大家参考:

 

第一个版本:id引用控件

优点:跟屏幕分辨率无关

缺点:超级慢

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

from com.android.monkeyrunner.easy import EasyMonkeyDevice   

from com.android.monkeyrunner.easy import By

 

package = 'com.snda.youni'

activity = 'com.snda.youni.YouNi'

runComponent = package + '/' + activity

 

device = MonkeyRunner.waitForConnection('N880_LOWCOST')

device.startActivity(component=runComponent)

easy_device = EasyMonkeyDevice(device)

MonkeyRunner.sleep(3.0)

easy_device.touch(By.id('id/new_chat'), MonkeyDevice.DOWN_AND_UP)

 

easy_device.touch(By.id('id/edit_text'), MonkeyDevice.DOWN_AND_UP)

device.type('sms content')

easy_device.touch(By.id('id/recipients_editor'), MonkeyDevice.DOWN_AND_UP)

device.type('13316612345')

device.press('KEYCODE_BACK', 'DOWN_AND_UP')

easy_device.touch(By.id('id/btn_send'), MonkeyDevice.DOWN_AND_UP)

device.press('KEYCODE_BACK', 'DOWN_AND_UP')

device.press('KEYCODE_BACK', 'DOWN_AND_UP')

 

result = device.takeSnapshot()

result.writeToFile('C:\cankao\shot1.png','png')

 

 

第二个版本:绝对定位操作

优点:速度快

缺点:跟屏幕分辨率有关,分辨率不同代码不同,需要等比适配

 

 

#主进程进入youni发送短信,绝对定位版本(480X800)

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

from com.android.monkeyrunner.easy import EasyMonkeyDevice   

from com.android.monkeyrunner.easy import By

 

package = 'com.snda.youni'

activity = 'com.snda.youni.YouNi'

runComponent = package + '/' + activity

 

device = MonkeyRunner.waitForConnection()

device.startActivity(component=runComponent)

MonkeyRunner.sleep(3.0)

 

device.touch(160,759,'DOWN_AND_UP')

MonkeyRunner.sleep(2.0)

 

device.touch(240,700,'DOWN_AND_UP')

device.type('sms content')

MonkeyRunner.sleep(1.0)

device.touch(211,150,'DOWN_AND_UP')

device.type('13316612345')

MonkeyRunner.sleep(1)

device.press('KEYCODE_BACK', 'DOWN_AND_UP')

MonkeyRunner.sleep(1.0)

device.touch(450,700,'DOWN_AND_UP')

MonkeyRunner.sleep(1.0)

device.press('KEYCODE_BACK', 'DOWN_AND_UP')

MonkeyRunner.sleep(1)

device.press('KEYCODE_BACK', 'DOWN_AND_UP')

 

result = device.takeSnapshot()

result.writeToFile('C:\cankao\shot1.png','png')

 

 

好了,就这么多了,代码很简单,没啥好讲的,怎么运行?这都要问?好吧,打开android\tools\monkeyrunner.bat,进入jython的命令解释器,直接把你的代码一行行贴进去敲回车,或者保存上面的代码,扩展名可以用py,直接执行这个py文件就可以了。

 

 

GOD BLESS U!

 

 

 

 

全国各城市POI数据2012年-2023-最新整理zip 全国各城市POI数据2012年-2023-最新整理zip 新增2024全国POI矢量数据 数据时间2024年5月 shp格式 36万个数据 数据来源OpenStreetMap 一、全国范围2012、2014、2016、2018、2020、2022年和2023年常用POI数据集 数据是全国范围2012、2014、2016、2018、2020、2022年、2023年常用POI数据集,主要包括:包括餐饮、风景名胜、公共设施、公司企业、停车场、收费站、厕所、服务器等等。 【资源信息】 中文名称: 全国范围POI数据集 显示时间: 2012、2014、2016、2018、2020、2022、2023年 数据来源: 高德地图、百度地图、网络搜集等 数据格式:矢量点数据(shp) 数据坐标:WGS_1984 二、全国各城市POI兴趣点数据 数据年份:2012-2023年 数据范围:每年样本量6000w-9000w POI类别:150+POI兴趣点类别 原始来源:2012-2017年来源于百度,2018-2022来源于高德 数据指标:POI名称,经度,纬度,省份,城市,区域(各年指标有所差别) 立即下载

相关推荐

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

智能驾驶智慧交通行业智算中心(AIDC)建设规划方案.pptx

Drozer – Android APP安全评估工具(附测试案例)

Drozer原名mercury,是一款不错的Android APP安全评估工具。现在有社区版/专业版两个版本。 具体的使用说明可以参考https://www.mwrinfosecurity.com/system/assets/559/original/mwri_drozer-users-guide_2013-09-11.pdf  测试案例 某Android APP由于Content Pro...

自娱《测试开发》专栏 777

【专利信息处理】基于Java+Vue的专利文本主题标引与新颖性检索系统设计 项目介绍 基于java+vue的专利文本主题标引与新颖性检索系统设计与实现(含模型描述及部分示例代码)

构建可演进的专利知识服务平台,为后续接入大模型、知识图谱等高级功能奠定基础。; 阅读建议:此资源以实际项目为导向,包含模型设计与部分核心代码示例(如文本清洗、术语归一化、TF-IDF、TextRank、BM25、余弦相似度等),建议读者结合代码理解算法逻辑,并尝试在本地环境中搭建原型系统进行调试内容概要:与扩展,深入本文介绍了一个掌握专利信息处理的技术基于Java与Vue的链路与业务专利文本主题标边界。引与新颖性检索系统的设计与实现。系统通过整合自然语言处理、信息检索与排序融合技术,实现了对海量专利文本的自动化处理,涵盖数据采集、文本清洗、主题提取、技术标签生成、相似专利检索及新颖性辅助分析等功能。核心技术包括字段分层处理、中文分词优化、领域术语归一化、TF-IDF与TextRank关键词提取、BM25与余弦相似度排序、以及权利要求特征覆盖度计算等。系统采用Spring Boot构建后端服务,结合Elasticsearch实现高效全文检索,Redis缓存热点数据,Vue构建可视化前端界面,支持多维度筛选与结果展示。项目强调“辅助而非替代”专业判断,通过闭环反馈机制持续优化术语库与模型效果,致力于将专利文献转化为可计算、可检索、可解释的技术知识资产。; 适合人群:具备Java和Vue开发基础,熟悉Spring Boot、Elasticsearch、MyBatis Plus等技术栈,从事知识产权信息化、NLP应用开发或科技情报系统研发的工程师与研究人员,尤其适合1-5年工作经验的技术人员;; 使用场景及目标:①用于企业研发立项前的技术查新与专利风险排查;②支持知识产权服务机构开展专利布局分析与无效检索;③辅助高校与科研机构进行技术趋势识别与竞争对手监测;④构建可演进的专利知识服务平台,集成大语言模型与知识图谱实现智能升级; 阅读建议:此资源包含完整模型架构与核心代码示例,建议结合实际项目实践,重点理解文本预处理流程、多阶段检索策略与新颖性辅助判断逻辑,并可根据行业需求扩展术语库与算法模块。

python发短信脚本_MonkeyRunner执行Python脚本实例——发送短信

上一文中我们已经对MonkeyRunner启动一个应用程序有了初步的了解,本文将举例来加深对MonkeyRunner执行Python脚本的理解。目标:对手机短信程序进行压力测试。代码如下:1 #导入我们需要用到的包和类并且起别名2 importsys3 from com.android.monkeyrunner importMonkeyRunner as mr4 from com.android....

weixin_39693438的博客 616

douyin-favorite-MyLike-2.0.3.zip

douyin-favorite-MyLike-2.0.3.zip

英文打字练习 可自定义练习范围

英文打字练习 可自定义练习范围 给初学者熟悉键位用

iOS调用系统发短信功能详解

iOS调用系统的发短信功能可以分为两种:1,程序外调用系统发短信。2,程序内调用系统发短信。第二种的好处是用户发短信之后还可以回到app。这对app来说非常重要。 程序外调用系统发短信 这个方法其实很简单,直接调用openURL即可: [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms://13888888

刚刚在线 1674

非凸非光滑优化的惯性块镜像下降方法(Matlab代码实现)

内容概要:本文详细介绍了“非凸非光滑优化的惯性块镜像下降方法”的Matlab代码实现,重点针对三相PWM控制等复杂工程场景中的非凸非光滑优化问题,提出一种高效的迭代求解算法。文章系统阐述了该方法的数学建模原理、收敛性分析及优化机制,并提供了完整的Matlab仿真代码与多个典型应用实例(如储能系统管理、电力电子控制等),帮助读者深入理解算法在实际科研与工程中的部署方式。内容兼具理论深度与实践价值,突出展示了该方法在电力系统、信号处理和数据融合等领域的广泛应用潜力。; 适合人群:具备扎实的数学优化理论基础和良好Matlab编程能力,从事控制工程、电力电子、信号处理或运筹优化等相关方向的研究生、科研人员及工程师(建议具有1-3年以上相关经验);特别适合致力于非凸优化、智能算法设计及工业级仿真验证的技术人员。; 使用场景及目标:① 掌握非凸非光滑优化问题的先进求解策略,提升对复杂目标函数与约束条件的处理能力;② 利用所提供的Matlab代码快速实现惯性块镜像下降算法,应用于电力系统优化控制、路径规划、信号恢复等科研项目中;③ 借助文中的仿真案例进行算法性能测试、参数调优与二次开发,推动高水平论文撰写与技术创新。; 阅读建议:此资源以算法实现为核心,建议读者结合理论推导与代码实践同步学习,优先按照文档推荐目录顺序逐步深入,确保掌握前置知识体系;同时关注公众号“荔枝科研社”获取完整资源包、配套资料及更新内容,全面提升学习完整性与科研应用效能。

iOS----------iPhone导出手机所有短信

第一步:手机连接到itunes 选择本电脑备份 备份的时候不要加密 然后立即备份 第二步:前往文件夹,找到itunes的备份路径~/Library/Application Support/MobileSync/Backup 在这目录下搜索3d0d开头的文件,这就是 iPhone 短信的数据库文件。 第三步:把这个文件复制到桌面上,然后添加后缀.db,使用Navic...

weixin_30493401的博客 907

【多无人机追捕-逃逸】平面中多追捕者保证实现的分散式追捕-逃逸策略研究(Matlab代码实现)

内容概要:本文针对平面中多无人机追捕者与逃逸者之间的博弈问题,提出了一种保证实现的分散式追捕策略。该策略基于相对几何关系与速度信息,实现了多追捕者在无中央协调机制下的自主决策与协同围捕,确保对逃逸者的有效捕获。研究内容涵盖追捕-逃逸系统的数学建模、分散式控制律的设计、收敛性理论证明,并通过Matlab仿真验证了算法在多种场景下的有效性、鲁棒性与可扩展性,展示了追捕者如何动态调整轨迹以逐步缩小包围圈并最终完成捕获。; 适合人群:具备控制理论、机器人学、自动化或计算机科学背景,熟悉Matlab编程,从事多智能体系统、无人机协同控制、博弈论或自主系统研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多无人机系统在安防监控、目标围捕、应急响应等任务中的协同路径规划与自主决策;②为多智能体协同控制、分布式算法设计与博弈策略研究提供理论支撑与可复现的代码实例,支持进一步拓展至三维空间、多逃逸者或异构无人机场景。; 阅读建议:建议读者结合Matlab代码深入理解控制律的设计原理与实现细节,重点关注系统的建模过程、稳定性分析与仿真结果的动态演化,可在此基础上开展算法改进与跨场景迁移研究。

(Multisim课设资料)最全面函数信号发生器(三角波+正弦波+方波信号+锯齿波仿真设计+报告文档

内容概要:本文详细介绍了基于Multisim平台设计的多功能函数信号发生器,能够稳定产生三角波、正弦波、方波和锯齿波四种常用信号,涵盖完整的电路设计、仿真验证与调试过程,并配套完整的课程设计报告。资料系统阐述了各波形的生成原理与电路结构,包括运算放大器的应用、RC振荡电路设计、积分与比较电路实现等关键技术,帮助使用者深入理解信号发生器的工作机制。资源包含Multisim仿真文件、设计原理图、波形分析图表及撰写规范的课设文档,便于直接学习与修改应用; 适合人群:具备电路分析、模拟电子技术等基础知识的电子信息类、自动化类及相关专业的本科学生,适用于课程设计、实验实践或毕业设计阶段的学习者,以及指导相关实践课程的高校教师; 使用场景及目标:①作为模拟电子技术课程设计的参考模板,完成函数信号发生器的设计与仿真任务;②掌握Multisim软件在电路仿真中的实际应用,提升电路设计与调试能力;③理解多波形信号发生器的实现原理,巩固运放电路、振荡电路等核心知识点;④高效完成课程设计报告撰写,提升综合实践与工程表达能力; 其他说明:所有资料可通过提供的网盘链接完整下载,内容结构完整、逻辑清晰,具有较强的实用性和可复用性,适合作为课程设计的标准参考范例。

Android自动化测试入门(一)Monkey和MonkeyRunner

测试是应用开发中不可或缺的一部分。测试所做的工作,虽然不能让用户看到效果,但是想要保证一个有一定用户基础的应用的稳定性,测试是必须做的,否则严重的崩溃率肯定会导致用户的差评或者流失。 ADB工具使用 ADB的使用Android开发者应该都很熟悉了,它是电脑和手机之间连接的一个桥梁。电脑端有一个Client和一个Server,Client负责输入命令,Server负责和手机连接,手机端通过adbd跟...

mingyunxiaohai的专栏 463

数据IEEE123节点数据

内容概要:本文档是一份面向科研人员的综合性技术资源汇编,聚焦于电力系统、智能优化算法、机器学习与深度学习、信号处理、路径规划、无人机应用及通信技术等多个前沿科研领域,提供了大量基于Matlab、Simulink和Python的代码实现资源。文档突出IEEE 123节点配电网数据的实际应用,涵盖三相PWM整流器控制、双有源桥(DAB)变换器优化、微电网经济调度、储能系统配置、卡尔曼滤波状态估计、多目标优化算法等关键技术的仿真与研究。资源体系结构清晰,强调理论与实践深度融合,适用于电力电子、智能电网、自动化控制等方向的科研仿真与创新验证。; 适合人群:电气工程、自动化、计算机科学、通信工程及相关专业的研究生、科研人员以及具备一定编程基础的工程技术人员。; 使用场景及目标:①开展电力系统仿真与优化研究,如配电网重构、微电网调度、储能选址定容等;②支撑智能算法开发与实证,涵盖路径规划、状态估计、信号融合等课题;③辅助高水平学术论文复现与技术创新,提升科研效率与成果质量。; 阅读建议:建议依据提供的资源目录系统化浏览,优先筛选与自身研究方向匹配的案例进行深入学习,结合Matlab/Simulink或Python环境动手复现代码,注重理解算法设计原理与仿真实现细节,以实现从模仿到创新的科研能力跃迁。

史上最全的MonkeyRunner自动化测试从入门到精通(1)

史上最全的MonkeyRunner自动化测试从入门到精通(1) 史上最全的MonkeyRunner自动化测试从入门到精通(2) 史上最全的MonkeyRunner自动化测试从入门到精通(3) 史上最全的MonkeyRunner自动化测试从入门到精通(4) 史上最全的MonkeyRunner自动化测试从入门到精通(5) 史上最全的MonkeyRunner自动化测试从入门到精通(6) 史上最

拼搏的少年的博客 1万+

深入浅出DNS系列(一)- DNS杂谈

黄丝玛:班达山,你好,我记性不好,你告诉我搜狐、新浪的网站IP地址好吗? 班达山:你问问DNS先生吧,他专门干这买卖的

jiangsd198的博客 4129

Unity物理驱动3D汽车实现:从刚体控制到参数调优

在游戏开发中,刚体物理是实现真实物体运动与交互的核心技术。通过Unity的物理引擎,开发者可以模拟重力、碰撞、摩擦力等物理行为,为游戏世界注入真实感。其技术价值在于能够以符合物理规律的方式驱动游戏对象,避免穿墙、无视惯性等问题,从而提升游戏体验的真实性和沉浸感。这一原理广泛应用于角色控制、车辆模拟、物体破坏等场景。本文以3D小汽车为例,详细解析了如何通过Rigidbody组件施加力与扭矩,并利用C#脚本实现玩家输入逻辑,完成一辆可操控、能碰撞的物理驱动汽车。文中重点探讨了AddForce与角速度控制两种方案

weixin_34380948的博客 500

iphone开发中发送短信

    iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewControllerDelegate,提供了发送短信的接口,可以像发送邮件那样不用跳出程序来发送短信. 介绍可参阅Message UIFramework Reference 一些笔记: MFMessageComposeViewController 提供...

wsq198760的专栏 149

【机器学习】实验3,贝叶斯垃圾邮件识别(完整代码实现+报告)

电子邮件是互联网的一项重要服务,在大家的学习、工作和生活中会广泛使用。但是大家的邮箱常常被各种各样的垃圾邮件填充了。有统计显示,每天互联网上产生的垃圾邮件有几百亿近千亿的量级。因此,对电子邮件服务提供商来说,垃圾邮件过滤是一项重要功能。而朴素贝叶斯算法在垃圾邮件识别任务上一直表现非常好,至今仍然有很多系统在使用朴素贝叶斯算法作为基本的垃圾邮件识别算法。本次实验数据集来自的中文垃圾邮件数据集,目录解压后包含三个文件夹,其中data目录下是所有的邮件(未分词),已分词好的邮件在data_cut目录下。

高丽大学人工智能硕士在读|专注大模型、RAG、OCR与AI工程实践 5025

monkeyrunner屏幕滑动

#页面滑动,并截图保存 import time from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice device = MonkeyRunner.waitForConnection() device.startActivity(“com.ydcf99.ydcf/com.ydcf99.ydcf.activity.Mai...

for_further的博客 1434

【Qt】Window环境下搭建Qt6、MSVC2022开发环境(无需提前安装Visual Studio)

本文介绍 Windows 环境下无需安装 Visual Studio,搭建 Qt6 与 MSVC2022 开发环境的方法,以节省磁盘空间。核心步骤包括:用中科大镜像提速 Qt6 在线安装,需勾选 Qt Creator 17.0.1、MSVC 2022 x64 等组件;配置环境变量,添加 mingw_64、msvc2022_64 及 Qt Creator 的二进制目录;安装 MSVC 2022 编译器与 Windows 10 SDK 并记录版本;配置 Qt Creator 构建套件,可选设置 vcvarsal

油炸自行车的博客 2919

“傻瓜”stata入门——熟悉操作界面

小白开始学习stata和matlab,零基础上手

nnpersistent的博客 4453
上一篇: 手把手教你OPENCV FOR ANDROID 之二_ android开发环境搭建
下一篇: 新浪微博上的一道算术题
Testingba
博客等级 码龄15年 128粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值