Reader SDK Documents
Breadcrumbs

IFU048(01) v4.0.1 (Android)

Novarum DX Ltd
Instructions for Use / Guides

Document ID: IFU048 
Revision: 01 
Released: Jul 20, 2026 

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 NovarumAnalyzerPreview with analyzerConfig, previewMode, onFrameCaptured, onComplete, and abort().

  • Updated Compose usage guidance for wrapping NovarumAnalyzerPreview in AndroidView.

  • Documented PreviewMode.Fill and PreviewMode.Fit for camera preview scaling.

2.4. Callback/model documentation

  • Updated callback reference for FrameCapturedCallback, ResultPMF, StripStatus, AnalysisModel, and FrameData.

  • Documented abort handling through NovarumAnalyzerPreview.abort(), returning partial AnalysisModel data 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 NovarumAnalyser directly where a non-preview or custom workflow is required, alongside the NovarumAnalyzerPreview view 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 com.novarumdx:ndx-imaging-android:4.0.1

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, compileSdk 35, Java/JVM target 17, AGP 8.9.0, and Gradle Wrapper 8.11.1.

Native build dependency versions documented

Compatibility requirement for apps with native modules

If the host app builds JNI/C++ components, align to NDK 29.0.14033849 rc4 and CMake 3.22.1.

PreviewMode.Fill and PreviewMode.Fit documented

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 org.novarumdx... namespace to the current com.novarumdx... namespace. Examples include the Gradle coordinate com.novarumdx:ndx-imaging-android:4.0.1 and package imports such as com.novarumdx.imaging.android.*

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.

  • compileSdk is 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.CAMERA before displaying NovarumAnalyzerPreview.

6. Summary of Developer Actions

Area

Action Required

Repository access

Authenticate to AWS CodeArtifact and configure the Maven repository novarum.client.maven.

Dependency setup

Add implementation "com.novarumdx:ndx-imaging-android:4.0.1" to the app module Gradle dependencies.

Namespace migration

Update application imports from the old org.novarumdx... namespace to the current com.novarumdx... namespace. For example, replace imports such as org.novarumdx.* with com.novarumdx.imaging.android.*, including SDK classes such as NovarumAnalyzerPreview, PreviewMode, and PMFLoader.

Build configuration

Set minSdk 26, compileSdk 35, Java/JVM target 17, AGP 8.9.0, and Gradle Wrapper 8.11.1.

Permissions

Add camera permission and camera feature entries to AndroidManifest.xml, then request camera permission at runtime before scanning.

Configuration loading

Load the Novarum-provided analyser configuration JSON using PMFLoader.loadAnalyserConfiguration(json = configJson).

Reader view integration

Embed NovarumAnalyzerPreview in XML layouts or wrap it in Compose with AndroidView.

Callbacks and abort handling

Handle onFrameCaptured, onComplete, and abort() / onAbort according to the host application workflow.

Native build compatibility

If the host app builds native components, align NDK and CMake versions and rebuild with ./gradlew clean assembleRelease.

7. Versioning Summary

Component

Version

Notes

Android Reader SDK Maven artefact

4.0.1

Dependency coordinate com.novarumdx:ndx-imaging-android:4.0.1.

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