|
Novarum DX Ltd
|
Document ID: IFU048
|
1. Overview
v4.0.1 updates the Android Reader SDK customer integration path for the current native Android package com.novarumdx:ndx-imaging-android, distributed through AWS CodeArtifact using the customer-facing novarum.client.maven Maven repository.
-
Integration change: customers now integrate the consolidated Android SDK Maven artefact
com.novarumdx:ndx-imaging-android. -
Dependency change: the SDK packages the Android wrapper and native runtime components required to interface with the NDX Imaging Core.
Warning: The SDK 4.0.1 (Android) is not compatible with current reader files that do not use the new format with the {estimators: [ wrapper. Reader files must be updated to the new format before use with SDK 4.0.1 (Android).
2. What’s New
2.1. Android Maven integration
-
Updated customer setup to use AWS CodeArtifact Maven repository
novarum.client.maven. -
Set the current Android SDK dependency version to
4.0.1. -
Documented the current dependency as
com.novarumdx:ndx-imaging-android:4.0.1.
2.2. Consolidated Android SDK package
-
The Android customer dependency is now a single SDK artefact rather than the older multi-module setup.
-
The package provides the Android-facing Kotlin/Java API, camera preview integration, callbacks, result model, and native runtime integration needed by customer applications.
-
The Android SDK now operates as the platform adapter around the shared NDX Imaging Core C++ engine; the previous Kotlin imaging implementation has been replaced by the native core while customer applications continue to provide permissions, configuration, workflow, result handling, and any onward data transmission.
-
The previous Android imaging modules have been consolidated into the single SDK artefact and native runtime integration.
-
Refactored namespaces to prevent conflicts with Imaging Core.
-
OpenCV is statically linked into the SDK native runtime to reduce shared-library conflicts in consuming applications.
-
JNI exception boundary handling has been added so native engine failures are translated before crossing into the Android API layer.
2.3. Configuration and public API examples
-
Updated analyser configuration examples to use
PMFLoader.loadAnalyserConfiguration(json = configJson). -
Updated View-based usage to configure
NovarumAnalyzerPreviewwithanalyzerConfig,previewMode,onFrameCaptured,onComplete, andabort(). -
Updated Compose usage guidance for wrapping
NovarumAnalyzerPreviewinAndroidView. -
Documented
PreviewMode.FillandPreviewMode.Fitfor camera preview scaling.
2.4. Callback/model documentation
-
Updated callback reference for
FrameCapturedCallback,ResultPMF,StripStatus,AnalysisModel, andFrameData. -
Documented abort handling through
NovarumAnalyzerPreview.abort(), returning partialAnalysisModeldata when available.
2.5. Runtime behaviour and integration reliability
-
Keep screen on: the reader view keeps the device screen awake while active and restores normal behaviour when dismissed.
-
Programmatic analyser API: integrations can use
NovarumAnalyserdirectly where a non-preview or custom workflow is required, alongside theNovarumAnalyzerPreviewview integration. -
Collection mode: collection-mode configuration and data capture behaviour are supported through the analyser API for workflows that need to collect frame/data outputs rather than only completing a standard reader flow.
-
Native runtime reliability: JNI exception handling and static OpenCV linking reduce native-boundary crash risk and shared-library conflicts in host applications.
3. Breaking vs. Non-breaking Summary
|
Change |
Type |
Developer impact |
|---|---|---|
|
Customer dependency updated to |
Integration update |
Update the Gradle dependency and ensure CodeArtifact Maven access is configured. |
|
Single consolidated Android SDK package |
Dependency graph change |
Use the current SDK artefact rather than older module-specific dependencies such as previous camera/imaging modules. |
|
Current Android build toolchain documented |
Build requirement update |
Use minimum SDK 26, |
|
Native build dependency versions documented |
Compatibility requirement for apps with native modules |
If the host app builds JNI/C++ components, align to NDK |
|
|
Non-breaking API usage clarification |
Choose the preview scaling behaviour appropriate for full-screen or constrained reader layouts. |
|
Namespace refactor |
Breaking namespace change |
Imports must be updated from the old |
4. When to Upgrade
Upgrade when integrating a new native Android application with the current Reader SDK, when moving from an older Android SDK dependency, or when you need the current v4.0.1 package distributed through the customer-facing CodeArtifact Maven repository.
Apps using older setup instructions should update their Gradle dependency, CodeArtifact repository configuration, and toolchain versions to match this release.
5. Compatibility Notes
-
Minimum Android SDK is 26.
-
compileSdkis 35. -
Java source/target compatibility and Kotlin JVM target are 17.
-
Android Gradle Plugin version is 8.9.0.
-
Gradle Wrapper version is 8.11.1.
-
Kotlin version should be 1.9+.
-
OpenCV 4.12.0 is an internal SDK dependency.
-
Apps or modules that build native code should use NDK 29.0.14033849 rc4 and CMake 3.22.1.
-
The SDK requires camera access; request
android.permission.CAMERAbefore displayingNovarumAnalyzerPreview.
6. Summary of Developer Actions
|
Area |
Action Required |
|---|---|
|
Repository access |
Authenticate to AWS CodeArtifact and configure the Maven repository |
|
Dependency setup |
Add |
|
Namespace migration |
Update application imports from the old |
|
Build configuration |
Set |
|
Permissions |
Add camera permission and camera feature entries to |
|
Configuration loading |
Load the Novarum-provided analyser configuration JSON using |
|
Reader view integration |
Embed |
|
Callbacks and abort handling |
Handle |
|
Native build compatibility |
If the host app builds native components, align NDK and CMake versions and rebuild with |
7. Versioning Summary
|
Component |
Version |
Notes |
|---|---|---|
|
Android Reader SDK Maven artefact |
4.0.1 |
Dependency coordinate |
|
Minimum Android SDK |
26 |
Required. |
|
compileSdk |
35 |
Required. |
|
Java / JVM target |
17 |
Required. |
|
Android Gradle Plugin |
8.9.0 |
Required. |
|
Gradle Wrapper |
8.11.1 |
Required for AGP 8.9.0. |
|
Kotlin |
1.9+ |
Required for Kotlin-based integrations. |
|
OpenCV |
4.12.0 |
Internal SDK dependency. |
|
NDK |
29.0.14033849 rc4 |
Required for host apps/modules that build native code. |
|
CMake |
3.22.1 |
Required for host apps/modules that build native code. |
8. Known Issues
The following table lists SDK Android defect issues that are not currently in a Done status category.
|
Open Defects in the SDK (Total: 1)
project="SDK (Android)" and type="NDX Bug" and status!=(archived, done)
|
||||
|---|---|---|---|---|
|
Key
|
Summary
|
Affects versions
|
Risk (calculated)
|
Status
|
| SDKAND-44 | Green check mark does not appear on last frame | 4.0.0-android, 4.0.1-android | 🟩 Low | Open |