Introducing Google AI Edge Portal: Benchmark Edge AI at scale. Sign-up to request access during private preview.

LiteRT for Android

The following LiteRT runtime APIs are available for Android development:

  • CompiledModel API: The modern standard for high-performance inference, streamlining hardware acceleration across CPU/GPU/NPU. Learn more about why to choose the CompiledModel API.
  • Interpreter API: the basic inference API, maintained for backward compatibility.

Get Started with CompiledModel API

Supported Android Versions and APIs

LiteRT Version Status Supported API Min SDK Level Min NDK version (if used) Release Date
v2.1.0 ✅ Latest CompiledModel
Interpreter(CPU only)
23 (Android 6 Marshmallow) r26a 2025年12月19日
v2.0.3 ⚠️ Legacy CompiledModel 26 (Android 8 Oreo) r26a 2025年11月08日
v1.4.1 ✅ Latest Interpreter 21 (Android 5 Lollipop) r26a 2025年11月07日
v1.4.0 ⚠️ Legacy Interpreter 26 (Android 8 Oreo) r26a 2025年06月25日
v1.3.0 ⚠️ Legacy Interpreter 21 (Android 5 Lollipop) r26a 2025年05月19日
v1.2.0 ⚠️ Legacy Interpreter 21 (Android 5 Lollipop) r26a 2025年03月13日

Important: Keep your dependencies up to date to ensure compatibility with the latest features and security updates.

Quickstart with CompiledModel API

Add the LiteRT Maven package to your Android project:

dependencies {
 ...
 implementation `com.google.ai.edge.litert:litert:2.1.0`
}

Integrate your .tflite model with the CompiledModel API. The following code snippet shows the basic implementation in Kotlin and C++.

Kotlin

// Load model and initialize runtime
valcompiledModel=CompiledModel.create(
"/path/to/mymodel.tflite",
CompiledModel.Options(Accelerator.CPU))
// Preallocate input/output buffers
valinputBuffers=compiledModel.createInputBuffers()
valoutputBuffers=compiledModel.createOutputBuffers()
// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)
// Invoke
compiledModel.run(inputBuffers,outputBuffers)
// Read the output
valoutput=outputBuffers.get(0).readFloat()

C++

// Load model and initialize runtime
LITERT_ASSIGN_OR_RETURN(autoenv,GetEnvironment());
LITERT_ASSIGN_OR_RETURN(autooptions,GetOptions());
LITERT_ASSIGN_OR_RETURN(
autocompiled_model,
CompiledModel::Create(env,"/path/to/mymodel.tflite",options));
// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(autoinput_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(autooutput_buffers,compiled_model.CreateOutputBuffers(signature_index));
// Fill the input buffer
LITERT_ABORT_IF_ERROR(input_buffers[0].Write(input0));
LITERT_ABORT_IF_ERROR(input_buffers[1].Write(input1));
// Invoke
LITERT_ABORT_IF_ERROR(compiled_model.Run(signature_index,input_buffers,output_buffers));
// Read the output
LITERT_ABORT_IF_ERROR(output_buffers[0].Read(output0));

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年12月24日 UTC.