GameActivity Android Game Development Kit'in bir parçasıdır.

GameActivity, Android oyunların uygulama döngüsü komutlarını, giriş etkinliklerini ve uygulamanın C/C++ kodundaki metin girişini işlemesine yardımcı olmak için tasarlanmış bir Jetpack kitaplığıdır. GameActivity, NativeActivity öğesinin doğrudan alt etiketidir ve benzer bir mimariye sahiptir:

alternatif metin

Yukarıdaki şemada gösterildiği gibi, GameActivity aşağıdaki işlevleri gerçekleştirir:

  • Java tarafı bileşeni aracılığıyla Android çerçevesiyle etkileşim kurma.
  • Uygulama döngüsü komutlarını, etkinlikleri ve giriş metnini yerel tarafa iletme.
  • C/C++ kaynak kodunu üç mantıksal bileşene göre modelleme:
    • GameActivity'nin, GameActivity'nin Java işlevini doğrudan destekleyen ve etkinlikleri native_app_glue'a sıraya sokan JNI işlevleri.
    • native_app_glue; çoğunlukla kendi yerel iş parçacığında (uygulamanın ana iş parçacığından farklı) çalışan ve döngü oluşturucusuyla görevleri yürütür.
    • Uygulamanın native_app_glue içinde sıraya alınan etkinlikleri yoklayıp işleyen ve native_app_glue iş parçacığı içinde oyun kodunu yürüten oyun kodu.

GameActivity sayesinde temel oyun geliştirmenize odaklanabilir ve JNI koduyla uğraşmak için çok fazla zaman harcamaktan kaçınabilirsiniz.

NativeActivity hakkında zaten bilginiz varsa GameActivity ile NativeActivity arasındaki temel farklar aşağıdaki gibidir:

  • GameActivity, SurfaceView olarak oluşturulacağından oyunların diğer kullanıcı arayüzü bileşenleriyle çok daha kolay etkileşimde bulunabilmesini sağlar.
  • Dokunma ve tuş giriş etkinlikleri için GameActivity, NativeActivity tarafından kullanılan InputQueue'dan ayrı olarak android_input_buffer arayüzüne sahip tamamen yeni bir uygulamaya sahiptir.
  • GameActivity, diğer Jetpack bileşenlerini sorunsuz bir şekilde kullanabilmenizi sağlayan AppCompatActivity türetilmiş bir sınıfıdır. ActionBar, Fragment ve diğerleri kullanılabilir.
  • GameActivity, GameTextInput kitaplığını entegre ederek metin girişi işlevi ekler.
  • GameActivity ürününden türetilen uygulamaların, C/C++ kodunun üç kısmını da tek bir kitaplıkta derlemesi beklenir. Diğer yandan, NativeActivity'in JNI işlevleri çerçevenin bir parçasıdır (her zaman OS tarafından yüklenir). Bu nedenle, tek bir kitaplıkta yalnızca native_app_glue ve uygulamanın C/C++ kodunun oluşturulması beklenir.
  • NativeActivity, Android çerçevesinin bir parçasıdır ve sürüm döngüsünü (genellikle yıllık) takip eder. GameActivity, çok daha sık bir sürüm döngüsüne (genellikle iki haftada bir) sahip olan Jetpack kitaplığının bir parçasıdır. Yeni özellikler ve hata düzeltmeleri çok daha hızlı bir şekilde teslim edilebilir.

Yayın konumları

GameActivity kitaplığı aşağıdaki kanallarda mevcuttur:

C/C++ kodu, tüm sürüm kanallarında Prefab biçimi kullanılarak kaynak kodu olarak sağlanır. GameActivity sürüm 1.2.2, dağıtıma statik bir kitaplık ekler. Bu sürümden başlayarak ve sonraki sürümlerde, kaynak kodu yerine statik kitaplığı kullanmanızı öneririz.

Jetpack kitaplığının ve AGDK zip paketinin içeriği

GameActivity, Jetpack kitaplığı ve AGDK zip paketi kanallarıyla bir AAR ile yayınlanmaktadır. Bu AAR, aşağıdaki ana bileşenleri içerir:

  • Java kodu için bir JAR dosyası
  • C/C++statik kitaplığı game-activity_static, GameActivity 1.2.2 ve sonraki sürümlere dahildir.
  • C/C++ kaynak kodu (/prefab klasörü altında)

Bu sayfada bağlantısı verilen entegrasyon talimatlarında Prefab'i derleme sisteminizde kullanabileceğiniz varsayılmaktadır. Aksi takdirde prefab/modules/game-activity/include klasörü altında paketlenmiş kaynak kodunu derleme sisteminize kopyalayıp gerekli entegrasyon adımlarını uygulayabilirsiniz. Android Jetpack kitaplığı için androidx altındaki sürümler için de benzer bir dosya yapısı mevcuttur; varsayılan olarak Gradle, AAR'leri önbellek dizininde (~/.gradle/caches/...) açar. prefab/modules/game-activity/include araması yapıp istediğiniz sürüm sürümünden konumu seçerek C/C++ kaynak kodunu bulabilirsiniz.

Jetpack kitaplığını kullanarak entegrasyon hakkında talimatlar için GameActivity'yi kullanmaya başlama bölümüne bakın.

AGDK kitaplığı posta paketi için C/C++ kodunu almak üzere şu adımları uygulayın:

  1. İndirilen paketin sıkıştırmasını açın.
  2. Sıkıştırılmamış paketteki GameActivity-release.aar dosyasını açın.
  3. prefab/modules/game-activity/include altındaki tüm C/C++ kaynak kodlarını bulup kopyalayın:
    • GameActivity ile ilgili C/C++ kodu için game-activity
    • GameTextInput ile ilgili C/C++ kodu için game-text-input

AOSP kaynak kodunun içeriği

AOSP her zaman en son kaynak kodunu içerir. Kendi sürümlerinizi oluşturmak veya kaynağı doğrudan derleme ortamınıza entegre etmek için derleme talimatlarını uygulayın. C/C++ kaynak kodu, Jetpack kitaplığı ve AGDK zip paketine benzer bir dosya yapısına kaydedilir.

Entegrasyon kılavuzları

GameActivity uygulamasını uygulamalarınıza entegre etmek için şu kılavuzları izleyin:

Ek kaynaklar

GameActivity hakkında daha fazla bilgi için aşağıdakilere bakın:

Geri bildirim

GameActivity'ye hata bildirmek veya yeni özellikler isteğinde bulunmak için GameActivity sorun izleyiciyi kullanın.