DalaDev.Bench.ADBHelper (dala_dev v0.0.5)

Copy Markdown View Source

Common ADB operations for battery benchmarking.

Centralizes ADB command execution to reduce duplication across battery bench and preflight modules.

Summary

Functions

Gets the PID of an app on an Android device.

Auto-detects a connected Android device.

Checks if ADB is available.

Gets the battery level from an Android device.

Checks if an app is installed on an Android device.

Checks if ADB is available and a device is reachable.

Checks if a device is reachable via ADB.

Enables WiFi ADB for a device.

Ensures local Erlang distribution is started.

Runs an ADB command and returns the output.

Runs an ADB command and returns the raw output (including stderr).

Sets up ADB tunnels for device communication.

Gets the WiFi IP for a device.

Functions

app_pid(serial, bundle)

@spec app_pid(String.t(), String.t()) ::
  {:ok, String.t()} | {:error, String.t()} | :app_dead

Gets the PID of an app on an Android device.

auto_detect_device()

@spec auto_detect_device() :: String.t() | nil

Auto-detects a connected Android device.

available?()

@spec available?() :: boolean()

Checks if ADB is available.

battery_level(serial)

@spec battery_level(String.t()) :: {:ok, non_neg_integer()} | {:error, String.t()}

Gets the battery level from an Android device.

check_app_installed(serial, bundle)

@spec check_app_installed(String.t(), String.t()) ::
  {:ok, String.t()} | {:error, String.t()}

Checks if an app is installed on an Android device.

check_device(serial)

@spec check_device(String.t() | nil) :: {:ok, String.t()} | {:error, String.t()}

Checks if ADB is available and a device is reachable.

Returns {:ok, serial} if a device is found, {:error, reason} otherwise.

device_ok?(device)

@spec device_ok?(String.t()) :: boolean()

Checks if a device is reachable via ADB.

enable_wifi_adb(serial)

@spec enable_wifi_adb(String.t()) :: :ok | {:error, String.t()}

Enables WiFi ADB for a device.

ensure_local_dist()

@spec ensure_local_dist() :: :ok

Ensures local Erlang distribution is started.

run(serial, args)

@spec run(String.t(), [String.t()]) :: {:ok, String.t()} | {:error, String.t()}

Runs an ADB command and returns the output.

run_raw(serial, args)

@spec run_raw(String.t(), [String.t()]) :: String.t()

Runs an ADB command and returns the raw output (including stderr).

setup_tunnels(serial)

@spec setup_tunnels(String.t()) :: :ok

Sets up ADB tunnels for device communication.

wifi_ip(serial)

@spec wifi_ip(String.t()) :: {:ok, String.t()} | {:error, String.t()}

Gets the WiFi IP for a device.