Skip to content

Downloads

The RoadSave Android SDK is distributed as a single AAR that covers both Google Mobile Services (GMS) and Huawei Mobile Services (HMS) devices.


Latest release

Download from the GitHub Releases page:

File Purpose
roadsave-sdk-<version>.aar SDK binary (drop into libs/)
roadsave-sdk-<version>.aar.sha256 SHA-256 checksum
roadsave-sdk-<version>-sources.jar Source attachment for IDE navigation
roadsave-sdk-<version>-javadoc.jar Javadoc/KDoc JAR

Installation

1. Download and verify

# Download (replace <version> with the release you want)
curl -fLO https://github.com/Dynamus-Technologies/roadsave-android-sdk/releases/download/<version>/roadsave-sdk-<version>.aar
curl -fLO https://github.com/Dynamus-Technologies/roadsave-android-sdk/releases/download/<version>/roadsave-sdk-<version>.aar.sha256

# Verify checksum
shasum -a 256 -c roadsave-sdk-<version>.aar.sha256

2. Drop the AAR into your app

Place roadsave-sdk-<version>.aar in your app module's libs/ directory (create it if needed).

3. Declare the AAR and its runtime dependencies

The AAR bundles the GMS/HMS abstraction layer. The GMS and HMS service libraries themselves are compileOnly inside the SDK and must be declared by your app so the correct runtime implementation is resolved per device type.

// settings.gradle — add Huawei repo if targeting HMS devices
dependencyResolutionManagement {
    repositories {
        google()
        mavenCentral()
        maven { url 'https://developer.huawei.com/repo/' }
    }
}

// app/build.gradle (or your SDK-consuming module)
dependencies {
    implementation files('libs/roadsave-sdk-<version>.aar')

    // Networking
    implementation 'com.squareup.okhttp3:okhttp:4.12.0'

    // Coroutines
    implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0'

    // AndroidX
    implementation 'androidx.appcompat:appcompat:1.7.0'
    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'

    // Google Mobile Services (required on devices with Google Play Services)
    implementation 'com.google.android.gms:play-services-location:21.1.0'
    implementation 'com.google.android.gms:play-services-base:18.5.0'
    implementation 'com.google.android.gms:play-services-basement:18.4.0'

    // Huawei Mobile Services (required on Huawei devices without GMS)
    implementation 'com.huawei.agconnect:agconnect-core:1.9.5.300'
    implementation 'com.huawei.hms:base:6.5.0.300'
    implementation 'com.huawei.hms:maps:5.3.0.300'
    implementation 'com.huawei.hms:location:6.4.0.300'
}

For full integration steps (manifest entries, permissions, runtime initialisation, GMS/HMS detection):

Integration guide →


GMS vs. HMS — single AAR, two runtimes

The SDK uses the xmsadapter abstraction layer (bundled inside the AAR) to dispatch location and sensor calls to whichever platform service is available at runtime:

  • On devices with Google Play Services → GMS path (play-services-location etc.).
  • On Huawei devices without GMS → HMS path (hms:location etc.).

You do not need separate builds for GMS and HMS. See GMS vs. HMS for details.