Package selection guidance compiled from public package information, community data, and project usage.
A simple Dart wrapper for the Android Debug Bridge (ADB), enabling programmatic control of Android devices and emulators from Dart applications. It allows developers to execute ADB commands, manage device connections, and interact with Android systems directly within Flutter or other Dart projects. The package supports multiple platforms including Android, iOS, Linux, macOS, and Windows, making it ideal for cross-platform automation and testing workflows. It is particularly useful in CI/CD pipelines and automated testing environments where direct device interaction is required.
Use cases
Automated testing on Android devices
CI/CD pipeline integration
Device management in development workflows
Debugging Android apps programmatically
Running ADB commands from Dart code
Key features
Cross-platform ADB command execution
Simple API for common ADB operations
Supports Android, iOS, Linux, macOS, and Windows
Integration with Flutter and Dart projects
Lightweight and easy to use
Suitable for
Flutter developers needing device automation
Test engineers setting up CI/CD pipelines
DevOps engineers managing Android test environments
Dart developers working with Android devices
Considerations
Requires ADB to be installed on the host system
Limited to ADB functionality; not a full Android SDK replacement
Platform-specific ADB binary handling may require configuration
Not suitable for non-Android device interactions
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Patrol
A powerful, multiplatform E2E UI testing framework for Flutter apps that overcomes the limitations of integration_test by handling native interactions. Developed by LeanCode since 2022, battle-tested and shaped by production-grade experience.
Patrol is an open-source framework created and maintained by LeanCode.
However, if your company wants to scale fast and accelerate Patrol’s
adoption, we offer a set of value-added services on top of the core framework.
[!NOTE]
Patrol 4.7.0 adds Swift Package Manager support for iOS and macOS!
If you migrate your project to SPM, a few small setup changes are needed — see the iOS setup guide for details.
Patrol custom finders
Flutter's finders are powerful, but not very intuitive to use.
We took them and made something awesome.
Thanks to Patrol's custom finders, you'll take your tests from this:
Flutter's default integration_test package can't interact with the OS your
Flutter app is running on. This makes it impossible to test many critical
business features, such as:
granting runtime permissions
signing into the app which through WebView or Google Services
The CLI is needed to enable Patrol's native automation feature in integration
tests. It also makes development of integration tests much faster thanks to [Hot
Restart].
To run widget tests, you can continue to use flutter test.
See .github/WORKFLOWS.md for detailed documentation about all GitHub Actions workflows, including test schedules, Flutter versions, and deployment pipelines.