Android için LiteRT

Android geliştirmede aşağıdaki LiteRT çalışma zamanı API'leri kullanılabilir:

  • CompiledModel API: CPU/GPU/NPU'da donanım hızlandırmayı kolaylaştıran, yüksek performanslı çıkarım için modern standart. CompiledModel API'yi neden seçmeniz gerektiği hakkında daha fazla bilgi edinin.
  • Interpreter API: Geriye dönük uyumluluk için kullanılan temel çıkarım API'si.

CompiledModel API'yi kullanmaya başlama

Desteklenen Android sürümleri ve API'ler

LiteRT Sürümü Durum Desteklenen API Minimum SDK düzeyi Minimum NDK sürümü (kullanılıyorsa) Yayın Tarihi
v2.1.0 ✅ En yeni CompiledModel
Interpreter(yalnızca CPU)
23 (Android 6 Marshmallow) r26a Henüz yayınlanmadı
v2.0.3 ⚠️ Eski CompiledModel 26 (Android 8 Oreo) r26a 08.11.2025
v1.4.1 ✅ En yeni Interpreter 21 (Android 5 Lollipop) r26a 2025-11-07
v1.4.0 ⚠️ eski Interpreter 26 (Android 8 Oreo) r26a 2025-06-25
v1.3.0 ⚠️ eski Interpreter 21 (Android 5 Lollipop) r26a 2025-05-19
v1.2.0 ⚠️ eski Interpreter 21 (Android 5 Lollipop) r26a 13.03.2025

Önemli: En yeni özellikler ve güvenlik güncellemeleriyle uyumluluğu sağlamak için bağımlılıklarınızı güncel tutun.

CompiledModel API ile hızlı başlangıç

Derlenmiş Model API ile çıkarım çalıştırmak için aşağıdaki temel adımlar gerekir:

  1. Uyumlu bir model yükleyin.
  2. Giriş ve çıkış tensör arabelleklerini ayırın.
  3. Derlenmiş modeli çağırın.
  4. Çıkarımları bir çıkış arabelleğine okuyun.

Aşağıdaki kod snippet'lerinde, Kotlin ve C++'ta tüm sürecin temel bir uygulaması gösterilmektedir.

Kotlin

// Load model and initialize runtime
val compiledModel = CompiledModel.create(
    "/path/to/mymodel.tflite",
    CompiledModel.Options(Accelerator.CPU))

// Preallocate input/output buffers
val inputBuffers = compiledModel.createInputBuffers()
val outputBuffers = compiledModel.createOutputBuffers()

// Fill the input buffer
inputBuffers.get(0).writeFloat(input0)
inputBuffers.get(1).writeFloat(input1)

// Invoke
compiledModel.run(inputBuffers, outputBuffers)

// Read the output
val output = outputBuffers.get(0).readFloat()

C++

// Load model and initialize runtime
LITERT_ASSIGN_OR_RETURN(auto env, GetEnvironment());
LITERT_ASSIGN_OR_RETURN(auto options, GetOptions());
LITERT_ASSIGN_OR_RETURN(
    auto compiled_model,
    CompiledModel::Create(env, "/path/to/mymodel.tflite", options));

// Preallocate input/output buffers
LITERT_ASSIGN_OR_RETURN(auto input_buffers,compiled_model.CreateInputBuffers(signature_index));
LITERT_ASSIGN_OR_RETURN(auto output_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));