C ve C++ kodunu Android projenize eklemek için kodu bir
Proje modülünüzde cpp
dizini. 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 kullanışlı olan CMake'i destekler.
Android Studio, ndk-build
'i de destekler.
CMake'den daha hızlı olabilir, ancak yalnızca Android'i destekler. Hem CMake hem de
Aynı modülde ndk-build
şu anda desteklenmiyor.
Mevcut bir ndk-build
kitaplığını Android Studio'ya aktarmak için
projenizin farklı yönleri için
Gradle'ı yerel kitaplık projenize bağlayın.
Bu sayfada, Android Studio'yu gerekli geliştirme araçlarını, C/C++ ile yeni proje oluşturma desteği ve projenize yeni C/C++ dosyaları ekleyin.
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.
- Yerel kodunuz varsa veya önceden oluşturulmuş bir yerel kitaplığı içe aktarmak istiyorsanız bu adımı atlayın.
-
CMake'i şunun için yapılandırın:
yerel kaynak kodunuzu bir kitaplıkta derleyin. Önceden derlenmiş veya platform kitaplıklarını içe aktarıyor ve bunlara bağlantı oluşturuyorsanız bu derleme komut dosyası gereklidir.
- Halihazırda
CMakeLists.txt
derleme komut dosyası veyandk-build
kullanıyor ve şunları içeriyor birAndroid.mk
komut dosyası oluşturamıyorsanız bu adımı atlayın.
- Halihazırda
-
CMake veya
ndk-build
komut dosyası dosyanızı belirterek Gradle'ı yapılandırın. Gradle, derleme komut dosyasını kullanarak kaynak kodunu Android Studio projesi oluşturun ve yerel kitaplığınızı uygulamaya paketleyin.
Projenizi yapılandırdıktan sonra JNI çerçevesini kullanarak Java veya Kotlin kodundan yerel işlevlerinize erişin. Uygulamanızı geliştirip ç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 Yerel Geliştirme Kiti (NDK): C ve C++ kodunu Android NDK, yerel reklamları yönetmenize olanak tanıyan platform kitaplıkları sağlar etkinlikler ve sensörler ile dokunma gibi fiziksel cihaz bileşenlerine erişme giriş.
-
CMake:
yerel geliştirmenizi oluşturmak için Gradle ile birlikte çalışan harici derleme aracı
kitaplığını açar. 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ı makaleyi inceleyin.
C/C++ desteği ile yeni bir proje oluşturma
Yerel kod desteğine sahip yeni bir proje oluşturma işlemi, başka bir Android Studio projesi oluşturmaya benzer ancak ek bir adım içerir:
- Sihirbazın Projenizi seçin bölümünde Doğal 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 Chrome (C++) Desteğini Özelleştirme bölümünde
C++ Standard alanına girin.
- Kullanmak istediğiniz C++ standartlaşmasını seçmek için açılır listeyi kullanın. Araç Zinciri Seçme Varsayılan seçeneği, varsayılan CMake ayarını kullanır.
- Son'u tıklayın.
Android Studio yeni projenizi oluşturmayı tamamladıktan sonra, IDE'nin sol tarafındaki Proje bölmesini 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, 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. Yeni projeler için Android Studio
native-lib.cpp
örnek bir C++ kaynak dosyası oluşturur ve bunu
uygulama modülünüzün src/main/cpp/
dizininde bulabilirsiniz. Bu örnek
kodu basit bir C++ işlevi (stringFromJNI()
) sağlar.
"Hello from C++"
dizesini döndürür. Yeni yerel kaynak dosyaları oluşturma hakkındaki bölümde, projenize nasıl ek kaynak dosyası ekleyeceğinizi öğrenin.
build.gradle
dosyalarının Gradle'a dosya oluşturma talimatlarına benzer şekilde
CMake ve ndk-build
için derleme komut dosyası gerekir,
. Android Studio yeni projeler için bir CMake derlemesi oluşturur
komut dosyasını CMakeLists.txt
ekler ve 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
"C++'tan merhaba" metnini görüntüleyen bir uygulama derler ve başlatır şurada:
Android cihaz veya emülatör. Aşağıdaki genel bakış, örnek uygulamayı oluşturmak ve çalıştırmak için gerçekleşen etkinlikleri açıklar:
- Harici derleme komut dosyanıza Gradle çağrıları,
CMakeLists.txt
- CMake,
native-lib.cpp
adlı bir C++ kaynak dosyasını paylaşılan bir nesne kitaplığına derlemek için derleme komut dosyasında verilen komutları uygular ve dosyayılibnative-lib.so
olarak adlandırır. Ardından Gradle, bu dosyayı uygulamaya paketler. - Çalışma zamanı sırasında uygulamanın
MainActivity
öğesi yerel dosyayı yükler kitaplığı kullanarakSystem.loadLibrary()
. Kitaplığın yerel işlevi,stringFromJNI()
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 > Paket/APK Derle > APK 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.Şekil 2. APK'yı kullanarak yerel kitaplık bulma Analiz Aracı.
İpucu: Yerel kod kullanan diğer Android uygulamalarını denemek istiyorsanız Dosya > Yeni > Sana Özel İç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'yi seçin.
- Ana dizini sağ tıklayın ve Yeni > Dizin'e gidin.
- 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ünde dosya uzantısını seçin.
kaynak dosyanız için (
.cpp
gibi) kullanın.- Menüye
.cxx
veya.hxx
gibi başka dosya türleri eklemek için Dosya Türlerini Düzenle'yitıklayın. Yeni Dosya Uzantıları açılırsa, açılır menüden başka bir dosya uzantısı seçin Kaynak Uzantısı ve Üstbilgi Uzantısı menüleri 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, 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 şunu deneyin: gösterir.
Codelab uygulamaları
- Android Studio ile Hello-CMake oluşturma Bu codelab'de, reklam yayınlamaya başlamak için Android Studio CMake şablonunun nasıl kullanılacağı Android NDK proje geliştirme.