jadb/README.md

99 lines
3.7 KiB
Markdown
Raw Normal View History

2017-04-16 21:49:54 +02:00
# JADB #
2013-07-25 20:48:46 +02:00
ADB client implemented in pure Java.
The Android Debug Bridge or ADB for short it a client-server architecture used to install android apps from an IDE or command line and to debug apps, etc.
The Android SDK Tools is available for the major platforms (Mac, Windows & Linux) and in there is a command line tool called adb that implements the ADB protocol.
This projects aims at providing an up to date implementation of the ADB protocol.
2013-07-25 21:56:30 +02:00
2016-03-02 21:55:05 +01:00
[![Build Status](https://travis-ci.org/vidstige/jadb.svg?branch=master)](https://travis-ci.org/vidstige/jadb)
2017-06-11 02:14:42 +02:00
[![](https://jitpack.io/v/vidstige/jadb.svg)](https://jitpack.io/#vidstige/jadb)
2016-03-02 21:55:05 +01:00
2013-07-25 21:56:30 +02:00
## Example ##
Usage cannot be simpler. Just create a `JadbConnection` and off you go.
```java
JadbConnection jadb = new JadbConnection();
List<JadbDevice> devices = jadb.getDevices();
```
2014-03-20 11:40:28 +01:00
Make sure the adb server is running. You can start it by running `adb` once from the command line.
2013-07-25 21:56:30 +02:00
It's very easy to send and receive files from your android device, for example as below.
```java
JadbDevice device = ...
device.pull(new RemoteFile("/path/to/file.txt"), new File("file.txt"));
```
Some high level operations such as installing and uninstalling packages are also available.
```java
JadbDevice device = ...
new PackageManager(device).install(new File("/path/to/my.apk"));
```
2013-07-25 21:56:30 +02:00
## Protocol Description ##
An overview of the protocol can be found here: [Overview](https://github.com/cgjones/android-system-core/blob/master/adb/OVERVIEW.TXT)
A list of the available commands that a ADB Server may accept can be found here:
[Services](https://github.com/cgjones/android-system-core/blob/master/adb/SERVICES.TXT)
## Using JADB in your application ##
2016-05-23 16:14:30 +02:00
Since version v1.1 Jadb support [maven](https://maven.apache.org/) as a build system. Although this project is not presented in official apache maven
repositories this library can be used as dependencies in your maven/gradle project with the help of [jitpack](https://jitpack.io).
2016-07-28 22:29:51 +02:00
[Jitpack](https://jitpack.io) is a system which parses github public repositories and make artifacts from them.
You only need to add [jitpack](https://jitpack.io) as a repository to let maven/gradle to search for artifacts in it, like so
```
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
```
After that you will need to add actual dependency. [Jitpack](https://jitpack.io) takes groupId, artifactId and version id from repository name,
2016-07-28 22:29:51 +02:00
project name and tag ignoring actual values from pom.xml. So you need to write:
```
<dependency>
<groupId>com.github.vidstige</groupId>
<artifactId>jadb</artifactId>
<version>v1.0.1</version>
</dependency>
```
## Troubleshooting
If you cannot connect to your device check the following.
- Your adb server is running by issuing `adb start-server`
- You can see the device using adb `adb devices`
If you see the device in `adb` but not in `jadb` please file an issue on https://github.com/vidstige/jadb/.
### Workaround for Unix Sockets Adb Server
Install `socat` and issue the following to forward port 5037 to the unix domain socket.
```bash
socat TCP-LISTEN:5037,reuseaddr,fork UNIX-CONNECT:/tmp/5037
```
## Contributing ##
2016-07-28 22:42:58 +02:00
This project would not be where it is, if it where not for the helpful [contributors](https://github.com/vidstige/jadb/graphs/contributors)
supporting jadb with pull requests, issue reports, and great ideas. If _you_ would like to
contribute, please read through [CONTRIBUTING.md](CONTRIBUTING.md).
## Authors ##
Samuel Carlsson <samuel.carlsson@gmai.com>
See [contributors](https://github.com/vidstige/jadb/graphs/contributors) for a full list.
## License ##
This project is released under the Apache License Version 2.0, see [LICENSE.md](LICENSE.md) for more information.