WebDriverAgent与Minicap在iOS真机远控上的应用实践
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
真机远控是一种通过浏览器远程操作智能手机的技术,主要分为两大部分关键功能:实时获取手机屏幕数据及实时传输屏幕操控数据.
开测平台中,已经实现了Android手机的远程操控方案.在此基础上,进一步研究iOS设备的远控最佳方案.本文代码部分使用python语言.
工具介绍
minicap 是开源项目 STF(SmartPhone Test Farm) 中的高速截图工具。STF利用此工具不断的传输图片信息并在web端绘制实现. iOSMinicap提供一个Socket接口用于实时从iOS设备屏幕捕获数据,它采用A【【微信】】和iOS屏幕镜像功能实现。
Github地址:
**WebDri【【微信】】(WDA)**是facebook在2015年推出的一款移动测试框架,支持模拟机和真机.WDA在iOS端实现了一个 WebDri【【微信】】 ,借助这个 server 我们可以远程控制iOS设备。**你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。**wda是iOS上一个完美的端到端的自动化解决方案.
Github地址:
初步方案
ios-minicap+WDA原生版本
鉴于minicap工具在Android设备上的优秀的高速截图性能,于是首先尝试iOS-minicap在iOS设备上的应用.
此方案要求:iOS版本8以上
1、从github上下载iOS-minicap-master项目全部文件
2、下载wdapython工具包
github地址:
3、连接iOS设备(一台)
4、启动minicap:
启动后进程不可退出
5、接收minicap从手机端传回的图片数据:
①建立socket连接到minicap提供的端口:
②读取全局header,仅读取一次.header结构如下:
01 unsigned char【【微信】】 (currently 1)char
(currently 1)
11unsigned charSize of the header (from byte 0)char
header (from
2-54uint32 (low endian)Pid of the processprocess
6-94uint32 (low endian)Real display width in pixelswidth in pixels
10-134uint32 (low endian)Real displayheight in pixelsheight in pixels
14-174uint32 (low endian)【【微信】】n pixels 18-214uint32 (low endian)【【微信】】 in pixels 221unsigned charDisplay orientationchar
orientation
231unsigned charQuirk bitflagschar
解析header:
③接收图片信息并保存至队列:
④web server采用【【微信】】传输图片数据,ws连接open以后,开始从图片队列中取数据传送给前端显示.
6、使用WDA操作手机屏幕:
①端口映射:终端中运行命令iproxy 8100 8100,保持进程运行中.
②用命令行启动WDA:
测试WDA是否启动成功可以通过操作命令是否超时来判断:
③web server建立新的一条【【微信】】连接,用于接收浏览器页面的鼠标操作,用于WDA操作手机屏幕的参数.
7、整体运行效果如图:
优化方案
WDA屏幕图片接口及控制效果优化
Num
01
原生的WDA中事件驱动速度使用同步机制,在一定程度上影响了手机的响应速度,于是在代码中做修改,去掉同步机制.提高响应速度.
Num
02
**Ios-minicap的重要缺陷在于:**一台PC只能支持一台手机的图片传输,目前stf团队尚未解决多台设备的问题.不符合目前开测平台的大量真机远控需求.**并且minicap的启动会杀掉WDA的test进程,造成两者的启动顺序必须严格控制.给程序增加了不稳定性及操作的复杂性.**于是借助iOS开发团队的工程师对WDA代码进行了修改:添加了快速截屏的功能,并增加一个socket子线程(端口号:8888)可以对外传输图片.因此新方案代码修改如下:
1.新增端口映射:iproxy 8888 8888. 用于用于接收手机端的图片传送.多个手机连接时,需要多个PC端口映射到手机端的8888端口.
2.图片数据没有minicap中的全局header,每张图片的数据结构为:
其中Data_length标明后续的Pic_data的数据长度.
3.图片接收及保存,【【微信】】的建立与minicap相同.多台设备连接时,需要根据手机id识别映射的端口,根据其端口收取图片数据和传输操作数据.
两台设备同时操控的效果图如下:
方案对比
优化方案的优势
能够支持一台PC同时连接多台手机,截图功能和操控功能均能够完全独立;
排除minicap对WDA进程的干扰;
优化方案的劣势
WDA截图及传输的速度不如minicap,造成屏幕显示的帧率不如minicap,帧率差别约在30%,在显示效果上会失去一定的流畅度.
参考文献
【藏经阁】iOS多机远程控制技术:
WebDri【【微信】】简介:
vivo x9s plus忘记密码怎么解锁 vivo恢复出厂设置忘记vivo密码
1、情况一忘记锁屏密码VIVO手机怎样解锁,但可以用指纹或人脸进入桌面请备份数据VIVO手机怎样解锁,连接网络,进入手机云服务登录账号查找设备开启“查找手机”,使用其VIVO手机怎样解锁他手机或电脑打开vivo云服务输入vivo账号密码查找手机清空手机点击“确定”重置手机并;vivo手机密码忘VIVO手机怎样解锁了解锁步骤如下操作环境【【微信】】,OriginOS系统等1首先按着手机关机键,点击重启2点击重启后,一直按着音量键,直到进入fastboot模式,选择进入recovery3选择清除数据4清除成功后点击返回5;可以到VIVO官网自助找回密码,具体方法如下一打开百度搜索,搜索“VIVO”,搜索后找到VIVO手机官网然后点击进入二进入VIVO手机官网以后,在页面的右上角找到“登录”一项,然后点击进入三进入VIVO账户登录界面后;vivo手机忘记锁屏密码图案锁处理方法一当连续输错5次锁屏密码或图案密码后,手机屏幕将弹出手机已锁定二可点击屏幕上的忘记密码,接着跳转至身份验证界面三输入已设置的密保问题答案,待屏幕提示身份;部分机型可使用Recovery恢复模式重置手机,此操作会清除手机中的所有数据,包括密码如果在忘记密码前备份过手机数据,可以在重置手机后恢复相关数据如果没有备份过数据,将无法保留手机上的数据,数据一旦被清除将无法恢复;选择“清除数据”进入选择界面,有“清除缓存”“清除所有数据”两个选项清除缓存数据等于英文Wipe cache partition清除所有数据等于英文Wipe data factory reset,刷机完成,重启即可vivo手机强制解锁的多种方法;1请备份好数据之后,连接网络,进入云服务登录帐号查找设备开启“查找设备”,使用其他设备打开vivo云服务网页输入vivo帐号密码查找设备清除设备点击“确定”进行重置,清除所有数据,从而清除锁屏密码情况。
2、如果确实忘记VIVO手机怎样解锁了,可以点击屏幕右下角的“忘记了图案”,此时根据问题输入正确的答案即可解锁,解锁后需重新设置图形锁或密码锁如果设置的问题答案也忘记了的话,需要带手机到vivo售后服务中心进行解密,去vivo售后服务中心解密;在需要输入vivo账号密码的界面输入自己设置的密码即可解锁,若是vivo账号密码忘记了,可以在vivo官网点击小人图像的图标选择忘记密码输入账号通过绑定的验证方法找回找好密码即可具体操作步骤1在浏览器里面搜索“vivo。
3、这里以【【微信】】手机为例,设置方法如下一首先在手机桌面点击“设置”二然后在设置界面选择“面部与密码”选项三接着打开“更改密码”进入四进入以后选择“密码选项”五然后点击“图案密码”六最后;Vivo手机可以通过盲开进入到系统界面清除数据,将手机在系统界面强制恢复出厂设置,以vivoX7手机为例,具体的操作步骤如下1长按手机的电源键,然后点击关机图标,将手机调整到关机状态如下图所示2在手机关机状态下。
4、四前往服务中心处理 如果经以上方法仍不能解锁手机,请携带购机凭证和手机前往vivo客户服务中心刷机解锁服务中心以刷机解锁的方式操作后,手机内的所有数据将无法保留温馨提示建议前往时,提前电话咨询服务中心工作人员;1在输入密码界面连续输错5次锁屏密码,屏幕有“忘记密码”选项,点击“忘记密码”,填写以前设置的密保答案进行验证,对锁屏密码进行修改若忘记了锁屏密保,之前开启了查找设备功能,可尝试使用其他手机或者电脑打开vivo云服务;1首先我们只能试试关机键只要按住电源键三秒左右就出来重启和关机的页面2接着在关机状态下,同时按下音量键和电源键,五秒后,手机会有显示,速度松开电源键,音量键不松开3然后恢复出厂设置页面就出来了,出来;1进入Recovery请您在关机状态下长按电源键+音量加键,看到vivo或QOO字样松手进入【【微信】】模式,按“音量”移动光标至“进入RECOVERY”,按“电源键”确认注不同机型操作略有差异,具体请参考以下对应操作方法;若以上方法仍然没有帮助到,请携带购机凭证身份证和手机前往vivo客户服务中心刷机解锁服务中心以刷机解锁的方式操作后,设备内的所有数据将无法保留vivo客户服务中心地址进入vivo官网vivo商城APP我的网点查询,选择。
5、1在输入密码界面连续输错5次锁屏密码,弹出“手机已锁定”后,可点击屏幕上的“忘记密码”若是设置的图案密码,5次错误密码需至少4个点且每次输入的密码均不同注若使用FBE加密技术的机型则需到vivo客户服务中心。