Skip to main content

droidrun_core/
lib.rs

1//! # droidrun-core
2//!
3//! Android device automation core library.
4//!
5//! Provides device drivers, Portal APK management, and UI state processing
6//! for controlling Android devices programmatically.
7//!
8//! ## Usage
9//!
10//! ```no_run
11//! use droidrun_core::driver::android::AndroidDriver;
12//! use droidrun_core::driver::DeviceDriver;
13//!
14//! #[tokio::main]
15//! async fn main() -> Result<(), Box<dyn std::error::Error>> {
16//!     let mut driver = AndroidDriver::new(None, true);
17//!     driver.connect().await?;
18//!
19//!     // Take screenshot
20//!     let png = driver.screenshot(true).await?;
21//!     std::fs::write("screen.png", &png)?;
22//!
23//!     // Tap
24//!     driver.tap(540, 1200).await?;
25//!
26//!     // Type text
27//!     driver.input_text("hello", false).await?;
28//!
29//!     Ok(())
30//! }
31//! ```
32
33pub mod driver;
34pub mod error;
35pub mod helpers;
36pub mod portal;
37pub mod ui;
38
39// Re-exports for convenience
40pub use driver::android::AndroidDriver;
41pub use driver::recording::RecordingDriver;
42pub use driver::{Action, AppInfo, DeviceDriver, Point};
43pub use error::{DroidrunError, Result};
44pub use portal::client::PortalClient;
45pub use portal::manager::PortalManager;
46pub use ui::filter::{ConciseFilter, TreeFilter};
47pub use ui::formatter::{IndexedFormatter, TreeFormatter};
48pub use ui::provider::AndroidStateProvider;
49pub use ui::state::{Element, PhoneState, ScreenDimensions, UIState};