Android MJCS – 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
Solution
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 |