Projenize C ve C++ kodu ekleme

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:

  1. 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.
  2. 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ı veya ndk-build kullanıyor ve şunları içeriyor bir Android.mk komut dosyası oluşturamıyorsanız bu adımı atlayın.
  3. 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ırArdından, menü çubuğundan uygulamayı çalıştırın. 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:

  1. Sihirbazın Projenizi seçin bölümünde Doğal C++ proje türünü seçin.
  2. İleri'yi tıklayın.
  3. Sihirbazın bir sonraki bölümündeki diğer tüm alanları tamamlayın.
  4. İleri'yi tıklayın.
  5. 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.
  6. 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 Ardından, menü çubuğundan uygulamayı çalıştırın.'ı 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:

  1. Harici derleme komut dosyanıza Gradle çağrıları, CMakeLists.txt
  2. 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.
  3. Çalışma zamanı sırasında uygulamanın MainActivity öğesi yerel dosyayı yükler kitaplığı kullanarak System.loadLibrary(). Kitaplığın yerel işlevi, stringFromJNI() artık uygulamada kullanılabilir.
  4. MainActivity.onCreate(), stringFromJNI()'u çağırır. Bu işlev "Hello from C++" değerini döndürür ve TextView değerini güncellemek için kullanır.

Gradle'in yerel kitaplığı uygulamaya paketlediğini doğrulamak için APK Analizcisi'ni kullanın:

  1. Derleme > Paket/APK Derle > APK Derle'yi seçin.
  2. Derle > APK'yı Analiz Et'i seçin.
  3. app/build/outputs/ dizininden APK veya AAB'yi seçin ve Tamam'ı tıklayın.
  4. Şekil 2'de gösterildiği gibi, APK Analiz Aracı penceresinde lib/<ABI>/ altında libnative-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:

  1. Uygulamanızın ana kaynak grubunda cpp/ dizini yoksa aşağıdaki adımları uygulayarak bir tane oluşturun:
    1. IDE'nin sol tarafındaki Proje bölmesini açın ve menüden Proje görünümünü seçin.
    2. your-module > src'yi seçin.
    3. Ana dizini sağ tıklayın ve Yeni > Dizin'e gidin.
    4. Dizin adı olarak cpp girin ve Tamam'ı tıklayın.

  2. cpp/ dizinini sağ tıklayın ve Yeni > C/C++ Kaynak Dosyası'nı seçin.
  3. Kaynak dosyanız için native-lib gibi bir ad girin.
  4. 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'yi tı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.
  5. Üstbilgi dosyası oluşturmak için İlişkili bir üstbilgi oluştur onay kutusunu işaretleyin.
  6. 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ı