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 oluştururken kodu, Gradle'ın uygulamanızla birlikte paketleyebileceği bir yerel kitaplıkta derlenir. Böylece Java veya Kotlin kodunuz yerel kitaplığınızdaki işlevleri çağırabilir . JNI'yi kullanma hakkında daha fazla bilgi edinmek için hakkında daha fazla bilgi için Android.

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ını Android Studio projenize ekleyebilirsiniz.
    • Yerel kodunuz varsa veya Önceden oluşturulmuş yerel bir kitaplığı içe aktarın.
  2. CMake'i şunun için yapılandırın: yerel kaynak kodunuzu bir kitaplıkta derleyin. Bu derleme komut dosyası gerekli Önceden oluşturulmuş platformlara veya platforma göre içe aktarıyor ve bağlantı oluşturuyorsanız kitaplıklar.
    • 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. Yapılandır CMake veya ndk-build için bir yol sağlayarak Gradle komut dosyası olarak da kullanabilirsiniz. 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 yerel işlevlerinize şuradan erişin: JNI çerçevesini kullanan Java veya Kotlin kodu. Uygulamanızı geliştirip çalıştırmak için Çalıştırçalıştırıp menü çubuğundan uygulamayı çalıştır tıklayın.

Not: Mevcut projenizde desteği sonlandırılmış ndkCompile aracını kullanıyorsanız, CMake veya ndk-build.

NDK'yı indirin ve araç derleyin

Uygulamanızın yerel kodunu derlemek ve hata ayıklamak için aşağıdakilere ihtiyacınız vardır: bileşenler:

  • 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 kullanmayı planlıyorsanız bu bileşene ihtiyacınız yoktur ndk-build
  • 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ği ile yeni bir proje oluşturma

Yerel kod desteğiyle yeni bir proje oluşturma süreci şuna benzer: başka bir Android cihazda Studio projesi, ancak ek bir adımla:

  1. Sihirbazın Projenizi seçin bölümünde, Yerel 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.
    • Açılır listeyi kullanarak kullanmak istediğiniz C++ standartlaştırmasını seçin. 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 için Android görüntüleme grupları ve harici derleme komut dosyalarıdır.

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 tüm yerel kaynak dosyalar, başlıklar, CMake veya ndk-build için derleme komut dosyaları ve önceden oluşturulmuş kitaplıklar da vardır. 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. Ek bilgiler eklemeyi öğrenin bölümünde projenize istediğiniz kaynak dosyalarının yeni yerel kaynak dosyaları oluşturabilirsiniz.

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ırın.

Örnek uygulamayı derleyip çalıştırma

Çalıştır çalıştırıp menü çubuğundan uygulamayı ç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ış bölümünde, aşağıdaki adımları uygulayın:

  1. Harici derleme komut dosyanıza Gradle çağrıları, CMakeLists.txt
  2. CMake, bir C++ kaynağını derlemek için derleme komut dosyasındaki komutları izler dosyasını (native-lib.cpp) paylaşılan nesne kitaplığına ve adlara taşıyın libnative-lib.so. Ardından Gradle bunu 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() araması yapıyor, "Hello from C++" değerini döndürür ve TextView öğesini güncellemek için bunu kullanır.

Gradle'ın uygulamada yerel kitaplığı paketlediğini doğrulamak için şunu kullanın: APK Analiz Aracı:

  1. Derleme > Derleme Paketleri / APK'lar > APK oluşturun.
  2. Derleme > APK'yı analiz edin.
  3. app/build/outputs/ dizininden APK veya AAB'yi seçin ve Tamam'ı tıklayın.
  4. Şekil 2'de gösterildiği gibi, libnative-lib.so öğesini lib/<ABI>/ altındaki APK Analiz Aracı penceresi.

    Şekil 2. APK'yı kullanarak yerel kitaplık bulma Analiz Aracı.

İpucu: Aşağıdaki Android uygulamalarıyla deneme yapmak istiyorsanız yerel kod kullanıyorsanız Dosya > Yeni > Örneği İçe Aktar ve Ndk listesinden ö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. Ana kaynakta zaten bir cpp/ dizininiz yoksa uygulamanız varsa aşağıdaki gibi 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. main dizinini sağ tıklayın ve Yeni > Dizin'e gidin.
    4. Dizin adı olarak cpp yazın ve Tamam'ı tıklayın.

  2. cpp/ dizinini sağ tıklayın ve Yeni > C/C++ Kaynak Dosyası.
  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.
    • Dosya Türlerini Düzenle'yi tıklayın. Menüye diğer dosya türlerini eklemek için .cxx veya .hxx. 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. Bir başlık dosyası oluşturmak için ilişkili üstbilgi onay kutusunu işaretleyin.
  6. Tamam'ı tıklayın.

Projenize yeni C/C++ dosyaları ekledikten sonra da bunu CMake'i yapılandırarak .

Ek kaynaklar

Uygulamanızda C/C++ kodunu destekleme hakkında daha fazla bilgi edinmek için şunu deneyin: gösterir.

Codelab'ler