# sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop architecture

> Architecture diagram of the GitHub repository sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-14). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop
- Repository: https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop

## Overview

This is a single-script desktop application for viewing and controlling an Android device over ADB. The user workflow is to connect the device, view captured screen frames, and use GUI buttons or pointer gestures to send device commands; the script also launches a screen-recording process. Navigation, music controls, and app-launch test cases are implemented. Call control is listed in the README but is not present in the sampled script, so that documented capability is shown as unverified. The graph reflects the single-file implementation; no separate call-control implementation was inspected.

Main entry points: [`main.py`](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py) (ADB commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_desktop["Desktop interface"]
  node_gui["Tkinter controls<br/>[main.py]"]
  node_tests["App test cases<br/>[main.py]"]
end

subgraph group_device_control["Device control"]
  node_pointer["Pointer gestures<br/>[main.py]"]
  node_navigation["Navigation keys<br/>[main.py]"]
  node_music["Music controls<br/>[main.py]"]
  node_call_control["Call control"]
  node_adb["ADB commands<br/>[main.py]"]
end

subgraph group_screen_view["Screen viewing"]
  node_capture["Frame capture<br/>[main.py]"]
  node_opencv["OpenCV display<br/>[main.py]"]
  node_mirror["Screen recording<br/>[main.py]"]
end

node_user(("PC user"))
node_android["Android device"]

node_user -->|"uses"| node_gui
node_user -->|"gestures"| node_pointer
node_gui -->|"invokes"| node_navigation
node_gui -->|"invokes"| node_music
node_gui -->|"invokes"| node_tests
node_navigation -->|"sends keyevents"| node_adb
node_music -->|"sends keyevents"| node_adb
node_pointer -->|"sends touch input"| node_adb
node_tests -->|"launches apps"| node_adb
node_adb -->|"controls"| node_android
node_capture -->|"captures frames"| node_adb
node_capture -->|"displays frames"| node_opencv
node_mirror -->|"starts recording"| node_android
node_call_control -.->|"documented control"| node_android

click node_gui "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_tests "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_pointer "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_navigation "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_music "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_adb "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_capture "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_opencv "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"
click node_mirror "https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_gui,node_tests,node_user toneBlue
class node_pointer,node_navigation,node_music,node_call_control,node_adb toneAmber
class node_capture,node_opencv,node_mirror toneMint
class node_android toneIndigo
```

## Components

### Desktop interface

- [Tkinter controls](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`
- [App test cases](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`

### Device control

- [Pointer gestures](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`
- [Navigation keys](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`
- [Music controls](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`
- **Call control**
- [ADB commands](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`

### Screen viewing

- [Frame capture](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`
- [OpenCV display](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`
- [Screen recording](https://github.com/sumionochi/remote-control-of-mobile-screen-projection-and-control-on-pc-laptop/blob/main/main.py): `main.py`

### Other components

- **PC user**
- **Android device**

## Connections

- PC user → Tkinter controls: uses (evidence: `main.py`)
- PC user → Pointer gestures: gestures (evidence: `main.py`)
- Tkinter controls → Navigation keys: invokes (evidence: `main.py`)
- Tkinter controls → Music controls: invokes (evidence: `main.py`)
- Tkinter controls → App test cases: invokes (evidence: `main.py`)
- Navigation keys → ADB commands: sends keyevents (evidence: `main.py`)
- Music controls → ADB commands: sends keyevents (evidence: `main.py`)
- Pointer gestures → ADB commands: sends touch input (evidence: `main.py`)
- App test cases → ADB commands: launches apps (evidence: `main.py`)
- ADB commands → Android device: controls (evidence: `main.py`)
- Frame capture → ADB commands: captures frames (evidence: `main.py`)
- Frame capture → OpenCV display: displays frames (evidence: `main.py`)
- Screen recording → Android device: starts recording (evidence: `main.py`)
- Call control → Android device: documented control (evidence: `README.md`)
