GameActivity Android Game Development Kit'in bir parçasıdır.
GameActivity
, Android oyunları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
öğesinin doğrudan alt etiketidir ve benzer bir mimariye sahiptir:
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şim kurma.
- Uygulama döngüsü komutlarını, etkinlikleri 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
'a sıraya sokan JNI işlevleri. native_app_glue
; çoğunlukla kendi yerel iş parçacığında (uygulamanın ana iş parçacığından farklı) çalışan ve döngü oluşturucusuyla görevleri yürütür.- Uygulamanın
native_app_glue
içinde sıraya alınan etkinlikleri yoklayıp işleyen venative_app_glue
iş parçacığı içinde oyun kodunu yürüten oyun kodu.
- GameActivity'nin, GameActivity'nin Java işlevini doğrudan destekleyen ve etkinlikleri
GameActivity
sayesinde temel oyun geliştirmenize odaklanabilir ve JNI koduyla uğraşmak için çok fazla zaman harcamaktan kaçınabilirsiniz.
NativeActivity
hakkında zaten bilginiz varsa GameActivity
ile NativeActivity
arasındaki temel farklar aşağıdaki gibidir:
GameActivity
,SurfaceView
olarak oluşturulacağından oyunların diğer kullanıcı arayüzü bileşenleriyle çok daha kolay etkileşimde bulunabilmesini sağlar.- Dokunma ve tuş giriş etkinlikleri için
GameActivity
,NativeActivity
tarafından kullanılanInputQueue
'dan ayrı olarakandroid_input_buffer
arayüzüne sahip tamamen yeni bir uygulamaya sahiptir. GameActivity
, diğer Jetpack bileşenlerini sorunsuz bir şekilde kullanabilmenizi sağlayanAppCompatActivity
türetilmiş bir sınıfıdır.ActionBar
,Fragment
ve diğerleri kullanılabilir.GameActivity
, GameTextInput kitaplığını entegre ederek metin girişi 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ızcanative_app_glue
ve uygulamanın C/C++ kodunun oluşturulması beklenir.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 bir sürüm döngüsüne (genellikle iki haftada bir) sahip olan Jetpack kitaplığının bir parçasıdır. Yeni özellikler ve hata düzeltmeleri çok daha hızlı bir şekilde teslim edilebilir.
Yayın konumları
GameActivity
kitaplığı aşağıdaki kanallarda mevcuttur:
- Android Jetpack kitaplığının bir parçası (önerilir)
- Zip paketi olarak, AGDK indirme sayfasından indirilebilir
- AOSP kaynak kodu olarak
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 başlayarak ve sonraki sürümlerde, kaynak kodu yerine statik kitaplığı kullanmanızı öneririz.
Jetpack kitaplığının ve AGDK zip paketinin içeriği
GameActivity, Jetpack kitaplığı ve AGDK zip paketi kanallarıyla bir AAR ile yayınlanmaktadır. Bu AAR, aşağıdaki ana bileşenleri içerir:
- Java kodu için bir 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ığı için androidx
altındaki sürümler için de benzer bir dosya yapısı mevcuttur; varsayılan olarak Gradle, AAR'leri önbellek dizininde (~/.gradle/caches/...) açar. prefab/modules/game-activity/include
araması yapıp istediğiniz sürüm sürümünden konumu seçerek C/C++ kaynak kodunu 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:
- İndirilen paketin sıkıştırmasını açın.
- Sıkıştırılmamış paketteki GameActivity-release.aar dosyasını açın.
prefab/modules/game-activity/include
altındaki tüm C/C++ kaynak kodlarını bulup kopyalayın:GameActivity
ile ilgili C/C++ kodu içingame-activity
GameTextInput
ile ilgili C/C++ kodu içingame-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
uygulamasını uygulamalarınıza entegre etmek için şu kılavuzları izleyin:
Ek kaynaklar
GameActivity
hakkında daha fazla bilgi için aşağıdakilere bakın:
- GameActivity ve AGDK sürüm notları.
- GameActivity'de GameTextInput'u kullanın.
- NativeActivity taşıma kılavuzu.
- GameActivity referans dokümanları.
- GameActivity kullanımı.
Geri bildirim
GameActivity'ye hata bildirmek veya yeni özellikler isteğinde bulunmak için GameActivity sorun izleyiciyi kullanın.