Oyunlar için performans artışı

Android 14'ten itibaren Android Dynamic Performance Framework'te (ADPF) GAME adlı yeni bir güç modu, oyun oynarken telefon performansının özelleştirilmesini sağlar. GAME, Power HAL'e bir oyun uygulamasının ön planda olduğunu gösterir. Bu gösterge, kullanıcıların kararlı ve daha iyi bir performans deneyimlemesi için oyun oynanırken Power HAL'in güç yönetimi stratejilerini benimsemesine olanak tanır.

Android 13, oyunların yükleme süresini iyileştirmek için ADPF'de GAME_LOADING adlı yeni bir güç modu sunar. GAME_LOADING, Power HAL'in yükleme artışı sağlayabilmesi için bir oyun uygulamasının yükleme durumunda olup olmadığını gösterir. Bu gösterge, Power HAL'in oyun yükleme süresini hızlandırabilecek performans artırıcı önlemler almasına olanak tanır.

Bu sayfada, oyun uygulaması oyun durumunu Power HAL'ye nasıl aktardığı, cihazlarınızda Power HAL'den yararlanmak için Power HAL'yi nasıl yapılandıracağınız ve Power HAL uygulamanızı nasıl test edeceğiniz açıklanmaktadır.

Güç modu algılama ve bildirim

Bu bölümde, Güç Yöneticisi'nin GAME ve GAME_LOADING modlarını nasıl yönettiği açıklanmaktadır.

GAME güç modu

Android 14'teki yeni güç modu GAME, Power Manager Service'e kullanıcının oyun oynadığını bildirir. Güç HAL'ı GAME modu hakkında bilgilendirildiğinde oyun oynanırken performansı artırmak, sıcaklığı düşürmek ve pil ömrünü uzatmak için gücü ayarlayabilir.

Aşağıdaki şekilde, GAME güç modunu belirtmek için Power HAL'ye bilgi akışı açıklanmaktadır:

game-mode

Şekil 1. Bir oyunun oynandığını gösteren bilgi akışı.

AndroidManifest.xml içinde GAME olan uygulamalar için her zaman GAME güç modu ayarlanır.appCategory

GAME_LOADING güç modu

Yükleme hızlandırma modu, bir oyun uygulamasının yükleme durumunda olduğunu algılayıp Power HAL'yi bilgilendirerek çalışır. Android 13, geliştiriciye yönelik API'de isLoading adlı yeni bir oyun durumu sunar. Bu oyun durumu, Güç Yöneticisi Hizmeti'ndeki yeni GAME_LOADING güç modunu kullanarak Güç HAL'ını en üst düzey oyun durumu hakkında bilgilendirir. Güç HAL'i oyun yükleme durumu hakkında bilgilendirildikten sonra platformun performans ayarlarını ve CPU saat hızını ayarlayabilir. Bu da yükleme sürelerinin iyileşmesini sağlar.

Oyunun yüklendiğini belirtmek için oyun uygulaması, Oyun Yöneticisi'nde isLoading durumunu ayarlamak üzere Oyun Paneli'ni kullanır. Oyun Yöneticisi bu durumu, Güç Yöneticisi Hizmeti'ni çağırmak için yeni GAME_LOADING güç moduyla setPowerMode kullanan Oyun Yöneticisi Hizmeti'ne iletir. GAME_LOADING güç modu Power HAL'e oyunun yükleme durumunda olduğunu bildirir. Böylece Power HAL, yükleme hızını artırabilir.

Aşağıdaki şekilde, yükleme durumunu belirtmek için uygulamadan Power HAL'ye bilgi akışı açıklanmaktadır:

loading-boost

Şekil 2. Bir oyunun yükleme durumunda olduğunu gösteren bilgi akışı.

Oyun kontrol paneli, kullanıcıların Performans Ayarı ile yükleme hızlandırma özelliğini etkinleştirmesine veya devre dışı bırakmasına olanak tanır. Performans ayarı her zaman varsayılan olarak kapalıdır.

GAME ve GAME_LOADING kullanarak Power HAL'ı özelleştirme

OEM'lerin GAME ve GAME_LOADING modlarından yararlanabilmesi için Power HAL uygulamalarını özelleştirmeleri gerekir. Güç yönetimi ve performans artırma donanıma özgü olduğundan, Google Pixel cihaz için referans uygulama yayınlanana kadar GAME veya GAME_LOADING modları için referans uygulamalar kullanıma sunulmaz.

OEM'ler, GAME ve GAME_LOADING modunda performansı artırmak için aşağıdaki önlemlerin bir kombinasyonunu uygulamayı tercih edebilir:

  • Kare hızını sabitleme
  • CPU saat hızını artırma
  • Sıcaklık sınırlamasını geçici olarak azaltma
  • Ön plandaki oyun uygulamasına daha yüksek CPU önceliği atama
  • Normal, oyun olmayan uygulamalar için ayarlanmış CPU artışını azaltma
  • Isıyla ilgili güç dağıtım stratejisini optimize edin

GAME modu uygulamasını test etme

GAME modunun uygulanmasını test etmek için GameManagerServiceTests.java içinde testGamePowerMode_ ile başlayan testleri kullanın.

GAME_LOADING uygulamasını test etme

GAME_LOADING modunun uygulanmasını test etmek için android.gamemanager.cts.GameManagerTest#testSetGameContext kullanın. Bu test, GameManager::setGameContext() bağlamının isLoading ile birlikte performans modunda Power HAL'de oyun yükleme modunu başlatıp başlatmadığını doğrular.