use adb_kit::{ADB, prelude::*};
fn main() -> ADBResult<()> {
let adb = ADB::new(None);
let devices = adb.list_devices()?;
if devices.is_empty() {
println!("没有连接的设备");
return Ok(());
}
let device_id = &devices[0].id;
println!("使用设备: {}", device_id);
let apps = adb.list_packages(device_id, false, true)?;
println!("已安装的第三方应用数量: {}", apps.len());
if !apps.is_empty() {
let app = &apps[0];
println!("选择应用: {}", app);
let info = adb.get_package_info(device_id, app)?;
println!("应用信息:");
println!(" 版本名称: {:?}", info.version_name);
println!(" 版本代码: {:?}", info.version_code);
println!(" 安装时间: {:?}", info.install_time);
println!(" 权限数量: {}", info.permissions.len());
let (running, pid) = adb.is_package_running(device_id, app)?;
println!("应用运行状态: {}, PID: {:?}", running, pid);
if !running {
println!("启动应用...");
let success = adb.start_app(device_id, app, None)?;
println!("启动结果: {}", success);
std::thread::sleep(std::time::Duration::from_secs(2));
let (running, pid) = adb.is_package_running(device_id, app)?;
println!("应用运行状态: {}, PID: {:?}", running, pid);
}
if running {
println!("停止应用...");
adb.stop_app(device_id, app)?;
std::thread::sleep(std::time::Duration::from_secs(1));
let (running, _) = adb.is_package_running(device_id, app)?;
println!("应用运行状态: {}", running);
}
}
Ok(())
}