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:

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_glueiçinde sıraya alınan etkinlikleri yoklayan ve işleyen,native_app_glueiş parçacığında oyun kodunu yürüten uygulamanın oyun kodu.
- GameActivity'nin Java işlevini doğrudan destekleyen ve etkinlikleri
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,SurfaceViewolarak 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_bufferarayüzüyle tamamen yeni bir uygulamaya sahiptir. Bu uygulama,NativeActivitytarafından kullanılanInputQueue'tan ayrıdır. GameActivity,AppCompatActivitysı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,Fragmentve diğerleri kullanılabilir.GameActivity, GameTextInput kitaplığını entegre ederek metin girişi işlevselliği ekler.GameActivitykaynaklı 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ızcanative_app_glueve 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:
- Android Jetpack kitaplığının bir parçası olarak (önerilir)
- As AOSP kaynak kodu
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 (
/prefabklasö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:
- GameActivity ve AGDK sürüm notları.
- GameActivity'de GameTextInput'u kullanın.
- NativeActivity geçiş rehberi.
- GameActivity referans belgeleri.
- GameActivity uygulaması.
Geri bildirim
Hata bildirmek veya GameActivity'ye yeni özellikler istemek için GameActivity Issue Tracker'ı kullanın.