DynamicLibrary
- Flutter kursu
- Uzman seviye
- Ders 22/39
- 4 dk
DynamicLibrary.open ile C kütüphanesi açmayı öğrenirsin.
DynamicLibrary
DynamicLibrary.open('libmath.so'), bir C kütüphanesini belleğe yükler. Açılan kütüphane üzerinden lookupFunction ile semboller aranır. .so Linux/Android, .dylib macOS, .dll Windows uzantısıdır. Mevcut süreci açmak için DynamicLibrary.process() kullanılır.
final lib = DynamicLibrary.open('libmath.so');
// lib üzerinde sembol aramaları yapılırSembol arama
Kütüphane yüklendikten sonra lib.lookup<NativeFunction>('symbol') ile C sembolleri bulunur. Bir sembol, C tarafındaki bir fonksiyon veya değişken adıdır. lookupFunction sembolü Dart fonksiyonuna çevirir.
Uygulama Süreç kütüphanesini al
main'de DynamicLibrary.process() ile bir kütüphane al ve runtimeType'ını yazdır.
Başlangıç kodu
import 'dart:ffi';
void main() {
// Süreci DynamicLibrary ile aç ve runtimeType yazdır
}Örnek çözüm
import 'dart:ffi';
void main() {
final lib = DynamicLibrary.process();
print(lib.runtimeType);
}Beklenen çıktı
DynamicLibrary
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 DynamicLibrary.open ne yapar?
- Widget oluşturur
- Veritabanı açar
- HTTP isteği yapar
- C kütüphanesini belleğe yükler Doğru cevap
Açıklama: DynamicLibrary.open, bir C kütüphanesini (.so/.dylib/.dll) belleğe yükler; sembol aramaları bu nesne üzerinden yapılır.
2 DynamicLibrary.open çağrısı
final lib = ____.open('libmath.so');
final lib = DynamicLibrary.open('libmath.so');
Açıklama: DynamicLibrary.open geçerli tek yapıcıdır; LibraryLoader, NativeLibrary ve CLibrary dart:ffi'de bulunmaz.
3 DynamicLibrary eşleşmeleri
| Kavram | Anlamı |
|---|---|
DynamicLibrary |
Yüklenen kütüphane |
open |
Kütüphane açma |
symbol |
C tarafı ad |
.so |
Linux/Android uzantısı |