51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1690|回复: 0
打印 上一主题 下一主题

UiAutomator2 Server 运行原理分析

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-10 14:57:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
简单概括一下:

appium-uiautomator2-server(https://github.com/appium/appium-uiautomator2-server) 是针对Google推出的
UIAutomator V2。在这之前,Appium通过appium-android-bootstrap实现与UIAutomator v1的交互
UiAutomator2修复了v1中遇到的大多数问题,最重要的是实现了与Android系统更新的分离
ps. 我们都知道appium只有在uiautomator2下可以实现对toast的识别,那是因为Google新增了AccessibilitySer
vice服务,重写该服务可以实现对Notification和Toast内容的捕捉

appium-uiautomator2-server



通信模块使用了Netty Server,较之bootstrap使用的ServerSocket,Netty是一个高性能、异步驱动的NIO框架,
占用内存少,性能更好。
运行原理

客户端通过传递desired capabilities给appium node server来创建一个session, appium server根据automationN
ame去启动对应的driver,默认是android-driver。
若automationName设为UIAutomator2,appium会调用appium-uiautomator2-driver,同时将uiautomator2 ser
ver的两个apk安装到测试设备上
appium-uiautomator2-server-vx.x.x.APK,执行handlers
appium-uiautomator2-server-debug-androidTest.apk,只有一个test,用于启动server


AppiumServlet ,管理请求的路由,将driver发过来的请求转发给对应Handler.
Handler,调用UiAutomator V2去执行指定操作,操作的结果经AppiumResponse统一封装
AppiumResponse,操作结果返回给appium-uiautomator2-driver,再将结果返给客户端

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-17 22:31 , Processed in 0.069751 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表