Skip to main content

Android UI inspection and automation tool

Project description

Android View Scope

Modern Android UI element inspector, similar to weditor functionality, built with Vue.js 3 + FastAPI

Features

  • Modern Tech Stack - Vue.js 3 + Element Plus + FastAPI
  • Device Management - Auto-detect and manage Android devices
  • Real-time Screenshots - High-quality PNG screenshot capture
  • Interactive Element Selection - SVG interaction layer, click to select UI elements
  • UI Hierarchy Structure - Complete interface hierarchy tree display
  • Code Generation - Auto-generate uiautomator2 locator code
  • Multiple Locator Strategies - Resource-ID, text, XPath and other methods

Project Structure

viewscope/
├── frontend/          # Vue.js 3 前端项目
│   ├── src/
│   │   ├── views/     # 页面组件
│   │   ├── stores/    # 状态管理 (Pinia)
│   │   └── components/
│   ├── package.json
│   └── vite.config.js
├── backend/           # FastAPI 后端项目  
│   ├── main.py        # 应用入口
│   ├── core/          # 核心模块
│   │   ├── device_manager.py  # 设备管理
│   │   ├── ui_analyzer.py     # UI分析
│   │   └── code_generator.py  # 代码生成
│   ├── api/           # API路由
│   │   ├── devices.py
│   │   ├── screenshot.py
│   │   └── ...
│   └── requirements.txt
├── start.bat          # 一键启动脚本
└── README.md

Quick Start

One-Click Launch (Recommended)

Simply install via pip and run:

pip install ViewScope
viewscope

The command will automatically:

  1. Start backend API service (port 8060+)
  2. Launch web interface in browser

Manual Development Setup

Backend

cd backend
pip install -r requirements.txt
python main.py

Frontend

cd frontend
npm install
npm run dev

Prerequisites

System Requirements

  • Windows 10/11 / macOS / Linux
  • Python 3.8+
  • Android SDK (ADB available)

Device Requirements

  • Android 4.4+
  • USB debugging enabled
  • Device connected via ADB

Environment Verification

# Check Python
python --version

# Check ADB
adb version

# Check device connection
adb devices

Usage

  1. Launch Application

    • Run viewscope command
    • Browser opens automatically
  2. Connect Device

    • Select device from top toolbar
    • Click "Refresh Current View" button
  3. Element Selection

    • Click any UI element in screenshot
    • Element details show in right panel
  4. Code Generation

    • Switch to "Code Generation" tab
    • View auto-generated uiautomator2 code
    • Click "Copy Code" button
  5. UI Hierarchy View

    • Switch to "UI Hierarchy" tab
    • Browse complete interface tree structure
    • Use search to locate specific elements

API Documentation

After starting backend service, visit http://localhost:8060/docs for complete API documentation.

Main Endpoints

  • GET /api/devices - Get device list
  • POST /api/screenshot - Take screenshot and get UI structure
  • GET /api/ui-hierarchy - Get UI hierarchy structure
  • POST /api/code/generate - Generate locator code

Troubleshooting

Common Issues

  1. Device Not Detected

    # Check ADB connection
    adb devices
    # Restart ADB service
    adb kill-server
    adb start-server
    
  2. Screenshot Failed

    • Ensure device has authorized USB debugging
    • Check if device is locked
    • Try reconnecting device
  3. Frontend Cannot Access Backend

    • Check if backend started on port 8060
    • Confirm firewall settings
    • Check browser console errors
  4. Dependency Installation Failed

    # Python dependencies
    pip install -r requirements.txt -i https://pypi.douban.com/simple
    

Development

Tech Stack

  • Frontend: Vue.js 3, Element Plus, SVG, Pinia
  • Backend: FastAPI, uiautomator2, Pillow
  • Build Tools: Vite, Python uvicorn

Development Environment

# Backend hot reload
uvicorn main:app --reload --host 0.0.0.0 --port 8060

# Frontend hot reload
npm run dev

Build & Deploy

Frontend Build

cd frontend
npm run build

Package Distribution

pip install build twine
python -m build
twine upload dist/*

Contributing

  1. Fork this repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

License

This project is licensed under MIT License - see LICENSE file for details

Acknowledgments


For issues or suggestions, welcome to submit Issues or Pull Requests!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

viewscope-1.1.7.tar.gz (461.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

viewscope-1.1.7-py3-none-any.whl (469.7 kB view details)

Uploaded Python 3

File details

Details for the file viewscope-1.1.7.tar.gz.

File metadata

  • Download URL: viewscope-1.1.7.tar.gz
  • Upload date:
  • Size: 461.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for viewscope-1.1.7.tar.gz
Algorithm Hash digest
SHA256 11d0f1b14313f62079d67592ab722c02774bf563c712b9520c6ebd681ca44624
MD5 5e74d47e79af75c8dee64ec78548d106
BLAKE2b-256 9aed11904001e5086e2aa984db7f594e42f20695ca82af6979bd236ba6adf817

See more details on using hashes here.

File details

Details for the file viewscope-1.1.7-py3-none-any.whl.

File metadata

  • Download URL: viewscope-1.1.7-py3-none-any.whl
  • Upload date:
  • Size: 469.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for viewscope-1.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 3b0c5202f5ffdfcfc83cbb122569d73d919a77db50da8caff18c2fedd1cee8fe
MD5 106f6d67c24929f27ace8af61eaf8cbe
BLAKE2b-256 3793490791c48dd88911af1ff2be4f7296d9a83e9fa022b17ca56ec68cb43a36

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page