Bu dokümanda, Khronos© örnek uygulamasını indirip derleyerek ve çalıştırarak Vulkan grafik kitaplığını kullanmaya nasıl başlayacağınız açıklanmaktadır.
Ön koşullar
Başlamadan önce doğru donanım ve platform sürümünü hazırladığınızdan emin olun. Vulkan'ı destekleyen, Android 7.0 (Nougat) ve API düzeyi 24 ya da sonraki sürümleri çalıştıran bir cihaz veya emülatör kullanmalısınız.
Ayarlar menüsüne gidip Telefon hakkında > Android Sürümü'nü seçerek Android sürümünüzü doğrulayabilirsiniz. Doğru donanım ve platform sürümünün ayarlandığını onayladıktan sonra gerekli yazılımı indirebilirsiniz.
İndir
Başlamadan önce çeşitli araçları ve diğer yazılımları indirmeniz gerekir. Windows ana makinesinde araçlar ve kaynak kodu için derin dosya yolu hiyerarşisinden kaçınmanız önerilir. Bunun amacı, bazı Windows OS sürümlerinde dosya yolu sınırlarını aşmaktır.
- Android Studio'yu henüz yüklemediyseniz indirin. Bu, en son Android SDK'sını içerir.
- NDK ve CMake'ı Android Studio'dan yükleyin veya bunları ayrı olarak indirip yükleyin.
- Android Studio'nun düzgün çalıştığından emin olmak için Hello JNI örneğini derleyip çalıştırın.
- Ana makine platformunuz için python3'ü ve build.md dosyasında listelenen diğer bileşenleri yükleyin.
İçe Aktar
Bu bölümde Kronos© Vulkan© örnek deposunu indirecek, bir Android gradle projesi oluşturacaksınız ve daha sonra bunu Android Studio IDE ile açacaksınız.
- Aşağıdaki ortam değişkenlerini ayarlayın:
export ANDROID_HOME=/path/to/sdk-directory export ANDROID_NDK_HOME=$ANDROID_HOME/ndk/{your-ndk-version-dir}
- CMake'i $PATH yoluna ekleyin. Bu URL, Android derleme komut dosyalarını oluşturmak için kullanılır:
export PATH=$PATH:$ANDROID_HOME/cmake/{your-cmake-version}/bin
- Bir terminal penceresi açın ve kaynak kodunu geliştirme dizininize indirin:
cd dev-directory git clone --recursive https://github.com/KhronosGroup/Vulkan-Samples.git
- Android örnek projesini oluşturmak için Build.md dosyasında şu talimatları uygulayın:
cd Vulkan-Samples ./scripts/generate.py android
- Android Studio'yu açın. File > Open (Dosya > Aç) seçeneğini belirleyin ve
Vulkan-Samples/build/android_gradle/build.gradle
'i seçin. Android Studio projeyi yükledikten sonra aşağıdakine benzer bir şey görürsünüz:Şekil 1. Android Studio'daki örnek proje.
Derle
Bu depodaki tüm örnekler tek bir Android projesinde düzenlenmiştir. Projeyi derlemek için aşağıdakilerden birini yapın:
- Kaynakları yalnızca derlemek için menüyü, Derleme > Proje Oluştur'u kullanın veya Ctrl-F9 kısayol tuşunu yazın.
- Örnek APK'yı oluşturmak için Derleme > Paketleri/APK'ları oluştur > APK oluştur'u seçin.
Android Studio'nun Derleme penceresinde başarılı derleme mesajı gösterilir. Hatalar varsa bunları düzeltip yeniden derleyin.
Yürüt
Örnek projeyi çalıştırmadan önce Android Studio'nun bağlı Vulkan cihazınızı veya Android Emülatör'ü tanıdığından emin olun. Şuna benzer bir sonuç görürsünüz:
Projeyi çalıştırmak için şunları yapın:
- Çalıştır > vulkan_sample menüsünü kullanın veya araç çubuğundaki çalıştırma düğmesini tıklayıp örneğin bağlı cihazınıza yüklenip başlatılmasını bekleyin.
- Bağlı Android cihazınızda gerekli erişim isteklerini yetkilendirin.
- Tüm dosyaları yönetme erişimine izin ver'i etkinleştirin, ardından örnek ana başlangıç ekranına dönmek için ok Geri düğmesi'ne dokunun.
- disk erişimine izin verin:
Şekil 4. Disk erişimini etkinleştirin.
- Aşağıdakine benzer bir örnek ana menü ekranı görürsünüz:
Şekil 5. Örnek ana menü. - Örnek listeye göz atın ve çalıştırmak için birkaç örnek seçin.
Vulkan geliştirmesini kullanmaya yeni başladıysanız "API" örnekleriyle başlayabilirsiniz.
Örneğin, "Merhaba Üçgen"e dokunulduğunda aşağıdakine benzer bir üçgen görüntülenmelidir:
Şekil 6. Merhaba Triange örneği.
Geliştirme sisteminiz artık test cihazınızda örnekleri çalıştıracak şekilde ayarlanmıştır.
Vulkan Örnekleri, masaüstü ve mobil cihazlar da dahil olmak üzere birden fazla işletim sistemi için geliştirilmiştir. Performans, Uzantılar ve Araçlar altındaki bazı örnekler kararsız çalışabilir ve cihazınızda kilitlenebilir. Bunun pek çok nedeni olabilir. Örneğin:
- Belirli Vulkan özellikleri Android için tasarlanmamıştır.
- Android OS sürümünüz desteklenmiyor.
- Donanım platformunuzun GPU kapasitesi.
Keşfedin
Vulkan örneğinin Java bölümü, NativeActivity sınıfından türetiliyor. Uygulama oluşturma, başlatma, durdurma ve kaldırma gibi tipik uygulama yaşam döngüsü etkinliklerini C/C++ koduna aktarır. Örneğin C/C++ bölümünde, çalışma zamanı alt örnek geçiş işlevini uygulayan örnek bir çerçeve vardır. Çok yüksek bir düzeyde, Android sistem etkinlikleri/mesajları örnek uygulamanın Vulkan koduna ulaşmak için aşağıdaki yoldan geçer:
NativeSampleActivity
Java bölümüNativeSampleActivity
C/C++ bölümüandroid_native_glue
kodandroid_main
- Örnek çerçeve
- Bağımsız alt örnek kodu
android_main
, NativeSampleActivity
ile uygulama kodu arasındaki köprüdür. Bu, örnek kodu izlemeniz için başlangıç noktası olabilir. Yalnızca Vulkan'a özgü kaynaklara odaklanmak istiyorsanız aşağıdaki kodu içeren Vulkan_Samples\samples
bölümünden kodu inceleyebilirsiniz:
- "api" kategori örnekleri.
- "Performans" kategorisi örnekleri.
- "Uzantılar" kategorisi örnekleri.
- "Araç" örnekleri.
Tüm gölgelendiriciler Vulkan_Samples\shaders
cihazıdır.
Temel Vulkan kullanımı ve örnek çerçeve hakkında bilgi edinmek için "API" kategorisi örneklerine göz atmaya başlayabilirsiniz. Ardından, "Performans" ve "Uzantılar" kategorisi örneklerine geçebilirsiniz. Gölgelendirici kodu için Android Studio'daki Proje görünümünü kullanabilirsiniz.
Ek kaynaklar
Vulkan API birkaç sürümden geçtiği için gittikçe gelişiyor. Vulkan standart komitesi ve Vulkan topluluğu, API'nin kullanımını ve en iyi uygulamalarını gösteren zengin bir Vulkan malzemesi seti hazırladı. Aşağıdaki listede Vulkan uygulaması geliştirmeyle ilgili bazı kaynaklar bulunmaktadır:
Vulkan Özelliği. Khronos Grubu, Vulkan spesifikasyonuna uymaktadır. Tüm özellikler, eğitim, kılavuzlar ve eğiticiler için Vulkan ana sayfasına bakın.
Doğrulama Katmanları. Doğrulama Katmanları, uygulama geliştirmede çok önemlidir. Ayrıntılar için Android'de Vulkan doğrulama katmanları dokümanlarına bakın.
Shaderc. NDK'daki Shaderc kodu, Shaderc deposunun alt akışıdır. Kullanım belgeleri ve en son sürümü alma talimatları için Gölgelendirici derleyicileri sayfasına bakın.