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:
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 venative_app_glue
iş parçacığı içinde oyun kodu yürüten uygulama oyun kodu.
- GameActivity'nin, GameActivity'nin Java işlevini doğrudan destekleyen ve etkinlikleri
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ılanInputQueue
'dan ayrı olarakandroid_input_buffer
arayüzüyle tamamen yeni bir uygulamaya sahip. GameActivity
, türetilmiş birAppCompatActivity
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 yandanNativeActivity
'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 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:
- Android Jetpack kitaplığının bir parçası (önerilir)
- AGDK indirme sayfasından indirilebilir bir zip paketi
- 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 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:
- İndirilen paketin sıkıştırmasını açın.
- Sıkıştırılmamış paketteki GameActivity-Release.aar dosyasını açın.
- 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çingame-activity
- İlgili
GameTextInput
C/C++ kodu içingame-text-input
- İlgili
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:
- GameActivity ve AGDK sürüm notları.
- GameActivity'de GameTextInput kullanın.
- NativeActivity taşıma kılavuzu.
- GameActivity referans dokümanları.
- GameActivity kullanımı.
Geri bildirim
GameActivity'ye hataları bildirmek veya yeni özellikler isteğinde bulunmak için GameActivity sorun izleyiciyi kullanın.