API runtime LiteRT berikut tersedia untuk pengembangan Android:
- API
CompiledModel: Standar modern untuk inferensi berperforma tinggi, yang menyederhanakan akselerasi hardware di seluruh CPU/GPU/NPU. Pelajari lebih lanjut alasan memilih CompiledModel API. - API
Interpreter: API inferensi dasar, dipertahankan untuk kompatibilitas mundur.
Mulai Menggunakan CompiledModel API
Untuk model ML klasik, lihat aplikasi demo berikut.
- Aplikasi Kotlin Segmentasi Gambar: Inferensi CPU/GPU/NPU.
- Aplikasi C++ segmentasi gambar: Inferensi CPU/GPU/NPU dengan eksekusi async.
Untuk model AI generatif, lihat aplikasi demo berikut:
- Aplikasi C++ Kemiripan Semantik EmbeddingGemma: Inferensi CPU/GPU/NPU.
Versi dan API Android yang Didukung
| Versi LiteRT | Status | API yang didukung | Level SDK Min | Versi NDK minimum (jika digunakan) | Tanggal Rilis |
|---|---|---|---|---|---|
v2.1.0 ⭐ |
✅ Terbaru | CompiledModel Interpreter(Khusus CPU) |
23 (Android 6 Marshmallow) |
r26a |
Belum dirilis |
v2.0.3 ⭐ |
⚠️ Tidak berlaku lagi | CompiledModel |
26 (Android 8 Oreo) |
r26a |
2025-11-08 |
v1.4.1 ⭐ |
✅ Terbaru | Interpreter |
21 (Android 5 Lollipop) |
r26a |
2025-11-07 |
v1.4.0 ⭐ |
⚠️ tidak digunakan lagi | Interpreter |
26 (Android 8 Oreo) |
r26a |
2025-06-25 |
v1.3.0 ⭐ |
⚠️ tidak digunakan lagi | Interpreter |
21 (Android 5 Lollipop) |
r26a |
2025-05-19 |
v1.2.0 ⭐ |
⚠️ tidak digunakan lagi | Interpreter |
21 (Android 5 Lollipop) |
r26a |
2025-03-13 |
Penting: Selalu perbarui dependensi Anda untuk memastikan kompatibilitas dengan fitur dan update keamanan terbaru.
Panduan memulai dengan CompiledModel API
Menjalankan inferensi dengan Compiled Model API melibatkan langkah-langkah utama berikut:
- Muat model yang kompatibel.
- Alokasikan buffer tensor input dan output.
- Panggil model yang dikompilasi.
- Membaca inferensi ke dalam buffer output.
Cuplikan kode berikut menunjukkan implementasi dasar dari seluruh proses di Kotlin dan C++.
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));