patagona.AdbClient
2.1.0
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package patagona.AdbClient --version 2.1.0
NuGet\Install-Package patagona.AdbClient -Version 2.1.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="patagona.AdbClient" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add patagona.AdbClient --version 2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: patagona.AdbClient, 2.1.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install patagona.AdbClient as a Cake Addin
#addin nuget:?package=patagona.AdbClient&version=2.1.0
// Install patagona.AdbClient as a Cake Tool
#tool nuget:?package=patagona.AdbClient&version=2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
AdbClient.NET
A .NET Client for the Android Debug Bridge (ADB)
Features
- Simple
- Thread-Safe
- Implemented Services:
- GetHostVersion
- GetDevices
- TrackDevices
- Sync
- Push
- Pull
- List
- Stat
- StatV2
- Execute
Compared to madb / SharpAdbClient
- Pros:
- Simple
- Thread-Safe
- Async
- CancellationToken support
- Cons:
- Lots of services not (yet) implemented (pull requests are welcome)
Examples
Get ADB host version
var adbClient = new AdbServicesClient();
int hostVersion = await adbClient.GetHostVersion();
Get Devices
var adbClient = new AdbServicesClient();
IList<(string Serial, string State)> devices = await adbClient.GetDevices();
Track Devices
This tracks all device changes until the CancellationToken is cancelled (in this case, for 60 seconds)
var adbClient = new AdbServicesClient();
var cts = new CancellationTokenSource(60000);
await foreach ((string Serial, string State) deviceStateChange in adbClient.TrackDevices(cts.Token))
{
[...]
}
List root directory
var adbClient = new AdbServicesClient();
using(var syncClient = await adbClient.GetSyncClient("abcdefghijklmnop"))
{
IList<StatEntry> entries = syncClient.List("/");
}
Execute command
Simple
var adbClient = new AdbServicesClient();
int exitCode = await adbClient.Execute("abcdefghijklmnop", "touch", new string[] { "/storage/emulated/0/test.txt" }, null, null, null);
With stdout/stderr redirection
var adbClient = new AdbServicesClient();
using var stdout = new MemoryStream();
using var stderr = new MemoryStream();
int exitCode = await adbClient.Execute("abcdefghijklmnop", "ls", new string[] { "-la", "/storage/emulated/0/test.txt" }, null, stdout, stderr);
if (exitCode != 0)
throw new Exception(Encoding.UTF8.GetString(stderr.ToArray()));
Console.WriteLine(Encoding.UTF8.GetString(stdout.ToArray())); // prints directory listing
With everything redirected
var adbClient = new AdbServicesClient();
using var stdin = new MemoryStream(Encoding.UTF8.GetBytes("Hello World"));
using var stdout = new MemoryStream();
using var stderr = new MemoryStream();
int exitCode = await adbClient.Execute("abcdefghijklmnop", "cat", new string[] {}, stdin, stdout, stderr);
if (exitCode != 0)
throw new Exception(Encoding.UTF8.GetString(stderr.ToArray()));
Console.WriteLine(Encoding.UTF8.GetString(stdout.ToArray())); // prints "Hello World"
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.1
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
- feat: add StatV2 support (List/Stat size overflows above 4 GiB)