2013-07-25 20:48:46 +02:00
#JADB#
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)
2013-07-25 21:56:30 +02:00
## Example ##
Usage cannot be simpler. Just create a `JadbConnection` and off you go.
2016-10-29 07:07:37 +02:00
```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
2014-03-20 21:35:36 +01:00
It's very easy to send and receive files from your android device, for example as below.
2016-10-29 07:07:37 +02:00
```java
JadbDevice device = ...
device.pull(new RemoteFile("/path/to/file.txt"), new File("file.txt"));
```
2014-03-20 21:35:36 +01:00
2016-04-28 13:09:49 +02:00
Some high level operations such as installing and uninstalling packages are also available.
2016-10-29 07:07:37 +02:00
```java
JadbDevice device = ...
new PackageManager(device).install(new File("/path/to/my.apk"));
```
2016-04-28 13:09:49 +02:00
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 )
2016-05-23 16:09:01 +02:00
## 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
2016-05-23 16:09:01 +02:00
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
2016-05-23 16:09:01 +02:00
```
< 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:
2016-05-23 16:09:01 +02:00
```
< dependency >
< groupId > com.github.vidstige< / groupId >
< artifactId > jadb< / artifactId >
2017-03-11 13:39:38 +01:00
< version > v1.0.1< / version >
2016-05-23 16:09:01 +02:00
< / dependency >
```
2016-12-20 09:06:44 +01:00
## 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
```
2016-07-28 19:22:01 +02:00
## 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 )
2016-07-28 19:22:01 +02:00
supporting jadb with pull requests, issue reports, and great ideas. If _you_ would like to
contribute, please read through [CONTRIBUTING.md ](CONTRIBUTING.md ).
2016-07-28 22:24:11 +02:00
## 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.