app_management/
app_management.rs1use adb_kit::{ADB, prelude::*};
2
3fn main() -> ADBResult<()> {
4 let adb = ADB::new(None);
5
6 let devices = adb.list_devices()?;
8 if devices.is_empty() {
9 println!("没有连接的设备");
10 return Ok(());
11 }
12
13 let device_id = &devices[0].id;
14 println!("使用设备: {}", device_id);
15
16 let apps = adb.list_packages(device_id, false, true)?;
18 println!("已安装的第三方应用数量: {}", apps.len());
19
20 if !apps.is_empty() {
21 let app = &apps[0];
22 println!("选择应用: {}", app);
23
24 let info = adb.get_package_info(device_id, app)?;
26 println!("应用信息:");
27 println!(" 版本名称: {:?}", info.version_name);
28 println!(" 版本代码: {:?}", info.version_code);
29 println!(" 安装时间: {:?}", info.install_time);
30 println!(" 权限数量: {}", info.permissions.len());
31
32 let (running, pid) = adb.is_package_running(device_id, app)?;
34 println!("应用运行状态: {}, PID: {:?}", running, pid);
35
36 if !running {
38 println!("启动应用...");
39 let success = adb.start_app(device_id, app, None)?;
40 println!("启动结果: {}", success);
41
42 std::thread::sleep(std::time::Duration::from_secs(2));
44
45 let (running, pid) = adb.is_package_running(device_id, app)?;
47 println!("应用运行状态: {}, PID: {:?}", running, pid);
48 }
49
50 if running {
52 println!("停止应用...");
53 adb.stop_app(device_id, app)?;
54
55 std::thread::sleep(std::time::Duration::from_secs(1));
57
58 let (running, _) = adb.is_package_running(device_id, app)?;
60 println!("应用运行状态: {}", running);
61 }
62 }
63
64 Ok(())
65}