We provide a single client SDK for Android, the Android SDK.
The Android SDK is a Java abstraction on top of the underlying
nabto_client.h known from the Plain C Nabto Client SDK library.
The Android SDK is best used with Maven Central and Gradle.
Client: Clients are often apps where this library is embedded inside. The clients can make connections to devices. Using the servers.
Device: Devices is often embedded devices running the Nabto Embedded SDK, e.g. a heating control system or an ip camera.
Server: Servers are hosted in datacenters and makes it possible to create connections between the clients and devices.
Connections: The connection is the connection from this client to a device. The connection is end to end encrypted. The connection can use several channels to establish the connection to the device. There are three classes of channels.
Local channels: These are made using mdns discovery of the device. If the device is found on the local network the ips and ports it annunces is used to make the connection.
Remote channels: These are made using a central service, which the devies is also connected to. The client uses the central mediation service to create an initial remote connection to the device. When the remote connection is established the client and device tries to upgrade the connection to a p2p connection using UDP holepunching.
Direct candidate channels: A direct candidate channel is a channel which the user of this api adds through the direct candidates api. This is useful if the device is found locally or remotely using some other mechanism than the built in local and remote channels.