Appium3.7 连 安卓平台架构图 和 注意事项

Appium自动化测试安卓平台总体架构图:

注意点

以下注意点面向 Appium3.7

Nodejs版本

大于20.19,小于等于22.x

npm > 10

安卓机Hidden API机制

  1. 安卓 9 引入谷歌原生机制,区分公开 SDK 与系统内部隐藏接口;uiautomator2‑server 做控件抓取大量依赖隐藏接口。hidden_api_policy:系统全局设置,控制 ART 虚拟机拦截隐藏接口的松紧。

  2. Appium 三条 shell 命令

    settings delete global hidden_api_policy_pre_p_apps
    settings delete global hidden_api_policy_p_apps
    settings delete global hidden_api_policy

目的:adb 修改全局系统配置,整机放开 hidden‑api 拦截。

  • Android9:普通 adb 有权限,可以生效。
  • Android10 + 非 root:普通 adb 没有WRITE_SECURE_SETTINGS权限,命令必然报权限拒绝,exit code=255。
  • 海外 ColorOS(OPPO A78)叠加OplusSecurityAgent厂商安全层,再次拦截 adb 操作,无系统开关关闭。
  1. ignoreHiddenApiPolicyError
  • 仅忽略新建 session 阶段上述 3 条 adb 命令执行失败报错,打印警告,不终止 session。
  • 不会修改系统配置,不会解除 hidden‑api 限制,不给 uia2 增加权限
  • 生效条件:
    • Python 客户端:必须options.set_capability("appium:ignoreHiddenApiPolicyError", True);直接赋值对象属性不会下发 cap,直接失效。
    • skip_device_initialization = False;开启该参数,整套初始化逻辑直接跳过,cap 完全无效。
  1. 两个关键 capability 开关
  • skip_server_installation=true:跳过 uiautomator2‑server、test 两个 apk 的 adb 安装与版本校验;手机上 apk 版本必须和电脑驱动版本严格匹配;和 hidden‑api 逻辑无关
  • skip_device_initialization=true:跳过 Appium Settings 安装、执行 hidden‑api 策略 shell 命令;会直接不执行 relaxHiddenApiPolicy 逻辑;普通真机调试不要开启,仅用于预部署完成的批量压测
相关推荐
Tester Kid1 个月前
Appium 元素定位深度讲解:五种方式逐个拆 + Inspector 完整用法
macos·appium·cocoa
U盘失踪了1 个月前
Appium Inspector
appium
Code Man1 个月前
Windows 下使用 Appium
android·windows·appium
祉猷并茂,雯华若锦1 个月前
Appium 3.x安卓按键与通知栏操作全指南
android·appium
祉猷并茂,雯华若锦1 个月前
Appium 3.x实战:获取元素属性全解析
python·appium·自动化
祉猷并茂,雯华若锦1 个月前
Appium 3.x安卓APP企业级安装实战
android·appium
祉猷并茂,雯华若锦1 个月前
Appium 3.x 实战:元素定位与常见错误解析
开发语言·python·appium
进击的雷神2 个月前
埋点skill使用与自动化
appium·自动化·埋点·codex·app自动化