【野路子实验室】Android手机开机自启开发者选项
2023-12-01 05:01:19发布 浏览514次 信息编号:86065
友情提醒:凡是以各种理由向你收取费用,均有骗子嫌疑,请提高警惕,不要轻易支付。
【野路子实验室】Android手机开机自启开发者选项
前面已经说过了
在远程手机自动化测试过程中,会出现这样的场景:手机自动重启后,开发者选项自动关闭,需要手动打开“USB调试”才能通过adb命令继续后续的一些自动化操作,否则无法通过adb找到。 手机。
这个手动过程可以自动化吗? 本文将尝试在未root的手机上练习自启动开发者选项。 如果您有兴趣,请继续阅读~
它从哪里来的?
由于在打开USB调试之前无法使用adb命令操作手机,因此可以考虑在手机上预装一个App。 手机重启后App即可打开USB调试。
然而,直接在代码中启用USB调试在非root机器上是不可行的:
因此,可以考虑采用类似脚本播放测试的方法,模拟手机开机后的点击或滑动操作,执行一系列步骤后打开开关。
官方考虑到部分用户不能很好地使用该设备,例如由于视力、身体、年龄等限制,导致阅读内容、触摸操作、音频信息等访问困难,因此提供了功能和功能帮助用户更好地使用设备的服务。 由于这一介绍,它在国内更常被称为无障碍模式或残疾人模式。 这是一个典型的使用场景。
它是一个运行在后台的服务,可以接收系统与用户之间的交互信息,如按钮点击、焦点变化等,可以获取当前UI信息、监听事件(用户操作)并响应控件; 在此基础上推出了自动化测试框架。
而这次我也将用它(an)来完成自动开启USB调试的步骤。
实验方案
基本思想:
首先,手动确保手机上预装了高权限应用程序。
应用程序可以在启动后自动启动
App会监控当前adb usb debug打开状态
当发现USB调试关闭时,会自动打开。
注:本实验使用的机型为Nexus 5。
步骤 1. 打开自动启动
打开接收系统
ED广播,
收到后开始自己:
效果:手机重启后2分钟内可自动启动App。
前提步骤: apk 已预安装在手机上并在手机上启动一次
步骤2.App获取usb调试状态
效果:在App内可以获取当前手机的USB调试模式是否打开。
步骤3. App使用打开usb debug
创建您自己的
要使用它,您需要从该类继承。
通过 XML 文件设置辅助功能服务的配置变量,告诉系统要响应哪些事件类型、该服务是否应该对所有应用程序可用或仅对特定包名称可用、它使用哪些不同的反馈类型以及其他信息。
并在 .xml 中声明一个
配置为
..
并添加
RVICE 权限。
2.响应事件并根据页面结构操作对应的节点
现在服务已设置为运行并侦听事件,我们需要编写一些代码,以便它知道在实际到达时要做什么。
首先用()判断事件类型,用()获取触发事件的App包名。 我们可以粗略过滤掉所有不是设置页面触发的ANGED事件:
接下来主要关注的是如何获取页面当前的结构并操作对应的节点。
从手动角度来看,开启开发者选项需要以下步骤:
进入【设置】
找到【开发者选项】列表项(可能包括滑动屏幕或者进入多级目录来查找)
进入【开发者选项】
点击【打开】
在弹出的窗口中点击【确定】
打开【USB调试】
在弹出的窗口中点击【确定】
现在我们需要自动化这个过程,类似于使用来获取页面结构,获取元素信息,依次编写脚本。 以步骤4为例:
把这些步骤串起来,就是使用USB调试打开的整个过程了。
前置步骤:手机需要提前在无障碍功能中开启应用程序提供的服务。
缩短路径:打开App内的设置
由于各个手机厂商都对设置布局做了一些改变,从首页入手,找到开发者权限设置页面,变数相对较多。 因此,可以考虑直接打开开发者权限设置页面,只需要执行后续步骤。 只需点击即可打开操作并弹出窗口。
因此,大多数手机都可以简化启用开发者权限的步骤,如下:
进入【开发者选项设置】页面
打开【主开关】,弹出窗口确认
打开【USB调试】并弹出窗口确认
进度:可以直接打开系统设置的开发者权限页面
确保您的手机屏幕处于唤醒状态
手机开机后可能会自动锁屏,需要先唤醒屏幕再进行模拟点击操作。 带密码、手势锁屏的手机暂时不考虑。
影响
本实验利用提供的API自动搜索并点击页面节点,完成了手机重启后自动开启USB调试的功能。 最终效果可以看下面的gif:
我还想说点什么
不知道从什么时候开始,从一个为残疾人提供的辅助服务,变成了各种黑科技的基石,而且它的使用也离官方的初衷越来越远。
下面是两个例子:
也许你觉得这两个场景很方便。
那么以下这些可能看起来很无赖:
它用于帮助用户与手机交互。 它提供了许多功能和许多其他可能性。
希望大家不要滥用!
做平台上的好公民。
关于作者
于慧
新的自动化测试
-在擅长羽毛球和跳舞的人中,我努力成为最擅长写代码的人。
提醒:请联系我时一定说明是从星空网上看到的!