Skip to content
GBG Documents & Biometrics Documentation

Appendix 3: SDK size

We currently have a limitation of 100 MB on android platforms for initial APK. This size is combination of customer code, dependencies and MJCS SDK.

Current Android MJCS SDK will add about 94.7 MB to overall APK size.

Size chart for 8.3.0 with ProGuard using MJCS Script and APK analyser size is from “Download size”

MJCS Core 2.2MB This includes AndroidX, Kotlin dependancies.
MJCS Arch bit size emulator devices compatible with
armeabi-v7a 32 ~10.1mb NO YES x86, arm64-v8a
arm64-v8a 64 ~10.2mb NO YES x
x86 32 ~11.1mb YES YES x
x86_64 32_64 ~11.2mb YES NO x
Liveness Models ~16.8mb
Liveness Arch bit size emulator devices compatible with Performance
armeabi-v7a 32 ~2.5mb NO YES x86, arm64-v8a
arm64-v8a 64 ~2.5mb NO YES x Big performance improvement
x86 32 ~2.7mb YES YES x
x86_64 32_64 ~2.8mb YES NO x
Profile – 1.16.0 Size Smart Scan Size Smart Capture
default-gbr-profile ~23.7mb ~23.7mb
default-gbr_dl-profile ~8.7mb ~8.7mb
default-ltu-profile ~13.4mb ~5.2mb
default-fra-profile ~9.8mb ~6.4mb
default-icao-profile ??? ~5MB?

Country list with extra Smart Scan support: List


The best solution up till 2019 August is to add only armeabi-v7a architecture witch with better or worse performance should support all architectures, after August 2019 there will be needed armeabi-v7a(32bit) and armv8(64bit) support.

This is the most used configuration chart for GBR profiles, please use it as a guide for other regions, below this chart is showcase of setup of initial 4 showcases.

Architectures 8.3.0 Profile 1.16.0 Liveness 0.4.6.3 Size Impact (With support libraries)
armeabi-v7a default_gbr_dl_profile false ~20.9mb
armeabi-v7a default_gbr_dl_profile true ~40.3mb
armeabi-v7a, arm64-v8a default_gbr_dl_profile false ~31.0mb
armeabi-v7a, arm64-v8a default_gbr_dl_profile true ~52.9mb
armeabi-v7a default_gbr_profile false ~35.2mb
armeabi-v7a default_gbr_profile true ~54.5mb
armeabi-v7a, arm64-v8a default_gbr_profile false ~45.3mb
armeabi-v7a, arm64-v8a default_gbr_profile true ~67.1mb
armeabi-v7a Hot-Swaping false ~12.7mb
armeabi-v7a Hot-Swaping true ~32.1mb
armeabi-v7a, arm64-v8a Hot-Swaping false ~22.8mb
armeabi-v7a, arm64-v8a Hot-Swaping true ~44.6mb

Configurations to create smaller size for GBR

Configuration for minimalistic approach before August 2019:
In app gradle.properties
defaultConfig{
...
ndk {
abiFilters 'armeabi-v7a'
}
...
}
In app dependancies add:
implementation 'com.idscan.ieos:mjcs:8.3.0'
implementation 'com.idscan.ides:default-gbr_dl-profile:1.16.0'
This configuration is around: ~20.9mb
---------------------------------------------------------------
After 2019:
In app gradle.properties
defaultConfig{
...
ndk {
abiFilters 'armeabi-v7a', "arm64-v8a"
}
...
}
In app dependancies add:
implementation 'com.idscan.ieos:mjcs:8.3.0'
implementation 'com.idscan.ides:default-gbr_dl-profile:1.16.0'
This configuration is around: ~31.0mb
---------------------------------------------------------------
Minimal with liveness before 2019
In app gradle.properties
defaultConfig{
...
ndk {
abiFilters 'armeabi-v7a'
}
...
}
In app dependancies add:
implementation 'com.idscan.ieos:mjcs:8.3.0'
implementation 'com.idscan.ides:default-gbr_dl-profile:1.16.0'
implementation 'com.idscan.idfb:liveness-core:0.4.6.3'
This configuration is around: ~43.2mb
---------------------------------------------------------------
Minimal with liveness after 2019
In app gradle.properties
defaultConfig{
...
ndk {
abiFilters 'armeabi-v7a', "arm64-v8a"
}
...
}
In app dependancies add:
implementation 'com.idscan.ieos:mjcs:8.3.0'
implementation 'com.idscan.ides:default-gbr_dl-profile:1.16.0'
implementation 'com.idscan.idfb:liveness-core:0.4.6.3'
This configuration is around: ~52.9mb
Description Link
Analyse your APK size https://developer.android.com/studio/build/apk-analyzer
64bit requirement https://android-developers.googleblog.com/2017/12/improving-app-security-and-performance.html
Bundle packaging https://developer.android.com/guide/app-bundle/#build