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

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

alt_text

Yukarıdaki şemada gösterildiği gibi, GameActivity aşağıdaki işlevleri yerine getirir:

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

GameActivity sayesinde temel oyun geliştirme sürecinize odaklanabilir ve JNI koduyla uğraşarak çok fazla zaman harcamaktan kaçınabilirsiniz.

NativeActivity ile ilgili bilginiz varsa GameActivity ve NativeActivity arasındaki temel farklar şunlardır:

  • GameActivity, SurfaceView olarak oluşturulur. Böylece oyunların diğer kullanıcı arayüzü bileşenleriyle etkileşim kurması çok daha kolay hale gelir.
  • Dokunma ve tuş girişi etkinlikleri için GameActivity, android_input_buffer arayüzüyle tamamen yeni bir uygulamaya sahiptir. Bu uygulama, NativeActivity tarafından kullanılan InputQueue'tan ayrıdır.
  • GameActivity, AppCompatActivity sınıfından türetilmiş bir sınıftır ve diğer Jetpack bileşenlerini sorunsuz bir şekilde kullanmanıza olanak tanır. ActionBar, Fragment ve diğerleri kullanılabilir.
  • GameActivity, GameTextInput kitaplığını entegre ederek metin girişi işlevselliği ekler.
  • GameActivity kaynaklı uygulamaların, C/C++ kodunun üç bölümünü de tek bir kitaplıkta oluşturması beklenir. Diğer yandan, NativeActivity'nın JNI işlevleri, çerçeveye dahildir (her zaman OS tarafından yüklenir). Bu nedenle, yalnızca native_app_glue ve uygulamanın C/C++ kodu tek bir kitaplıkta oluşturulmalıdır.
  • 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 yayınlanan (genellikle iki haftada bir) Jetpack kitaplığının bir parçasıdır. Yeni özellikler ve hata düzeltmeleri çok daha hızlı bir şekilde kullanıma sunulabilir.

Yayınlanma yerleri

GameActivity kitaplığı aşağıdaki kanallarda kullanılabilir:

C/C++ kodu, tüm sürüm kanallarında kaynak kodu olarak Prefab biçiminde sağlanır. GameActivity 1.2.2 sürümü, dağıtıma statik bir kitaplık ekler. Bu sürümden itibaren kaynak kodu yerine statik kitaplığı kullanmanızı öneririz.

Jetpack kitaplığının içeriği

Jetpack kitaplığıyla GameActivity, AAR ile yayınlanır. Bu AAR aşağıdaki temel bileşenleri içerir:

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

Bu sayfadan bağlantısı verilen entegrasyon talimatları, derleme sisteminizde Prefab'ı kullanabileceğinizi varsayar. Aksi takdirde, prefab/modules/game-activity/include klasöründe paketlenmiş kaynak kodunu derleme sisteminize kopyalayabilir ve gerekli entegrasyon adımlarını uygulayabilirsiniz. Android Jetpack kitaplığı için androidx altındaki yayınlarda da benzer bir dosya yapısı bulunur. Gradle, AAR'leri varsayılan olarak önbellek dizininde (~/.gradle/caches/...) açar. C/C++ kaynak kodunu prefab/modules/game-activity/include araması yaparak ve amaçladığınız yayınlanan sürümün altındaki konumu seçerek bulabilirsiniz.

Jetpack kitaplığını kullanarak entegrasyon yapmayla ilgili talimatlar için GameActivity'yi kullanmaya başlama başlıklı makaleyi inceleyin.

AOSP kaynak kodunun içeriği

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

Entegrasyon kılavuzları

GameActivity'yı uygulamalarınıza entegre etmek için bu kılavuzları uygulayın:

Ek kaynaklar

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

Geri bildirim

Hata bildirmek veya GameActivity'ye yeni özellikler istemek için GameActivity Issue Tracker'ı kullanın.