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 uygulamanın C/C++ kodundaki metin girişini işlemesine yardımcı olmak için tasarlanmış bir Jetpack kitaplığıdır. GameActivity, NativeActivity'nin doğrudan alt öğesidir ve benzer bir mimariye sahiptir:

alt_text

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

  • Java tarafı bileşen aracılığıyla Android çerçevesiyle etkileşimde bulunma.
  • Uygulama döngüsü komutlarını, giriş etkinliklerini ve giriş metnini yerel tarafa iletme.
  • C/C++ kaynak kodunu üç mantıksal bileşene modelleme:
    • GameActivity'nin Java işlevini doğrudan destekleyen ve etkinlikleri native_app_glue'ye ekleyen GameActivity'nin JNI işlevleri.
    • native_app_glue, çoğunlukla kendi yerel iş parçacığında (uygulamanın ana iş parçacığından farklı) çalışır ve görevleri looper'ıyla yürütür.
    • Uygulamanın oyun kodu. Bu kod, native_app_glue içinde sıraya eklenen etkinlikleri sorgulayarak işler ve native_app_glue iş parçacığında oyun kodunu yürütür.

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

NativeActivity ile ilgili bilginiz varsa 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şimi çok daha kolay hale gelir.
  • Dokunma ve tuş girişi etkinlikleri için GameActivity, NativeActivity'ın kullandığı InputQueue'ten ayrı olarak android_input_buffer arayüzüyle tamamen yeni bir uygulamaya sahiptir.
  • GameActivity, diğer Jetpack bileşenlerini sorunsuz bir şekilde kullanmanıza olanak tanıyan AppCompatActivity sınıfından türetilmiş bir sınıftır. ActionBar, Fragment ve diğer tüm
  • GameActivity, GameTextInput kitaplığını entegre ederek metin girişi işlevi ekler.
  • GameActivity'ten türetilen uygulamaların, C/C++ kodunun üç bölümünü de tek bir kitaplıkta oluşturması beklenir. Öte yandan, NativeActivity'ın JNI işlevleri çerçevenin bir parçasıdır (her zaman OS tarafından yüklenir). Bu nedenle, yalnızca native_app_glue ve uygulamanın C/C++ kodunun tek bir kitaplıkta derlenmesi beklenir.
  • NativeActivity, Android çerçevesinin bir parçasıdır ve Android'in sürüm döngüsünü (genellikle yıllık) izler. GameActivity, çok daha sık (genellikle iki haftada bir) sürüm döngüsü olan Jetpack kitaplığının bir parçasıdır. Bu nedenle, yeni özellikler ve hata düzeltmeleri çok daha hızlı yayınlanabilir.

Yayınlama konumları

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

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

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

Jetpack kitaplığı ve AGDK zip paketi kanallarında GameActivity, AAR ile 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ünün altında)

Bu sayfadan bağlantı verilen entegrasyon talimatlarında, Prefab'i derleme sisteminizde kullanabileceğiniz varsayılır. Aksi takdirde, prefab/modules/game-activity/include klasörü altında paketlenmiş kaynak kodu derleme sisteminize kopyalayıp gerekli entegrasyon adımlarını uygulayabilirsiniz. Android Jetpack kitaplığının androidx altındaki sürümler için benzer bir dosya yapısı vardır. Varsayılan olarak Gradle, AAR'ları önbelleğe alma dizininde (~/.gradle/caches/...) açar. prefab/modules/game-activity/include ifadesini arayarak ve hedeflediğiniz sürümün altındaki konumu seçerek C/C++ kaynak kodunu 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 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'ü uygulamalarınıza entegre etmek için aşağıdaki kılavuzları uygulayın:

Ek kaynaklar

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

Geri bildirim

GameActivity ile ilgili hataları bildirmek veya yeni özellikler istemek için GameActivity sorun izleyicisini kullanın.