ADB as a Service (ADBaaS) is a small service that talks to Android ADB, emulator and other Android SDK tools, and provides a HTTP(s) API.
Why creating a small wrapper around ADB and other Android SDK tools? Why implementing a HTTP API? Because a HTTP API is easier to integrate with other softwares for performing tasks like:
- Automated testings
- Running apps (and tests) on several devices simultaneuosly
- Sharing emulators and devices with multiple developers
- Running apps on remote emulators to free up local resources
- List available emulators
- List available devices and emulators
- List applications installed on a device or emulator
- Take a screenshot of the device or emulator (in PNG or Base64)
- Install and uninstall an application
- Revoke or grant permission on an application
- Stream Logcat events in real time
- HTTP(s) in all the endpoints
- API access using API Key
- API health monitoring
-
ANDROID_HOME environment variable should be defined as defined in Android documentation
-
Java 11 or newer
java -jar adbaas.jar
- Changing server port
java -Dserver.port=9090 -jar adbaas.jar
- Setting allowed API Key
java -Dadbaas.api.keys.allowed=fa7166bd-eb36-4299-b04a-f91c7e2e907c -jar adbaas.jar
- You can find online documentation at https://eaceto.github.io/ADBaaS/index.html. There is also a Postman Collection that can be found at the /docs/postman folder in the repository.
- OpenAPI 3.0.0 Spec: https://eaceto.github.io/ADBaaS/openapi/openapi.yaml
- Generating certificates for localhost https://letsencrypt.org/docs/certificates-for-localhost/