In the rapidly evolving digital landscape of banking, fintech, and mobile money services, robust identity verification has become an indispensable baseline. Applications designed for financial onboarding, digital banking, and SIM card registration rely heavily on capturing exceptionally clear, high-resolution facial images to perform accurate anti-spoofing and deepfake detection. Yet, achieving frames sharp enough for real-time liveness checks—particularly while avoiding catastrophic out-of-memory crashes on low-end hardware—remains a formidable engineering bottleneck for Android camera developers worldwide.

For SmileID, a prominent identity verification software development kit (SDK) provider operating across the African continent, this persistent challenge was significantly magnified by a remarkably diverse and fragmented hardware ecosystem. Android currently accounts for approximately 85% of SmileID’s target device market share. Within this sprawling footprint, the company must support everything from entry-level smartphones equipped with highly constrained processors and obscure regional models to ruggedized, custom-built Point of Sale terminals utilized by merchants in remote regions.

Before transitioning its core architecture to CameraX, SmileID grappled with a gauntlet of classic camera engineering hurdles that slowed development velocity and complicated maintenance. The team frequently dealt with stretched preview feeds, unpredictably rotated sensor orientations, frustrating out-of-memory crashes, and obscure original equipment manufacturer bugs that varied wildly from one handset manufacturer to another. These friction points not only created engineering overhead but also severely capped the company’s year-over-year SDK adoption growth to a modest two to three times. Furthermore, many verification attempts were forced to abandon real-time on-device liveness checks altogether, falling back instead to uploading static, heavy photographs over high-latency REST APIs.

The Challenge of Fragmented Hardware and Legacy APIs

Confirming that an end user is genuinely present and is who they claim to be requires an identity verification SDK to capture pristine, high-resolution selfie frames capable of supporting sophisticated on-device liveness calculations alongside cloud-based deepfake analysis. Under older paradigms relying on the legacy Camera1 and low-level Camera2 APIs, maintaining this level of consistency across thousands of disparate Android models proved exceptionally difficult.

How SmileID Scaled Identity Verification to 18,000+ Android Device Types with CameraX | Android Developers' Blog

The underlying fragmentation meant that minor firmware discrepancies between device manufacturers could instantly break camera preview rendering or cause memory leaks during intensive image analysis routines. Because real-time frame processing demands steady CPU and memory management, low-memory devices running legacy implementations frequently buckled under the strain, resulting in abrupt application crashes during the critical KYC onboarding phase.

These technical roadblocks translated directly into business friction. Slow verification workflows, high failure rates on budget hardware, and unreliable camera streams meant that legitimate customers frequently experienced onboarding friction, occasionally abandoning the application entirely. For financial institutions relying on seamless digital acquisition, such drop-offs represented substantial business losses.

Implementing Consistent Pipelines with CameraX

To break through these technical ceilings, SmileID completely re-engineered its mobile SDKs from the ground up utilizing CameraX. Specifically designed by Android to abstract away the intricate complexities of the underlying device ecosystem, CameraX offers a stable, natively lifecycle-aware developer interface that handles the heavy lifting of camera resource management.

Leveraging the core use cases provided by CameraX—namely Preview and ImageAnalysis—SmileID successfully constructed a robust, dual-purpose camera pipeline capable of simultaneously rendering a fluid user interface feed while routing high-density pixel data to machine learning models. To capture the ultra-sharp details essential for reliable deepfake detection without triggering memory overflow issues on entry-level hardware, the engineering team integrated the modern ResolutionSelector API directly into their ImageAnalysis configuration.

How SmileID Scaled Identity Verification to 18,000+ Android Device Types with CameraX | Android Developers' Blog

This capability allows developers to request a precisely targeted resolution while specifying intelligent fallback rules for hardware variants that do not natively support that exact pixel dimension. By pairing the resolution strategy with backpressure handling strategies such as dropping older frames when a device’s CPU remains occupied processing previous iterations, the SDK ensures that user interfaces stay responsive even on heavily constrained processors.

Through this optimized architecture, SmileID achieved a remarkable fourfold increase in captured selfie and liveness pixel resolution. Crucially, the system processes and compresses the relevant cropped facial region directly on the user’s device before transmission. Consequently, the network upload size remained entirely identical to their previous generation system, guaranteeing substantially sharper data for machine learning models without imposing any additional cellular data overhead or financial cost on end users.

Solving Hardware Differences Through Robust Ecosystem Support

Standardizing on CameraX provided SmileID with a dual-layered compatibility safety net that ensured extraordinary stability across a remarkably wide array of devices. The first layer is rooted in Google’s dedicated Camera and Media Test Lab. In this specialized facility, automated test suites run continuously across a massive, rotating matrix of more than 190 physical Android device models, capturing library regressions and platform inconsistencies before they ever impact production environments.

The second layer involves CameraX’s built-in automated workarounds for known device quirks. Different Android manufacturers implement camera hardware HALs in distinct ways, occasionally leading to inverted image data or broken exposure controls under specific configurations. Rather than forcing development teams to clutter their codebases with complex conditional blocks based on specific device models and manufacturers, CameraX internally maintains comprehensive quirk management classes. When the library encounters a device with a documented hardware idiosyncrasy, it automatically injects the appropriate workaround. For SmileID, this meant their updated SDK could operate reliably across more than 18,000 distinct Android device types without requiring endless custom patches.

How SmileID Scaled Identity Verification to 18,000+ Android Device Types with CameraX | Android Developers' Blog

Scaling to Over 160 Million Verifications

The transition to CameraX drastically simplified integration for external application developers building on top of SmileID’s infrastructure. By eliminating persistent issues like aspect-ratio distortions, laggy previews, and sudden memory crashes, the upgrade yielded an immediate 20% increase in verification pass rates for client applications utilizing the SDKs. Across emerging digital economies in Africa, where mobile money and digital banking represent critical lifelines, securing a 20% boost in successful onboarding rates means hundreds of thousands of legitimate users complete verification successfully instead of churning out of the system.

The developer community responded enthusiastically to the improved reliability and performance. The streamlined integration process triggered a dramatic surge in SDK adoption, multiplying rapidly within the first two years following the migration. To date, SmileID has successfully processed more than 160 million identity verifications by leveraging the stability, consistency, and advanced architectural capabilities of CameraX.