Skip to content

Releases: klong-dev/AndroidScreenCapture

AndroidScreenCapture v1.0.0 - First Stable Release

Choose a tag to compare

@klong-dev klong-dev released this 01 Sep 21:01

🎉 First Stable Release

AndroidScreenCapture v1.0.0 is now available! This is the first stable release of our .NET library for high-performance Android screenshot capture.

✨ Features

🚀 Dual Capture Methods

  • High-performance scrcpy method: Direct communication with scrcpy-server for fastest capture
  • Fallback screencap method: Traditional Android screencap command for compatibility
  • Persistent connections: Maintain connection to scrcpy-server for rapid consecutive captures

📱 Multi-Device Support

  • Automatic device discovery via ADB
  • Support for multiple connected Android devices
  • Device caching for improved performance
  • Connection status monitoring

🎯 Easy Integration

  • Factory pattern for simple usage
  • Comprehensive API with interfaces
  • Async/await pattern throughout
  • Multiple image formats (PNG, JPEG, BMP, GIF)

🔧 Built on Proven Technology

  • Based on QtScrcpy components
  • Uses official ADB binaries
  • Optimized dependency set (6.2MB vs 100+MB original)
  • Windows-focused with .NET 8.0 compatibility

📦 What's Included

Core Library

  • AndroidScreenCapture.dll - Main library
  • AndroidScreenCapture.xml - XML documentation
  • Complete source code

Dependencies

  • adb.exe - Android Debug Bridge
  • AdbWinApi.dll - Windows ADB API
  • AdbWinUsbApi.dll - USB communication
  • scrcpy-server - High-performance capture server

Documentation

  • README.md - Quick start and API reference
  • HUONG_DAN_SU_DUNG.md - Comprehensive Vietnamese guide
  • USER_GUIDE.md - Detailed English documentation

🚀 Quick Start

using AndroidScreenCapture;

// Simple screenshot capture
var screenshot = await ScreenCaptureFactory.CaptureScreenshotFromFirstDeviceAsync();
screenshot?.Save("screenshot.png");

// Advanced usage with device management
var deviceManager = ScreenCaptureFactory.CreateDeviceManager();
var devices = await deviceManager.GetConnectedDevicesAsync();
var device = deviceManager.GetDevice(devices.First());

// Persistent connection for multiple captures
await device.ConnectToScrcpyServerAsync();
for (int i = 0; i < 10; i++)
{
    var img = await device.CaptureScreenshotFromConnectedServerAsync();
    img?.Save($"capture_{i}.png");
}
await device.DisconnectFromScrcpyServerAsync();

📋 System Requirements

  • .NET 8.0 or later
  • Windows OS (due to System.Drawing.Common)
  • Android device with USB Debugging enabled
  • USB connection or ADB over network

🔧 Installation

  1. Download the release package
  2. Extract to your project directory
  3. Reference AndroidScreenCapture.dll
  4. Ensure dependency files are in the same directory
  5. Add required NuGet packages:
    • System.Drawing.Common (8.0.0)
    • FFMpegCore (5.0.2)

📊 Performance Highlights

  • Standard method: ~500-1000ms per capture
  • Persistent scrcpy: ~50-200ms per capture (after initial connection)
  • Memory efficient: Proper disposal patterns implemented
  • Minimal footprint: Only 6.2MB of dependencies

🐛 Known Issues

  • Platform warnings for System.Drawing.Common (expected on Windows)
  • Requires Windows environment due to image processing libraries
  • Some devices may not support scrcpy method (fallback available)

🔮 Future Plans

  • Cross-platform support investigation
  • Video recording capabilities
  • Additional image processing features
  • Performance optimizations
  • More device compatibility

🙏 Acknowledgments

This library is built upon the excellent work of the QtScrcpy project, extracting and adapting the core screenshot functionality for .NET developers.

📝 License

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


Full Changelog: https://github.com/klong-dev/AndroidScreenCapture/commits/v1.0.0