Wi-Fi Düşük Gecikme Modu

Android 10, Wi-Fi kilidi API'sini, gecikmeye duyarlı uygulamaların Wi-Fi'yi düşük gecikme moduna yapılandırmasına olanak tanıyacak şekilde genişletiyor. Düşük gecikme modu, aşağıdaki koşulların tümü karşılandığında başlar:

  • Wi-Fi etkin ve cihazın internet erişimi var.
  • Uygulama bir Wi-Fi kilidi oluşturup edindi ve ön planda çalışıyor.
  • Ekran açık.

Cihazlarda düşük gecikme modunu desteklemek için cihaz üreticilerinin WLAN sürücüsünü ve satıcı HAL'yi güncellemesi gerekir. Düşük gecikme modunda, güç tasarrufu (IEEE 802.11 standardında uyku durumu olarak da bilinir) çerçeve tarafından açıkça devre dışı bırakılır. Sürücü ve ürün yazılımı katmanlarındaki tarama ve dolaşım parametreleri, Wi-Fi gecikmesini daha da azaltmak için optimize edilebilir. Kesin optimizasyonlar uygulamaya özeldir.

Android, düşük gecikme modundan ayrı , yüksek performanslı bir Wi-Fi kilit moduna (API düzeyi 12'de tanıtılmıştır) sahiptir.

Uygulama

Wi-Fi düşük gecikme modu özelliğini desteklemek için aşağıdaki IWifiChip işlevlerine yönelik uygulamalar sağlayın.

AIDL HAL'de:

  • int getFeatureSet()
  • void setLatencyMode(in LatencyMode mode)

HIDL HAL'de (1.3 veya daha yenisi):

  • getCapabilities_1_3() generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities)
  • setLatencyMode(LatencyMode mode) generates (WifiStatus status)

Aşağıdaki işlevlere sahip bir referans uygulaması wifi_legacy_hal.cpp bulunabilir:

  • wifi_error wifi_get_supported_feature_set(wifi_interface_handle iface, feature_set *set)
  • wifi_error wifi_set_latency_mode(wifi_interface_handle handle, wifi_latency_mode mode)

Düşük gecikme modunda güç tasarrufu, Android çerçevesinde WifiLockManager tarafından açıkça devre dışı bırakılır. Bunu desteklemek için WLAN sürücüsünün, güç tasarrufunu etkinleştirmek ve devre dışı bırakmak üzere NL80211 komutunu ( NL80211_CMD_SET_POWER_SAVE ) desteklemesi gerekir. Wi-Fi güç tasarrufu devre dışı bırakıldığında Wi-Fi sistemi uyanık durumda kalmalı ve minimum gecikmeyle paket gönderip almaya hazır olmalıdır.

Özelliğin devre dışı bırakılması

Düşük gecikme modu özelliğini kapatmak için, AIDL HAL için getFeatureSet() veya HIDL HAL için getCapabilities_1_3() temel kodunu güncelleyin; böylece capabilities & SET_LATENCY_MODE = 0 olur; burada SET_LATENCY_MODE IWifiChip AIDL veya HIDL tanımında tanımlanır . Bu özellik devre dışı bırakıldığında çerçeve, yalnızca düşük gecikme modu etkinken güç tasarrufunu devre dışı bırakır.

Doğrulama

Düşük gecikme modunun etkinleştirildiğinde çalıştığını test etmek için aşağıdaki otomatik testleri ve manuel ping gecikme testlerini çalıştırın.

Otomatik test

Aşağıdaki VTS ve CTS testlerini çalıştırın:

Manuel test

Gerekli test ekipmanı ve ortamı

Manuel test için aşağıdaki kurulum gereklidir:

  • Wi-Fi erişim noktası (AP)
  • Test altındaki cihaz (DUT) telefonu ve test bilgisayarı

    • DUT'un erişim noktasına Wi-Fi üzerinden bağlanması gerekir.
    • Test bilgisayarı erişim noktasına Wi-Fi veya Ethernet üzerinden bağlanmalıdır.
    • Test bilgisayarı USB üzerinden DUT'a bağlanmalıdır.
  1. Düşük gecikme modunu etkinleştirin.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Bilgisayarınızın telefona ADB aracılığıyla bağlandığından emin olun. ADB kabuğundan, ağ geçidine 1 saniyelik aralıklarla 3 saat boyunca sürekli olarak ping atın.

  3. Test çıktısını bir metin dosyasına kaydedin ve ping gecikme testi sonuçlarının histogramını oluşturmak için bir elektronik tablo veya Python komut dosyası kullanın.

  4. Gecikme modu devre dışıyken 1'den 3'e kadar olan adımları tekrarlayın.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Düşük gecikme modu etkinleştirildiğinde ortalama ping gecikme değerinin azaldığından emin olmak için test sonuçlarını karşılaştırın.

  1. Düşük gecikme modunu etkinleştirin.

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Test bilgisayarının komut satırından telefonun IP adresine 1 saniye aralıklarla 3 saat boyunca sürekli olarak ping atın.

  3. Test çıktısını bir metin dosyasına kaydedin ve ping gecikme testi sonuçlarının histogramını oluşturmak için bir elektronik tablo veya Python komut dosyası kullanın.

  4. Gecikme modu devre dışıyken 1'den 3'e kadar olan adımları tekrarlayın.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Düşük gecikme modu etkinleştirildiğinde ortalama ping gecikme değerinin azaldığından emin olmak için test sonuçlarını karşılaştırın.

Diğer testler

Yukarıdaki testleri farklı ortamlarda tekrarlayın. Örneğin evde veya ofiste.