VADBLIB - V ADB Library
VAdbLib allows you to use ADB commands in your V language projects.
Installation
v install evowizz.vadblib
Example
import evowizz.vadblib
fn main() {
// Find ADB, and create a new ADB instance
adb_path := vadblib.find_adb() or { panic(err) }
adb := vadblib.AndroidDebugBridge.new(adb_path) or { panic(err) }
// Equivalent to `adb start-server`, you can also pass your own port
adb.start() or { panic(err) }
// Get the list of devices
devices := adb.devices() or { panic(err) }
if devices.len == 0 {
println('No devices found')
return
}
// Get the first device
current := devices[0]
// This is equivalent to `adb -s <serial> shell getprop ro.build.version.release`
release := current.run_shell('getprop ro.build.version.release') or { panic(err) }
println('Android ${release}')
}
Documentation
VAdbLib is a simple wrapper around some of the most basic ADB commands. It is not meant to be a complete wrapper. Currently, the following commands are supported:
-
adb start-server
: adb.start(<port>)
-
adb kill-server
: adb.kill()
Note: You can also restart the server with
adb.restart(<port>)
-
adb <target> <command>
: adb.run(<command>, <serial>, <transport_id>, <usb>)
Note: If more than one target is provided (for example:
adb.run(command: "get-state", serial: "123", transport_id: "1", usb: true)
-
adb -s <serial> pull <remote> <local>
: device.pull(<sources>, <destination>, <keep_attributes>, <compression>)
-
adb -s <serial> push <local> <remote>
: device.push(<sources>, <destination>, <sync>, <compression>)
-
adb devices -l
: adb.devices()
-
adb -s <serial> <command>
: device.run(<command>)
-
adb -s <serial> shell <command>
: device.run_shell(<command>)
-
adb -s <serial> install-multi-package <args> <files>
: device.install(<files>, <replace>, <test>, <downgrade>, <partial>, <grant-permissions>)
-
adb -s <serial> install-multiple <args> <files>
: device.install_multiple(<files>, <replace>, <test>, <downgrade>, <partial>, <grant-permissions>)
Note:
install-multi-package
install
device.install
adb install
VAdbLib may also run some additional commands in the background, such as
adb -s <serial> features
License
Copyright 2023 Dylan Roussel
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.