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};