Android geliştirmede aşağıdaki LiteRT çalışma zamanı API'leri kullanılabilir:
CompiledModelAPI: 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.InterpreterAPI: Geriye dönük uyumluluk için kullanılan temel çıkarım API'si.
CompiledModel API'yi kullanmaya başlama
Klasik makine öğrenimi modelleri için aşağıdaki demo uygulamalara bakın.
- Görüntü segmentasyonu Kotlin uygulaması: CPU/GPU/NPU çıkarımı.
- Görüntü segmentasyonu C++ uygulaması: Asenkron yürütme ile CPU/GPU/NPU çıkarımı.
Üretken yapay zeka modelleri için aşağıdaki demo uygulamalara göz atın:
- EmbeddingGemma semantik benzerlik C++ uygulaması: CPU/GPU/NPU çıkarımı.
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:
- Uyumlu bir model yükleyin.
- Giriş ve çıkış tensör arabelleklerini ayırın.
- Derlenmiş modeli çağırın.
- Çı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));