Android Oyun Geliştirme Uzantısı örnekleri, temel özelliklerin nasıl kullanılacağını gösterir görünür. Bu konu başlığında örnekler ve bunları çalıştırmak için gereken ayarlar.
Aşağıdaki örnekler indirilenler sayfası için:
- HelloJNI: Bir tanıtım projesi.
- Endless-Tunnel: Yalnızca Android'e özel bir proje.
- Teapot: Windows ve Android için platformlar arası bir proje.
- AssemblyCode-Link-Objects: Derleme kaynak koduna sahip bir şablon projesi.
Başlamadan önce
Android Game Development Extension'ı ve örnekleri yükleyin. Bkz. hızlı başlangıç kılavuzunu inceleyin. Ayrıca konu hakkında ve bir örnek çalıştırıp Teapot örneğinin Android sürümünü kullanır. açıklayacağım.
Proje yapılandırma kılavuzunda, uzantıyı kullanan bir proje için ayarları yapılandırın: bir Android platformu ve APK ekleyebilirsiniz.
MerhabaJNI
HelloJNI örneği "HelloJNI'dan Merhaba" mesajı gösteren basit bir projedir simgesini tıklayın. Proje, Windows ve diğer platformlar için farklı bir kaynak kodu kümesi kullanıyor Android
- Android kaynak kodu ve gradle derleme komut dosyaları dizini: HelloJNI\AndroidPackaging
- Windows kaynak kodu ve Visual Studio proje dizini: HelloJNI
Projeyi derlediğinizde Visual Studio şu bilgileri iletir:
uygulama düzeyindeki build.gradle
dosyasına yönlendirir. Bu ayarları şu şekilde değiştirebilirsiniz:
Gradle derleme komut dosyalarınızı değiştirme hakkında daha fazla bilgi edinin.
MSBUILD_NDK_VERSION
MSBUILD_MIN_SDK_VERSION
MSBUILD_JNI_LIBS_SRC_DIR
MSBUILD_ANDROID_OUTPUT_APK_NAME
MSBUILD_ANDROID_GRADLE_BUILD_OUTPUT_DIR
Örneği ayarlamak ve çalıştırmak için:
- Visual Studio'da HelloJNI örneğini açın ve derleyin.
- Android arm64-v8a platformu ekleyin. Daha fazla bkz. Android Platformu ekleme.
- Android APK öğesi ekleme yeni platforma geçiyoruz.
- Projeyi derleyin.
- Aşağıdaki Android platformlarını, ardından bir Android APK öğesi ekleyin Android-armeabi-v7a, Android-x86 ve Android-x86_64.
- Örneği derleyin ve çalıştırın.
Sonsuz Tünel
Endless-Tunnel örneği, oyuncunun beyaz toprak topladığı bir Android oyunudur küpleri vardır. Bir OpenGL'den taşındı örneklemi GitHub'da Android NDK deposu. Örnek, oyunun Windows sürümünü sağlamıyor.
Örnekte ayarları ve Android platformları yapılandırılmış olduğundan projeyi Visual Studio'da herhangi bir değişiklik yapmadan derleyip çalıştırabilirsiniz. Google Takvim widget'ını Çözüm Gezgini şu modülleri görüntüler:
- sonsuz-tunnel: Oyun mantığını görüntüleyen uygulama modülü.
- glm: OpenGL Matematik deposunun anlık görüntüsü statik bir kitaplık olarak oluşturulur.
- Native_app_glue: " Yerel Etkinlik nesnesini tanımlayın.
Demlik
Demlik örneği, OpenGL ES ile oluşturulan klasik bir çaydanlığı gösteriyor ve aşağıdaki özellikleri göstermek için Android Oyun Geliştirme Uzantısı'na aktarılmıştır:
- Platformlar arası proje geliştirme: Her ekip için Teapot örneği Windows ve Android.
- Özel Android paketleme kullanımı: Gradle derleme komut dosyaları
örneğin,
Teapot.sln
dosyasının bulunduğu kök dizini. - Etkinleştiren deneysel Ninja derleme entegrasyonu projeyi Android Studio'da açabilirsiniz.
- Nasıl kullanılacağını gösteren özel Android yapılandırmaları Adres Temizleyici (ASan) ve Donanım Adresi Temizleyici (HWAsan).
Çaydanlık örneği uygulaması, birden çok bölüme ayrılmıştır. büyük platformlar arası uygulamalar ve oyunlar için tipik:
GameApplication
modülü: Kullanıcı işlemlerini ve uygulama durumlarını tanımlar. Örneğin: Çaydanlığı döndüren veya uygulama istatistiklerini güncelleyen bir kullanıcı.GameEngine
modülü: Temel oluşturma modülünü uygular.
Örneği ayarlamak ve Android'de çalıştırmak için hızlı başlangıç sayfasına göz atın. Alıcı: örneği oluşturun ve Windows'da çalıştırın:
- GLEW'yu yükleme:
- GLEW'yu indirip sıkıştırılmış dosyayı açın.
- İkili dosya dosyalarını
$your-glew-directory\bin\Release\x64
-%SystemRoot%\system32
.
- freeglut'ı yükleyin:
- freeglut dosyasını indirip sıkıştırılmış dosyayı açın.
$your-freeglut-directory\bin\x86\freeglut.dll
değerini%SystemRoot%\system32
hedefine kopyalayın.
- Freeglut projesi bağımlılıklarını ekleyin:
Teapot.sln
öğesini Visual Studio'da açın.- Menüde Hata ayıkla > x64 > Yerel Windows Hata Ayıklayıcısı.
- Çözüm Gezgini'nde sağ tıklayın GameApplication'a (Oyun Uygulaması) gidin ve Özellikler > C/C++ > Genel > Ek Dizinleri Dahil Et.
- Yola
$your-freeglut-dir\include
ekleyin.
- Tamam'ı tıklayın.
- Bağlayıcı > Genel > Ek Kitaplık Dizinleri bölümüne gidin.
- Yola
$your-freeglut-dir\lib\x64
ekleyin. - Tamam'ı tıklayın.
- Bağlayıcı > Genel > Ek Kitaplık Dizinleri bölümüne gidin.
- Yola
freeglut.lib
ekleyin. - Tamam'ı tıklayın.
- GLEW projesi bağımlılıklarını ekleyin:
- Çözüm Gezgini bölmesinde sağ tıklayın GameApplication'a (Oyun Uygulaması) gidin ve Özellikler > C/C++ > Genel > Ek Dizinleri Dahil Et.
- Yola
$your-glew-dir\include
ekleyin. - Tamam'ı tıklayın.
- Bağlayıcı > Genel > Ek Kitaplık Dizinleri bölümüne gidin.
- Yola
$your-glew-dir\lib\Release\x86
ekleyin. - Tamam'ı tıklayın.
- Bağlayıcı > Genel > Ek Kitaplık Dizinleri bölümüne gidin.
- Yola
glew32.lib
ekleyin. - Tamam'ı tıklayın.
- Örneği Windows'da çalıştırın:
- Visual Studio araç çubuğunda Yerel Windows Hata Ayıklayıcı çalıştırma düğmesini tıklayın.
- Örnek aşağıdaki gibi görünecektir:
AssemblyCode-Bağlantı-Nesneleri
Bu, Android'de yerel reklam oluşturmayı gösteren bir şablon projesidir kitaplığını bulmanız gerekir. Ana bileşenler şunlardır:
AssemblyCode-Link-Objects
: C++ ile geliştirilen ana Android yerel kitaplığı derleme kaynak kodunu yazın.StaticLib
:from_static_lib_assembly_code_as
işlevi.
Proje birden fazla mimariyi destekliyor. Desteklenen her mimarinin kendine özgü özellikleri
StaticLib
ürününden dışa aktarılan işlevleri uygulayan kendi kaynak dosyalarınız.
Yalnızca kullandığınız platformların derleme kaynak dosyalarını dahil etmelisiniz.
yapı. Bu proje,
özel derleme araçları hakkında daha fazla bilgi edinin.
Örneği ayarlamak ve derlemek için:
- Visual Studio'da, özel derleme araçlarının şunun için yapılandırıldığını doğrulayın:
derleme dosyaları:
- Çözüm Gezgini'nde sağ tıklayın. derleme dosyasını seçin ve Özellikler'i tıklayın. Bu, Dosya için Mülk Sayfaları iletişim kutusu.
- Yapılandırmayı ve platformu seçin. Örneğin: Şunun için tüm yapılandırmalar: Android-arm64-v8a.
- Genel > Derlemeden hariç tut seçeneği ayarlandı Hayır olarak değiştirin.
- Genel > Öğe Türü ayarlandı Özel Oluşturma Aracı'na bağlanabilirsiniz.
- Uygulanacak değişiklikler varsa Uygula'yı tıklayın.
- Lütfen
Yapılandırma Özellikleri > Özel Derleme Araçları > Komut Satırı:
, olarak ayarlandı
$(AsToolExe) -o "$(IntDir)%(FileName).o" %(FullPath)
. NDK'da her CPU mimarisi ve$(AsToolExe)
doğru derleyici ile eşleşiyor. Bu örnek hem x86 hem de x86_64 Android derlemesi için NDK araç zincirini kullanır bilgi edinmenizi sağlar. x86_64 Android platformu için yasm kullanmak istiyorsanız bunun yerine$(YasmToolExe)
kullanın. - Lütfen
Yapılandırma Özellikleri > Özel Derleme Araçları > Çıktılar:
, olarak ayarlandı
$(IntDir)%(FileName).o
. Bu dize dahil edilmelidir Komut Satırı ayarına gidin. - Lütfen
Yapılandırma Özellikleri > Özel Derleme Araçları > Bağlantı Nesneleri:
, olarak ayarlandı
Yes
.
Örneğin, Android-arm64-v8a ayarları aşağıdaki ekran görüntüsüne benzeyecek:
- Projeyi oluşturun. Bu da
libAssmeblyCodeLinkObjects.so
dosyası:AssemblyCode-Link-Objects.sln
dosyasını açın.- Menüde Derleme > Çözüm Derleyin.
- İşlevlerin Android'e doğru şekilde aktarıldığını onaylamak için
eklemek için nm.exe NDK aracını kullanın:
- Komut satırında örnek dizine gidin.
- Android kitaplığınız tarafından oluşturulan konuma gidin
seçeceğiz. Varsayılan konum şuna benzer:
$sample_dir\$solution_configuration\$solution_platform\$platform
. ve şunun için$sample_dir\Debug\Android-arm64-v8a\arm64-v8a
: arm64-v8a platformu. - Dışa aktarılan simge bölümünün fonksiyonları içerdiğini doğrulamak için
aşağıdaki komutu çalıştırın:
…\ndk\toolschains\llvm\prebuilt\windows-x86_64\aarch64-linux-android\bin\nm.exe --defined-only …\Debug\Android-arm64-v8a\arm64-v8a\libAssmeblyCodeLinkObjects.so
Çıkışta, takip etmek için:
T from_shared_object_assembly_code_as
T from_static_lib_assembly_code_as