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:
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'nin Java işlevselliğini doğrudan destekleyen ve etkinlikleri
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ılanInputQueue
'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ızcanative_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:
- Android Jetpack kitaplığının bir parçası olarak (önerilir)
- As AOSP kaynak kodu
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:
- GameActivity ve AGDK sürüm notları.
- GameActivity'de GameTextInput'u kullanın.
- NativeActivity taşıma rehberi.
- GameActivity referans belgeleri.
- GameActivity uygulaması.
Geri bildirim
Hataları bildirmek veya GameActivity'ye yeni özellikler eklenmesini istemek için GameActivity sorun izleyicisini kullanın.