-
Notifications
You must be signed in to change notification settings - Fork 216
zh_CN_Basic入门
1.1 DeviceSerialNumber
1.2 DeviceState
1.3 DeviceBasicInfo
1.4 一切都需要指定设备
1.5 命令对象
1.6 调用静态方法
1.7 调用封装类,执行ADB命令
1.8 获取设备信息
1.9 更多的探索
- 此文档根据SDKV7编写
- 此文仅仅只是引导
AutumnBox.Basic是对ADB工具箱进行的C#封装,实现方法请自行阅读源代码
想要进行基于ADB的高端操作,你需要使用AutumnBox.Baic中的封装类与函数
让我们开始学习使用AutumnBox.Basic吧
AutumnBox.Basic.Device.DeviceSerialNumber
是对设备序列号的面向对象封装
在ADB调试时,任何设备都有SerialNumber(SN),这个SN可以用来在执行ADB命令时指定具体设备
在AutumnBox.Basic中的用途也是这个
AutumnBox.Basic.Device.DeviceState
是一个描述设备状态的枚举
- DeviceState.Poweron代表设备开机状态
- DeviceState.Recovery代表设备处于恢复模式
- 更多枚举请自行在VS内按F12跳转到定义
众所周知,adb devices命令将会输出已连接的设备
输出示例:
List of devices attached
0xfeaac recovery
192.168.0.5:5555 device
而AutumnBox.Basic中,会将每条已连接设备的信息解析为DeviceBasicInfo
对象
属性 | 类型 | 用途 |
---|---|---|
Serial | DeviceSerialNumber |
设备序列号(也可能是IP之类的) |
State | DeviceState |
设备当前状态 |
- 你无需关心如何获取
DeviceBasicInfo
结构体对象
public override void OnStartCommand(StartArgs args)
{
//你可以在args对象中获取目标设备的信息
DeviceBasicInfo deviceInfo = args.Device;
}
须知: adb中文说明书-为adb命令指定目标设备
在AutumnBox.Basic设计之初就考虑到了多设备连接的需求,因此在做大部分操作时都需要指定具体的设备
//将指定设备重启到fastboot模式
Rebooter.Reboot(deviceSN,RebootOptions.Fastbot);
//获取设备Product信息
var buildGetter = new DeviceBuildPropGetter(deviceSN);
string product = buildGetter.GetProduct();
Console.WriteLine(product);//MI 6
AutumnBox.Basic.Executer.Command
是对命令的封装
用法示例:
将adb -s 0fx0fecc reboot
命令转化为Command对象
var cmd = Command.MakeForAdb(deviceSerialNumber,"reboot");
更多用法,请自行在VS内按F12前往代码定义查看注释
//检测包名为com.miui.fm的应用是否已安装
//一切都要指定设备
PackageManager.IsInstall(deviceSN,"com.miui.fm");
现在,我们要执行一条命令:adb -s 某个设备的SN install xxx.apk
- 构建一个Command对象
var command = Command.MakeForAdb(deviceSN,"install xxx.apk");
- 构建一个命令执行器对象
var executer = new CommandExecuter();
- 执行命令并获取完整输出以及返回值
var output = executer.Execute(command);
- 打印返回值
Console.WriteLine(output.ToString());
/*
Install successful!
*/
我封装了一些对象用于获取设备信息,但是可能不够,到时就看你自己实现了
示例: 获取安卓版本
/*在安卓中,安卓版本等信息存储在/system/build.prop中
而你可以使用DeviceBuildPropGetter对象来进行获取*/
var getter = new BuildPropGetter(deviceSN);
Version version = getter.GetAndroidVersion();
Log(version.ToString());//8.0.0
读到这里,你是否已经了解了AutumnBox.Basic的使用门道了呢?
记住:
- 任何于设备相关的操作都需要指定设备
- AutumnBox.Basic中有大量基于ADB实现的类和方法可供调用
- 想要玩的更好,一定要去阅读AutumnBox.Basic的注释或源代码,相信我,不难!