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 metin girişini uygulamanın C/C++ kodunda 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şlevselliğini 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 (uygulamanın ana iş parçacığından farklı) çalışan ve görevleri kendi döngü oluşturucusuyla yürüten native_app_glue.
    • 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 ile temel oyun geliştirme sürecinize odaklanabilir ve JNI koduyla uğraşarak çok fazla zaman harcamaktan kaçınabilirsiniz.

NativeActivity'ya aşina iseniz GameActivity ile NativeActivity arasındaki temel farklar şunlardır:

  • GameActivity, SurfaceView olarak oluşturulur. Bu sayede oyunların diğer kullanıcı arayüzü bileşenleriyle etkileşimde bulunması ç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 işletim sistemi tarafından yüklenir). Bu nedenle, yalnızca native_app_glue ve uygulamanın C/C++ kodu tek bir kitaplıkta derlenmelidir.
  • NativeActivity, Android çerçevesinin bir parçasıdır ve yayın 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 konumları

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

C/C++ kodu, tüm yayın 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ığı ve AGDK zip paketinin içeriği

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

  • Java kodu için 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ünde)

Bu sayfadan bağlantısı verilen entegrasyon talimatlarında, derleme sisteminizde Prefab'ı kullanabileceğiniz varsayılır. 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 sürümlerde 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 hedeflediğiniz yayın sürümünü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ığı ve AGDK zip paketiyle benzer bir dosya yapısında kaydedilir.

Entegrasyon kılavuzları

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

Ek kaynaklar

GameActivity hakkında daha fazla bilgi edinmek için aşağıdakileri inceleyin:

Geri bildirim

Hataları bildirmek veya GameActivity'ye yeni özellikler eklenmesini istemek için GameActivity sorun izleyicisini kullanın.