Android CraftAR On-Device Image Recognition SDK

Our robust On-Device Image Recognition SDK can search through thousands of objects locally, inside your Android apps, with no cloud support necessary. The recognition runs just as fast and just as reliable whether your users are online, connected to a weak network, or with no coverage at all.

We want to make development easy for you. To integrate the CraftAR Android On-Device Image Recognition SDK into your native mobile app, we provide a libs/ folder with all the SDK libraries included.

This page gives you pointers to the Tutorials you should follow to integrate this SDK; the documentation of the Classes; how to run the Examples; the Requirements of your system to use this SDK, and finally, Release Notes of our continuous updates.

Download from CraftAR

How to get started with the Android On-device Image Recognition SDK

In order to get started with the SDK, we recommend you to run the examples included in the distribution that you can download upon request (see button above). The examples are located in the Examples directory as an Android Studio Project.

Running the examples

The SDK is already linked in the project, available inside the distribution package. You can open it and just run the project from your device (note that running inside the Simulator is not available with the SDK).

The examples app opens a menu view that allows you to open the different examples. Each example opens the camera and the first step is for you to scan any object. We provide a set of reference images to point at that show different experiences. You can find those images in the folder Examples/Reference images.

We strongly recommend that you print this images out for testing. Pointing at them in your laptop/PC’s screen can heavily alter the experience due to artefacts that are invisible to your naked eye but very disturbing when captured with your smartphone.



Integrate the Android On-device Image Recognition SDK into your own project

Follow this tutorial for instructions on how to integrate the Android On-device Image Recognition SDK into your Android projects.


To build the project or use the library, you will need Google’s Android Studio 2.2 or newer and a device with Android 3.0 or newer.

Class Reference Documentation

Follow this link to browse through the classes of the Android On-device Image Recognition SDK.

Download from CraftAR


Version 1.4.5

June 26th, 2018

  • Added: (Common) Added CraftARActivityCompat, which allows to use all the features of the Android’s AppCompatActivity.
Version 1.4.2

November 7th, 2017

  • Added: (Common) Added the “Take picture” feature.
  • Added: (Common) New CraftARActivityCompat allows to use fragments with AppCompatActivity.
  • Fixed: (Cloud Recognition) Prevent searches from producing results after stopFinder has been called.
Version 1.4.1

August 17th, 2017

  • Fixed: (Common) Changed native builds to fix crashes on devices with Android 6 (6.0 – 6.0.1) installed.
  • Fixed: (Common) Fixed problems running on x86 devices.
  • Fixed: (Camera) Fixed error opening the camera on some devices.
  • Fixed: (Image Recognition) Fixed potential crashes if callback handlers are set to null.
Version 1.4

July 12th, 2017

  • Removed: (Common) Use of Apache HTTP libs.
  • Fixed: (Camera) Fixed errors with autofocus with some devices (e.g. Galaxy S8).
Version 1.3

December 15th, 2016

  • Added: (Camera) New methods to change the size of the picture when calling takePicture or singleShotSearch (getSupportedPictureSizes() and setPictureSizes()).
  • Fixed: (Camera) Crash when starting the camera in some cases.
  • Fixed: (Camera) Single shot search failed in some devices because the picture size was not properly set up.
  • Fixed: (Cloud Image Recognition) Bounding boxes were incorrect in responses from the Cloud Recognition.
  • Fixed: (Cloud Image Recognition) Fix problem requesting custom data embedded.
  • Fixed: (On-device Collections) Prevent crash and notify when the a null token is passed to the CollectionManager.
  • Fixed: (On-device IR) Unloading a collection and loading it again now is loading the images correctly.
Version 1.2.1

August 31st, 2016

  • New: Support for arm64 and x86 architectures (Note: the SDK is heavier, you can remove native folders or distribute them separately on Google Play).
  • Changed: Update included library that produced lots of warnings
  • Fixed: Crash on some devices caused by the processing of the camera frames.
  • Fixed: Network issues on Android < 4.4 if TLS 1.0 is not supported by the remote servers.
  • Fixed: Memory management error in on-device Recognition was crashing for collection bundles over 1K images.
  • Fixed: Crash when adding invalid collections.
Version 1.2

March 18th, 2016

  • Advanced On-device collection synchronization (it only downloads resources for the items that have changed or are new)
  • Added interfaces to manage collection bundles with tags
  • Fixed freeze issue when restarting the camera
  • Removed some verbose logs
Version 1.1.3

January 15, 2016

  • Request bounding boxes by default in cloud-recognition
  • Return image recognition score as an integer instead of a float.
  • Return appropiate network error codes when network request fail (CraftARNetworkError)
  • Fix issue in Cloud recognition, that was calling at the same time searchResults() and searchFailed() under some conditions.
Version 1.1.2

December 17, 2015

  • Improve re-scaling for large pictures
  • Add support to use the flashlight in the camera class
Version 1.1.1

November 20, 2015

  • Fix crash on devices with Android < 4.2
Version 1.1

November 17, 2015

  • Include Cloud image recognition capabilities
  • Small architecture changes.
  • Allows to use click and touch events in the CraftARCameraView class
  • Allows to use flashlight
  • Changed version codes to 1.x (before they were 3.x)
Version 1.0.1 (aka 3.1)

July 27, 2015

  • Add collection from the CraftAR Service
  • Synchronize collections with the CraftAR Service
  • Bug fixes
Version 1.0 (aka 3.0)

June 9, 2015

First version of the On-Device Image Recognition SDK for Android.