Android SDK
Android SDK allows you to add an Urbi map to your Android application. Using the SDK, you can display a map on the screen, get information about map objects, use the navigator, build routes, and so on.
See SDK usage examples in the Examples section. For a detailed description of all classes and methods, see API Reference.
Geodata complies with OGC standards.
Getting API keys
To work with SDK, you need to get the key file dgissdk.key
with the obligatory indication of the appId
of the application for which this key is created. This key will be used to connect to Urbi servers and retrieve the geographical data, as well as to use offline data and the navigator. This key is unique to the SDK and cannot be used with other Urbi SDKs.
To obtain this key file:
- Fill in the form at urbi.ae.
- Add the resulting key file to the
assets
of the application.
When the key is activated, you can sign in to the Platform Manager and check the statistics of request distribution.
System requirements
- Android 5.0 (Lollipop) and later
- Supported architectures: x86_64, x86, armeabi-v7a, arm64-v8a
- OpenGL ES 3.1
SDK versions
Android SDK packages are available in two versions:
- Full is a full version that allows you to:
- Add a map to the application and manage it: add markers and geometric shapes, control the camera movement, display layers (for example, traffic), work with map styles, etc.
- Search for objects in the directory: organizations, buildings, places, and others.
- Work with the navigator in the application in one of the three modes: free-drive, turn-by-turn, or simulated navigation.
- Build optimal routes on the map, including routes inside buildings.
- Use offline data.
- Map is a lightweight version that allows you to:
Important
You cannot use Full and Map simultaneously. It causes an assembly error.
Installation
To install Android SDK:
-
Declare a custom repository in your
build.gradle
file:repositories { maven { url "http://artifactory.2gis.dev/sdk-maven-release" } }
-
Add one of the following build dependencies.
-
For the Full SDK version:
dependencies { implementation 'ru.dgis.sdk:sdk-full:latest.release' }
-
For the Map SDK version:
dependencies { implementation 'ru.dgis.sdk:sdk-map:latest.release' }
-
Demo project
You can find a demo app with the source code in our GitHub repository.
Application size
The size of your application may increase noticeably after adding the SDK to your project. See a description of the cause and possible strategies for dealing with this increase below.
Processor architectures
Modern Android devices can have different types of processors: x86-64, x86, ARMv7, and ARMv8. For code written in Java or Kotlin, this is not an issue, as it is executed in a virtual machine and abstracted from the specific hardware. However, for native code, processor type plays an important role.
Therefore, our library contains 4 versions for all ABI (Application Binary Interface) types to provide support for all these processor types.
Size optimization
To reduce the size of your application, you can use splitting APKs by ABI type. This will ensure that only the necessary libraries for a specific user device are built and loaded. See the Android documentation for instructions on building and uploading. Also, if you are using an Android App Bundle, Google Play can automatically rebuild the app for the required processor types of specific user devices.
Size check
To see the actual size of the APK that will be downloaded by the user, it is recommended to use the bundletool tool. This will help to get an APK containing only the required libraries for a particular device:
- Build an app bundle, selecting this build option in Gradle.
- Get APK with necessary criteria (for example, only for arm64-v8a) from the app bundle using bundletool.
The resulting APK will reflect the actual size the user gets when downloading the app from Google Play.