C ve C++ kodunu proje modülünüzde bir cpp
dizine yerleştirerek Android projenize ekleyin. Projenizi derlediğinizde bu kod, Gradle'ın uygulamanızla paketleyebileceği bir yerel kitaplığa derlenir. Ardından Java veya Kotlin kodunuz, Java Native Interface (JNI) aracılığıyla yerel kitaplığınızdaki işlevleri çağırabilir. JNI çerçevesini kullanma hakkında daha fazla bilgi edinmek için Android için JNI ipuçları başlıklı makaleyi inceleyin.
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. Aynı modülde hem CMake hem de ndk-build
kullanımı şu anda desteklenmemektedir.
Mevcut bir ndk-build
kitaplığını Android Studio projenize aktarmak için Gradle'i 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 nasıl oluşturacağınız ve projenize yeni C/C++ dosyaları nasıl ekleyeceğiniz açıklanmaktadır.
Bunun yerine mevcut bir projeye yerel kod eklemek istiyorsanız aşağıdaki adımları uygulayın:
-
Yeni yerel kaynak dosyaları oluşturun ve dosyaları Android Studio projenize ekleyin.
- Halihazırda yerel kodunuz varsa veya önceden oluşturulmuş bir yerel kitaplığı içe aktarmak istiyorsanız bu adımı atlayın.
-
Yerel kaynak kodunuzu kitaplığa derlemek için CMake'i yapılandırın. Önceden derlenmiş veya platform kitaplıklarını içe aktarıyor ve bunlara bağlantı oluşturuyorsanız bu derleme komut dosyası gereklidir.
- Zaten
CMakeLists.txt
derleme komut dosyası bulunan veyandk-build
kullanan veAndroid.mk
derleme komut dosyası içeren mevcut bir yerel kitaplığınız varsa bu adımı atlayın.
- Zaten
-
CMake veya
ndk-build
komut dosyası dosyanızı belirterek Gradle'ı yapılandırın. Gradle, kaynak kodu Android Studio projenize aktarmak ve yerel kitaplığınızı uygulamaya 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ılan ndkCompile
aracı kullanılıyorsa CMake veya ndk-build
'e geçin.
NDK ve derleme araçlarını indirme
Uygulamanızın yerel kodunu derlemek ve hata ayıklamak için aşağıdaki bileşenlere ihtiyacınız vardır:
- Android Native Development Kit (NDK): Android ile C ve C++ kodu kullanmanıza olanak tanıyan bir araç setidir. 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: Yerleşik kitaplığınızı derlemek için Gradle ile birlikte çalışan harici bir derleme aracıdır. 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ğine sahip yeni bir proje oluşturma
Yerel kod desteği olan yeni bir proje oluşturmak için bu süreç herhangi bir Android Studio projesini oluşturmaya benzer ancak ek bir adım vardır:
- 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ı doldurun.
- İleri'yi tıklayın.
-
Sihirbazın Customize C++ Support (C++ Desteğini Özelleştirme) bölümünde, projenizi C++ Standard alanıyla özelleştirebilirsiniz.
- Kullanmak istediğiniz C++ standardizasyonunu seçmek için açılır listeyi kullanın. Aracı Zinciri Varsayılan'ı seçtiğinizde 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:
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 grubunda, projenizin bir parçası olan tüm yerel kaynak dosyalarını, üstbilgileri, CMake veya ndk-build
için derleme komut dosyalarını ve önceden derlenmiş kitaplıkları bulabilirsiniz. Android Studio, yeni projeler için native-lib.cpp
adlı örnek bir C++ kaynak dosyası oluşturur ve bu dosyayı uygulama modülünüzün src/main/cpp/
dizinine yerleştirir. Bu örnek kodda, "Hello from C++"
dizesini döndüren basit bir C++ işlevi (stringFromJNI()
) sağlanmaktadır. Yeni yerel kaynak dosyaları oluşturma ile ilgili bölümde projenize nasıl ek kaynak dosyalar ekleyeceğinizi öğrenin.
build.gradle
dosyalarının Gradle'e uygulamanızı nasıl derleyeceğini bildirmesine benzer şekilde, CMake ve ndk-build
'ün de yerel kitaplığınızı nasıl derleyeceğini bilmesi için bir derleme komut dosyası gerekir. Android Studio, yeni projeler için bir CMake derleme komut dosyasıCMakeLists.txt
oluşturur ve bu dosyayı 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 başlıklı makaleyi 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şturur ve başlatır. Aşağıdaki genel bakış, örnek uygulamayı oluşturmak ve çalıştırmak için gerçekleşen etkinlikleri açıklar:
- Gradle, harici derleme komut dosyanızı çağırır:
CMakeLists.txt
. - CMake, C++ kaynak dosyasını (
native-lib.cpp
) paylaşılan bir nesne kitaplığında derlemek için derleme komut dosyasındaki komutları izler ve bu dosyayılibnative-lib.so
olarak adlandırır. Ardından Gradle, bu dosyayı uygulamaya paketler. - Çalışma zamanında, uygulamanın
MainActivity
,System.loadLibrary()
kullanarak yerel kitaplığı yükler. Kitaplığın yerel işlevi olanstringFromJNI()
artık uygulamada kullanılabilir. -
MainActivity.onCreate()
,stringFromJNI()
'u çağırır. Bu işlev"Hello from C++"
değerini döndürür veTextView
değerini güncellemek için kullanır.
Gradle'in yerel kitaplığı uygulamaya paketlediğini doğrulamak için APK Analizcisi'ni kullanın:
- Derleme > Paketleri/APK'ları Derle > APK'ları Derle'yi seçin.
- Derle > APK'yı Analiz Et'i seçin.
app/build/outputs/
dizininden APK veya AAB'yi seçin ve Tamam'ı tıklayın.- Şekil 2'de gösterildiği gibi, APK Analiz Aracı penceresinde
lib/<ABI>/
altındalibnative-lib.so
'ü görebilirsiniz.
İ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 aşağıdaki adımları uygulayın:
- Uygulamanızın ana kaynak grubunda
cpp/
dizini yoksa aşağıdaki adımları uygulayarak bir tane 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 Tamam'ı tıklayın. cpp/
dizinini sağ tıklayın ve Yeni > C/C++ Kaynak Dosyası'nı seçin.- Kaynak dosyanız için
native-lib
gibi bir ad girin. - Tür menüsünden kaynak dosyanızın dosya uzantısını (ör.
.cpp
) seçin.- Menüye
.cxx
veya.hxx
gibi başka dosya türleri eklemek için Dosya Türlerini Düzenle'yi tıklayın. Açılan Yeni Dosya Uzantıları iletişim kutusunda, Kaynak Uzantı ve Başlık Uzantısı menülerinden başka bir dosya uzantısı seçin ve Tamam'ı tıklayın.
- Menüye
- Üstbilgi dosyası oluşturmak için İlişkili bir üstbilgi oluştur onay kutusunu işaretleyin.
- Tamam'ı tıklayın.
Projenize yeni C/C++ dosyaları ekledikten sonra da dosyaları yerel kitaplığınıza dahil etmek için 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 kod laboratuvarında, Android NDK proje geliştirmeye başlamak için Android Studio CMake şablonunun nasıl kullanılacağı gösterilmektedir.