Due to the advanced validation support (in C++ code), we recommend that the integrator app performs [multi-APK split](#multi-apk-split) to optimize the app size for individual architectures.
Average size (with Proguard enabled):
| ABI | Size |
|-------------|:--------:|
| armeabi-v7a | 10.0 Mb |
| arm64-v8a | 10.5 Mb |
| universal | 20.4 Mb |
#
If you are using **VideoIdentification** entry mode, also include:
After syncing your project, you can access all SDK classes in your source code.
Average size (with Proguard enabled):
| ABI | Size |
|-------------|:--------:|
| armeabi-v7a | 15.6 Mb |
| arm64-v8a | 16.7 Mb |
| universal | 38.2 Mb |
**Note**: The average sizes were measured by building the minimum possible wrappers around our SDK.
Different versions of the dependencies, such as Gradle or NDK, may result in slightly different values.
#### Multi-APK split
C++ code needs to be compiled for each of the CPU architectures (known as "ABIs") present on the Android environment. Currently, the SDK supports the following ABIs:
*`armeabi-v7a`: Version 7 or higher of the ARM processor. Most recent Android phones use this
*`arm64-v8a`: 64-bit ARM processors. Found on new generation devices
*`x86`: Used by most tablets and emulators
*`x86_64`: Used by 64-bit tablets
The SDK binary contains a copy of the native `.so` file for each of these four platforms.
You can considerably reduce the size of your `.apk` by applying APK split by ABI, editing your `build.gradle` to the following:
```gradle
android{
splits{
abi{
enabletrue
reset()
include'x86','x86_64','arm64-v8a','armeabi-v7a'
universalApkfalse
}
}
}
```
Read the [Android documentation](https://developer.android.com/build/configure-apk-splits) for more information.
### 1.3 Permissions
...
...
@@ -179,15 +226,19 @@ the SDK requires the input of passport data and date of birth for user identific
-**Debug** is used to sandbox.
-**Production** is used to production.
**Note 1.5.**`MyIdEntryType` contains **Identification**, **VideoIdentification** and **FaceDetection** types.
**Note 1.4.**`MyIdEntryType` contains **Identification**, **VideoIdentification** and **FaceDetection** types.
-**Identification** is used to identify the user through the MyID services.
-**VideoIdentification** is used to identify the user through the MyID services. Requires the `myid-video-capture-sdk` dependency.
-**FaceDetection** is used to detect a face and returns a picture (bitmap).
**Note 1.6.** If the user sends a **passport data** to the SDK, the **residency** must be handled by the **client**. If `residency = MyIdResidency.UserDefined` is sent, the SDK will treat the user as **Non-Resident**.
**Note 1.7.** If the SDK **does not receive a passport data** and receives `residency = MyIdResidency.UserDefined`, the SDK displays the **MyID passport input screen**. If the user enters a **PINFL**, the screen will show a **checkbox** allowing the user to select **Resident** or **Non-Resident**.