Android'de C++ ve NDK Ne Zaman Kullanılır?
Güncellendi: 18 Ağustos 2026 · Okuma: 7 dakika
NDK (Native Development Kit), uygulamanızın performans kritik bölümlerini C/C++ ile yazmanıza olanak tanır. Oyun motorları, görüntü ve ses işleme ile mevcut C++ kütüphanelerinin yeniden kullanımı en yaygın senaryolardır. Sıradan uygulama işleri için gerekli değildir.
İleri
Android (native katman)
1. NDK nedir?
NDK, Android uygulamalarında C ve C++ kodu derleyip çalıştırmanızı sağlayan araç setidir. Uygulamanın tamamını değil, yalnızca performans gerektiren belirli bir modülü native yazarsınız; geri kalan uygulama Kotlin ile devam eder.
2. Hangi işler için kullanılır?
- Oyun motorları: Unity ve Unreal gibi motorlar zaten büyük ölçüde native C++ çalışır.
- Görüntü işleme: Gerçek zamanlı filtre, nesne tanıma, video kodlama gibi kare başına milisaniyelerin önemli olduğu işler.
- Ses işleme: Düşük gecikmeli ses uygulamaları (müzik prodüksiyonu, efekt işleme) native katman ister.
- Şifreleme ve sıkıştırma: Olgun C kütüphanelerini sıfırdan yazmak yerine doğrudan kullanmak.
- Platformlar arası çekirdek: Aynı C++ motorunu Android, iOS ve gömülü cihazlarda paylaşmak.
3. Ne zaman kullanılmamalı?
Sıradan bir arayüz, ağ isteği veya veritabanı işlemi için NDK'ye gerek yoktur. Bu tür işler Kotlin'de hem daha hızlı yazılır hem de çok daha az hataya açıktır.
NDK, ciddi bir karmaşıklık getirir: her CPU mimarisi için ayrı derleme, zorlaşan hata ayıklama, manuel bellek yönetimi. Yalnızca ölçtüğünüz ve kanıtladığınız bir performans ihtiyacı varsa tercih edin.
4. CMake ile derleme
Android Studio, NDK projelerinde C++ kodunu derlemek için CMake kullanır. CMakeLists.txt dosyası, hangi kaynak dosyaların derleneceğini ve hangi kütüphanelere bağlanılacağını tanımlar:
cmake_minimum_required(VERSION 3.22)
project(nativelib)
add_library(native-lib SHARED native-lib.cpp)
target_link_libraries(native-lib log)5. JNI ile ilişkisi
NDK, C++ kodunu derler; JNI ise bu derlenmiş kodun Kotlin tarafıyla nasıl konuşacağını tanımlar. İkisi birlikte çalışır — detaylar için JNI rehberimize bakın.