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şlerini işlemesine yardımcı olmak için tasarlanmış bir Jetpack kitaplığıdır. GameActivity, NativeActivity türünün 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şimde bulunma.
  • Uygulama döngüsü komutlarını, giriş etkinliklerini 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'e sıraya sokan JNI işlevleri.
    • native_app_glue API'si, uygulamanın ana iş parçacığından farklı olarak çoğunlukla kendi yerel iş parçacığında çalışır ve döngü oluşturucusuyla görevleri yürütür.
    • native_app_glue içinde sıraya alınan etkinlikleri yoklayan, işleyen ve native_app_glue iş parçacığı içinde oyun kodu yürüten uygulama oyun kodu.

GameActivity sayesinde temel oyun geliştirme süreçlerinize odaklanabilir ve JNI koduyla uğraşmak için çok fazla zaman harcamak zorunda kalmazsınız.

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

  • GameActivity, SurfaceView biçiminde oluşturularak oyunların diğer kullanıcı arayüzü bileşenleriyle etkileşim kurmasını çok kolaylaştırır.
  • Dokunma ve tuş giriş etkinlikleri için GameActivity, NativeActivity tarafından kullanılan InputQueue'dan ayrı olarak android_input_buffer arayüzüyle tamamen yeni bir uygulamaya sahip.
  • GameActivity, türetilmiş bir AppCompatActivity sınıfıdır. Bu sayede diğer Jetpack bileşenlerini sorunsuz bir şekilde kullanabilirsiniz. ActionBar, Fragment ve diğer uygulamalar kullanılabilir.
  • GameActivity, GameTextInput kitaplığını entegre ederek metin giriş 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 yayınlama döngüsünü (genellikle yıllık olarak) takip eder. GameActivity, Jetpack kitaplığının bir parçasıdır. Bu kitaplık çok daha sık bir sürüm döngüsüne (genellikle iki haftada bir) sahiptir. Yeni özellikler ve hata düzeltmeleri çok daha hızlı bir şekilde kullanıma sunulabilir.

Konumları serbest bırakın

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 ve sonraki sürümlerden itibaren kaynak kodu yerine statik kitaplığı kullanmanızı öneririz.

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

Jetpack kitaplığı ve AGDK zip paket kanalları sayesinde GameActivity, bir AAR ile yayınlandı. 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ü 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ığının androidx altındaki sürümler için de benzer bir dosya yapısı mevcuttur. Gradle, varsayılan olarak önbellek dizininde (~/.gradle/caches/...) AAR'leri açar. C/C++ kaynak kodunu, prefab/modules/game-activity/include araması yapıp istediğiniz sürüm altındaki konumu seçerek 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. Aşağıdakiler dahil olmak üzere prefab/modules/game-activity/include altındaki tüm C/C++ kaynak kodlarını bulup kopyalayın:
    • İlgili GameActivity C/C++ kodu için game-activity
    • İlgili GameTextInput 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 ürününü uygulamalarınıza entegre etmek için şu kılavuzları takip edin:

Ek kaynaklar

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

Geri bildirim

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