Skip to content

Commit 0ec7619

Browse files
docs: Add end-to-end architecture diagram (#1005)
1 parent cd68140 commit 0ec7619

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ Appium UiAutomator2 Driver is a test automation framework for Android devices. A
1010

1111
UiAutomator2 Driver proxies most of the commands to [UiAutomator2 server](https://github.com/appium/appium-uiautomator2-server), which uses Google's [UiAutomator](https://developer.android.com/training/testing/ui-automator) framework under the hood. Some commands are proxied directly to [appium-adb](https://github.com/appium/appium-adb) and other helpers built on top of Android platform tools.
1212

13+
See the [end-to-end architecture diagram](./docs/architecture.md).
14+
1315
> [!IMPORTANT]
1416
> Since major version *5.0.0*, this driver is only compatible with Appium 3. Use the `appium driver install uiautomator2`
1517
> command to add it to your distribution.

docs/architecture.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Architecture
2+
3+
```mermaid
4+
flowchart TD
5+
subgraph ClientSide["Test Client"]
6+
T["Test Code"]
7+
CL["Appium Client Library<br/>(Java / Python / JS / Ruby / C#)"]
8+
end
9+
10+
subgraph ServerHost["Automation Host"]
11+
AS["Appium Server<br/>WebDriver HTTP API"]
12+
XD["UiAutomator2 Driver<br/>(appium-uiautomator2-driver)"]
13+
ADBM["ADB + Port Forwarding"]
14+
CDM["Chromedriver Management<br/>(hybrid / webview only)"]
15+
end
16+
17+
subgraph DeviceTarget["Android Device / Emulator"]
18+
U2S["UiAutomator2 Server<br/>(instrumentation HTTP API)"]
19+
UIA["UiAutomator Framework"]
20+
CD["Chromedriver<br/>(in webview context)"]
21+
AUT["Application Under Test"]
22+
end
23+
24+
T --> CL
25+
CL -->|"W3C WebDriver over HTTP"| AS
26+
AS -->|"Forwards session commands to driver"| XD
27+
XD -->|"Install, shell, forward ports"| ADBM
28+
XD -->|"Context switch to WEBVIEW_*"| CDM
29+
ADBM -->|"adb forward (e.g. host:8200 → device:6790)"| U2S
30+
CDM -->|"Chromedriver HTTP"| CD
31+
U2S -->|"UiAutomator APIs"| UIA
32+
UIA -->|"UI interactions + accessibility tree"| AUT
33+
CD -->|"WebDriver in webview"| AUT
34+
```

0 commit comments

Comments
 (0)