Android 15, güç tüketimini optimize etmek için oyunlarda varsayılan 60 Hz yenileme hızını kullanır. 120 FPS gibi daha yüksek kare hızlarını etkinleştirmek için artık Frame Rate API veya Swappy kitaplığını kullanarak bunları açıkça istemeniz gerekir.
Ancak sistem, pil seviyesi veya cihaz sıcaklığı gibi faktörlere bağlı olarak bu isteği geçersiz kılabilir. Yüksek yenileme hızları görsel akıcılığı artırsa da daha fazla güç gerektirir ve daha fazla ısı üretir. Bu nedenle, kullanıcılara tercih ettikleri yenileme hızını seçme seçeneği sunmak ve dengeli bir kullanıcı deneyimi sağlamak için performansı dikkatli bir şekilde izlemek çok önemlidir.
setFrameRate() API'yi kullanma
setFrameRate() API, oyun geliştiricilerin belirli bir ekran yenileme hızını kullanmasına olanak tanır. Bu işlemi yapmak için iki adım vardır:
- Cihaz ve Android sürümü uyumluluğunu doğrulayın.
setFrameRate()kullanarak yüksek FPS isteğinde bulunun.
Cihaz ve Android sürümü uyumluluğunu doğrulayın:
Cihazın 90 Hz, 120 Hz veya diğer yenileme hızlarını destekleyip desteklemediğini belirlemek için Display.getSupportedModes() yöntemlerini kullanın. Cihaz 60 Hz ile sınırlıysa bu sınırı aşmak mümkün değildir.
Kotlin
val display = windowManager.defaultDisplay
val supportedModes = display.supportedModes
for (mode in supportedModes) {
Log.d("DisplayInfo", "Supported mode: ${mode.physicalWidth}x${mode.physicalHeight}, ${mode.refreshRate}Hz")
}
Yüksek FPS İste
Oluşturma döngünüz başladığında, oyun penceresi başlatılırken veya hedef FPS'nin ekran yenileme hızını değiştirmesi gerektiğinde setFrameRate() öğesini çağırın.
Daha yüksek bir hız talep etseniz bile sistem, güç tasarrufu modu veya termal kısma gibi faktörler nedeniyle yenileme hızını 60 Hz ile sınırlayabilir. Oyununuzun oluşturma performansı hedef FPS'ye ulaşmıyorsa daha yüksek yenileme hızı istemek gereksiz güç tüketimine neden olabilir ve cihazın sıcaklığını artırabilir.
Aşağıdaki snippet'te, setFrameRate() API'si ile aşırı yüksek yenileme hızından nasıl kaçınılacağı gösterilmektedir.
Kotlin
val targetFps = 120f
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setFrameRate(
targetFps,
Window.FrameRateCompatibility.FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,
0
)
}
Daha fazla bilgi için Kare Hızı sayfasını inceleyin.
Frame pacing kitaplığını kullanma
Frame pacing kitaplığı veya Swappy, C/C++ Android oyun motorlarında VSync yönetimini ve kare planlamayı basitleştirmek için tasarlanmış açık kaynaklı bir kitaplıktır.
Bu araç, yenileme hızlarını optimize etme sürecini kolaylaştırır ve setFrameRate() gibi işlevler üzerinde daha üst düzey bir soyutlama katmanı olarak etkili bir şekilde çalışır. Ayrıca Swappy, oyununuzun genel akıcılığını ve performansını artırabilecek ek özellikler sunar.
Daha ayrıntılı bilgi için Swappy sayfasını inceleyin.
En iyi sonuçlar için ek ipuçları
Aşağıdaki bölümde, en önemli ipuçlarından bazıları verilmiştir:
- Dinamik kare hızı değiştirme.
- Performans izleme
- Maksimum ekran yenileme hızına göre FPS seçenekleri sunun.
Dinamik kare hızı değiştirme
Hem performansı hem de güç tüketimini optimize etmek için oyununuzda dinamik kare hızı geçişini uygulayabilirsiniz. Bu teknik, zorlu sahnelerde daha akıcı bir oyun deneyimi için 120 Hz gibi daha yüksek yenileme hızları ile daha az yoğun anlarda veya pil ömrünün önemli olduğu ya da 60 FPS'nin altında hedefleme yapıldığı durumlarda 60 Hz gibi daha düşük hızlar arasında sorunsuz bir şekilde geçiş yapmanızı sağlar. Sürekli olarak 120 Hz'de çalışmak aşırı ısı üretimine ve pilin hızlı tükenmesine yol açarak olumsuz bir kullanıcı deneyimine neden olabilir. Yenileme hızını mevcut oluşturma yüküne ve cihaz koşullarına göre akıllıca ayarlayarak görsel doğruluk ile güç verimliliği arasında denge kurabilirsiniz.
Performance Monitoring
Oyununuzun daha yüksek yenileme hızlarında optimum performans göstermesini sağlamak için kare sayacı veya performans yerleşimi gibi performans izleme araçlarını entegre edin. Bu araçlar, oyununuzun gerçek kare hızı hakkında anlık geri bildirim sağlayarak hedef 120 FPS'ye sürekli olarak ulaşıp ulaşmadığınızı doğrulamanıza olanak tanır.
Kare hızınız önemli ölçüde dalgalanıyorsa söz konusu cihazda daha düşük bir kare hızını hedeflemeyi düşünebilirsiniz. Bu sayede, en yüksek yenileme hızı hedeflenirken oluşabilecek performans sorunları olmadan daha sorunsuz bir deneyim sunulabilir.
Maksimum ekran yenileme hızına göre FPS seçenekleri sunma
Oyununuz, mevcut cihaz tarafından desteklenen maksimum ekran yenileme hızını (ör. 60 Hz, 90 Hz veya 120 Hz) algılamalı ve FPS ayarlarını buna göre sınırlamalıdır. Örneğin, cihaz yalnızca 60 Hz'e kadar destekliyorsa oyuncunun kafasını karıştırmamak için oyun ayarlarında 60 FPS'den yüksek tüm seçeneklerin devre dışı bırakılması önerilir.