Kodu proje modülünüzdeki bir cpp
dizinine yerleştirerek Android projenize C ve C++ kodu ekleyin. Projenizi derlediğinizde bu kod, Gradle'ın uygulamanızla paketleyebileceği yerel bir kitaplıkta derlenir. Böylece Java veya Kotlin kodunuz, Java Yerel Arayüzü (JNI) aracılığıyla yerel kitaplığınızdaki işlevleri çağırabilir. JNI çerçevesini kullanma hakkında daha fazla bilgi için Android için JNI ipuçları sayfasını okuyun.
Android Studio, platformlar arası projeler için yararlı olan CMake'i destekler.
Android Studio, CMake'den daha hızlı olabilen, ancak yalnızca Android'i destekleyen ndk-build
'i de destekler. CMake ve ndk-build
'nin aynı modülde kullanılması şu anda desteklenmemektedir.
Mevcut bir ndk-build
kitaplığını Android Studio projenize aktarmak için Gradle'ı yerel kitaplık projenize nasıl bağlayacağınızı öğrenin.
Bu sayfada, gerekli derleme araçlarıyla Android Studio'yu nasıl ayarlayacağınız, C/C++ desteğiyle yeni bir proje oluşturma ve projenize yeni C/C++ dosyaları ekleme işlemlerinin nasıl yapılacağı gösterilmektedir.
Bunun yerine, mevcut bir projeye yerel kod eklemek isterseniz şu adımları uygulayın:
-
Yeni yerel kaynak dosyalar oluşturun ve dosyaları Android Studio projenize ekleyin.
- Zaten yerel kodunuz varsa veya önceden oluşturulmuş bir yerel kitaplığı içe aktarmak istiyorsanız bu adımı atlayın.
-
Yerel kaynak kodunuzu kitaplıkta derlemek için CMake'i yapılandırın. Önceden oluşturulmuş kitaplıkları veya platform kitaplıklarına göre içe aktarma ve bağlantı oluşturma işlemleri gerçekleştiriyorsanız bu derleme komut dosyası gereklidir.
CMakeLists.txt
derleme komut dosyasına sahip veyandk-build
kullanan veAndroid.mk
derleme komut dosyası içeren mevcut bir yerel kitaplığınız varsa bu adımı atlayın.
-
CMake veya
ndk-build
komut dosyanıza bir yol sağlayarak Gradle'ı yapılandırın. Gradle, kaynak kodu Android Studio projenize aktarmak ve yerel kitaplığınızı uygulamada paketlemek için derleme komut dosyasını kullanır.
Projenizi yapılandırdıktan sonra JNI çerçevesini kullanarak Java veya Kotlin kodundan yerel işlevlerinize erişin. Uygulamanızı derleyip çalıştırmak için Çalıştır'ı tıklayın.
Not: Mevcut projenizde desteği sonlandırılmış ndkCompile
aracı kullanılıyorsa CMake veya ndk-build
kullanmaya geçin.
NDK'yı indirin ve araçlar oluşturun
Uygulamanız için yerel kod derlemek ve hata ayıklamak için aşağıdaki bileşenlere ihtiyacınız vardır:
- Android Yerel Geliştirme Kiti (NDK): Android'de C ve C++ kodunu kullanmanıza olanak tanıyan bir araç seti. NDK, yerel etkinlikleri yönetmenize ve sensörler ve dokunmatik giriş gibi fiziksel cihaz bileşenlerine erişmenize olanak tanıyan platform kitaplıkları sunar.
-
CMake: Yerel kitaplığınızı oluşturmak için Gradle ile birlikte çalışan harici bir derleme aracı. Yalnızca
ndk-build
kullanmayı planlıyorsanız bu bileşene ihtiyacınız yoktur. - LLDB: Android Studio'da yerel kodda hata ayıklayan hata ayıklayıcı.
Bu bileşenleri yükleme hakkında bilgi edinmek için NDK ve CMake'i yükleme ve yapılandırma başlıklı makaleye bakın.
C/C++ desteğiyle yeni proje oluşturma
Yerel kod desteği olan yeni bir proje oluşturmak için bu işlem başka herhangi bir Android Studio projesini oluşturmaya benzer ancak ek bir adım içerir:
- Sihirbazın Projenizi seçin bölümünde Yerel C++ proje türünü seçin.
- İleri'yi tıklayın.
- Sihirbazın bir sonraki bölümündeki diğer tüm alanları tamamlayın.
- İleri'yi tıklayın.
-
Sihirbazın C++ Desteğini Özelleştirme bölümünde, projenizi C++ Standart alanı ile özelleştirebilirsiniz.
- Açılır listeden hangi C++ standartlaştırmayı kullanmak istediğinizi seçin. Araç Zinciri Varsayılanı seçildiğinde varsayılan CMake ayarı kullanılır.
- Son'u tıklayın.
Android Studio yeni projenizi oluşturmayı bitirdikten sonra, IDE'nin sol tarafındaki Proje bölmesini açın ve menüden Android görünümünü seçin. Şekil 1'de gösterildiği gibi Android Studio, cpp grubunu ekler:
Şekil 1. Yerel kaynaklarınız ve harici derleme komut dosyalarınız için Android görüntüleme grupları.
Not: Bu görünüm, diskteki gerçek dosya hiyerarşisini yansıtmaz ancak projenizde gezinmeyi kolaylaştırmak için benzer dosyaları gruplandırır.
cpp grubu; tüm yerel kaynak dosyalarını, üstbilgileri, CMake veya ndk-build
için derleme komut dosyalarını ve projenizin parçası olan önceden oluşturulmuş kitaplıkları bulabileceğiniz yerdir. Android Studio, yeni projeler için örnek bir C++ kaynak dosyası (native-lib.cpp
) oluşturur ve bunu uygulama modülünüzün src/main/cpp/
dizinine yerleştirir. Bu örnek kod, "Hello from C++"
dizesini döndüren basit bir C++ işlevi (stringFromJNI()
) sağlar. Yeni yerel kaynak dosyaları oluşturma bölümünden projenize nasıl ek kaynak dosyalar ekleyeceğinizi öğrenin.
build.gradle
dosyaları Gradle'a uygulamanızı derleme talimatı verdiği gibi, CMake ve ndk-build
yerel kitaplığınızı nasıl oluşturacağınızı öğrenmek için bir derleme komut dosyası gerektirir. Android Studio, yeni projeler için bir CMake derleme komut dosyası (CMakeLists.txt
) oluşturur ve bunu modülünüzün kök dizinine yerleştirir.
Bu derleme komut dosyasının içeriği hakkında daha fazla bilgi edinmek için CMake'i Yapılandırma bölümünü okuyun.
Örnek uygulamayı derleyip çalıştırma
Çalıştır'ı tıkladığınızda Android Studio, Android cihazınızda veya emülatörünüzde "C++'tan Merhaba" metnini görüntüleyen bir uygulama oluşturup başlatır. Aşağıdaki genel bakışta, örnek uygulamayı derleyip çalıştırmak için gerçekleşen etkinlikler açıklanmaktadır:
- Harici derleme komut dosyanızdaki Gradle çağrıları
CMakeLists.txt
. - CMake, derleme komut dosyasındaki komutları izleyerek bir C++ kaynak dosyasını (
native-lib.cpp
) paylaşılan bir nesne kitaplığında derler ve dosyayılibnative-lib.so
olarak adlandırır. Gradle daha sonra paketi uygulamada paketler. - Çalışma zamanında uygulamanın
MainActivity
aracı, yerel kitaplığıSystem.loadLibrary()
ile yükler. Kitaplığın yerel işlevistringFromJNI()
, artık uygulamada kullanılabilir. -
MainActivity.onCreate()
,stringFromJNI()
çağırır;"Hello from C++"
değerini döndürür veTextView
kodunu güncellemek için kullanır.
Gradle'ın uygulamada yerel kitaplığı paketlediğini doğrulamak için APK Analiz Aracı'nı kullanın:
- Derleme > Derleme Paketleri / APK'lar > APK'lar oluştur'u seçin.
- Derleme > APK'yı Analiz Et'i seçin.
app/build/outputs/
dizininden APK'yı veya AAB'yi seçin ve OK'i (Tamam) tıklayın.- Şekil 2'de gösterildiği gibi
libnative-lib.so
öğesini,lib/<ABI>/
altındaki APK Analiz Aracı penceresinde görebilirsiniz.2. Şekil. APK Analiz Aracı'nı kullanarak yerel bir kitaplığı bulun.
İpucu: Yerel kod kullanan diğer Android uygulamalarıyla deneme yapmak istiyorsanız Dosya > Yeni > Örneği İçe Aktar'ı tıklayın ve Ndk listesinden bir örnek proje seçin.
Yeni C/C++ kaynak dosyaları oluşturma
Mevcut bir projeye yeni C/C++ kaynak dosyaları eklemek için şu adımları uygulayın:
- Uygulamanızın ana kaynak grubunda zaten bir
cpp/
dizini yoksa aşağıdaki şekilde bir dizin oluşturun: - IDE'nin sol tarafındaki Proje bölmesini açın ve menüden Proje görünümünü seçin.
- your-module > src bölümüne gidin.
- Ana dizini sağ tıklayın ve Yeni > Dizin'i seçin.
- Dizin adı olarak
cpp
girin ve OK (Tamam) seçeneğini tıklayın. cpp/
dizinini sağ tıklayın ve Yeni > C/C++ Kaynak Dosya'yı seçin.- Kaynak dosyanız için
native-lib
gibi bir ad girin. - Tür menüsünde kaynak dosyanızın dosya uzantısını (ör.
.cpp
) seçin.- Menüye
.cxx
veya.hxx
gibi farklı dosya türlerini eklemek için Dosya Türlerini Düzenle'yitıklayın. Açılan Yeni Dosya Uzantıları iletişim kutusunda, Kaynak Uzantısı ve Başlık Uzantısı menülerinden başka bir dosya uzantısı seçin ve Tamam'ı tıklayın.
- Menüye
- Başlık dosyası oluşturmak için İlişkilendirilmiş bir başlık oluştur onay kutusunu işaretleyin.
- Tamam'ı tıklayın.
Projenize yeni C/C++ dosyaları ekledikten sonra, dosyaları yerel kitaplığınıza dahil etmek için yine CMake'i yapılandırmanız gerekir.
Ek kaynaklar
Uygulamanızda C/C++ kodunu destekleme hakkında daha fazla bilgi edinmek için aşağıdaki kaynağı deneyin.
Codelab uygulamaları
- Android Studio ile Hello-CMake oluşturma Bu codelab'de, Android NDK proje geliştirmeye başlamak için Android Studio CMake şablonunun nasıl kullanılacağı gösterilmektedir.