关于ios:干货一款实用iOS云真机的技术架构是如何搭建的

​目前,市场上有很多App反对iOS9、iOS10,一旦在这些低版本的机器呈现兼容性问题时,想找一台手机来debug就是一件十分难的事,而且iOS零碎的分辨率也越来越多,无论是自动化还是日常的兼容性,都须要有更全面的机型去做兼容性测试。

对挪动开发者来说,无论是开发、调试、测试、还是上线前后测验成果,都离不开测试机,甚至是产品、经营和客服,也时不时须要应用真机进行产品体验、产品经营。传统渠道上,开发者只能通过洽购设施满足各部门测试需要。然而随着业务的倒退,这种形式的缺点越来越凸显:稀缺机型热门、设施数量有余、费用高企、资源利用率不低等。

咱们在调研了业界的诸多云真机解决方案后,发现大家尤其是对iOS端反对得不好,并且免费也绝对较高。历经数个版本的迭代后,友盟+推出了搭载在U-APM利用性能监控平台上的云真机服务,为挪动开发者提供了灵便地测试操作界面,反对ADB调试、WEB近程调试、扫码、抓包、虚构定位等测试性能,并提供了测试报告供开发者后续查看。尤其是在iOS反对上做的十分粗疏和用心。

在屏幕画面方面,友盟+云真机高端机能有15帧左右的比拟晦涩的高画质屏幕传输,并且是秒开、超级省流量。

在用户体验方面,一系列快捷设置如装置ipa、键盘输入、从电脑间接粘贴内容到手机、一键web调试等急速应用

在Mac主机方面,一台i5 的mac mini能反对同时接入20台手机

云真机背地的技术架构揭秘

根本和openSTF相似,mini作为provider,provider去治理手机和解决与云端服务器之间的音讯,连贯到云端服务器,云端服务器可能反对N个provider接入,并且本身能很容易地去做扩大,而云端服务器则负责散发音讯,与做一些websocket服务的代理转发,前端则间接对接云端服务器。

云真机外围驱动

这部分基于阿里巴巴弱小的技术能力齐全自研,不基于WDA,也不基于开源产品,当初市面上很多iOS云真机都会基于WDA或者其余的开源自动化测试框架去做的,可是这些框架的设计初衷并不是做云真机,会引入了很多开发不须要的功能模块。咱们心愿云真机外围驱动局部,能尽量轻量,而且稳固。整个外围驱动局部,最次要分为屏幕捕捉、模仿管制、辅助性能接口。

屏幕捕捉

苦于苹果的限度,这一点是最难冲破,咱们也有尝试过很多计划。 例如:idevicescreenshot,帧率太低了,而且通过逆向发现iOS零碎中的ScreenShorter 不承受任何宽高、图片品质、图片格式的参数,这个办法在iPhoneX之类的高分辨率的机器,截图会更慢,只有1-2帧。

而比拟风行的iOS-minicap计划,这个计划尽管能十分十分高效地实时获取到屏幕内容,但这个计划最大的毛病就是1个mac只能提供到1台iPhone的实时屏幕流,老本切实太高,咱们也有尝试过破解Mac中CoreMediaIO。

framework的iOSScreenCapture协定 (iOS-minicap就是调用了零碎提供的iPhone录屏接口,由AVFoundation与CoreMediaIO提供的),咱们还有尝试过把整个Mac虚拟化去做隔离,让同一个物理机应用多个iOS-minicap,但这些种种计划,最终都以失败告终。

最终计划是,在XCUITest中是应用公有API去截图,这个公有API能最高能达到15帧左右,根本能满足咱们的需要了,再把每一帧编码成视频流,从而节俭流量。 能够感受一下jpg截图与视频流的流量大小比照:

以XS Max为例,每一帧都均匀在90K左右,每一帧的数据传输截图:

与图片比照,肉眼可见的等同画质下的,当编码成视频流后,一样的机型,用雷同的操作和雷同的画面去比照,视频流所需的带宽十分小。

最重要的是,视频流能节俭的不仅仅是服务器进口的流量,还能加重usbmuxd的cpu资源占用。usbmuxd 以后是单过程的,只能应用单个cpu的外围,很容易达到瓶颈,对此咱们还有一个革新就是把usbmuxd改成能充沛应用cpu的每一个外围,进步整个mac的硬件使用率,这部分,咱们当前在独自写文章介绍。

模仿管制

绝对于屏幕获取,点击事件倒是简略很多,能够参考WDA,间接应用XCUITest的公有API触发就能够。 而音讯格局则是沿用回openSTF的格局,provider收到之后间接转发给XCUITest。这里的重点是应用长连贯去与provider做数据交互,而不是HTTP,从而进步整个链路的响应速度。

开发者利用场景

谬误排查:复现用户谬误进行排查修复,测试报告涵盖谬误捕捉信息

网络抓包:对手机的网络行为进行监控测试,排查网络、平安相干等问题

页面调试:一键调试,操作体验能够与Chrome Devtools相媲美

虚构定位:反对寰球高精度虚构定位,实时模仿设施地理位置验证问题

ADB近程:连贯ADB,应用IDE或者命令行的形式进行Android近程调试

更多请点击链接,点击收费应用友盟+云真机服务

扫一扫退出友盟+技术社群

【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元

阿里云限时活动-2核2G-5M带宽-40-100G SSD服务器,特惠价86元/年(原价724元/年,限时99元续购三次),速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据