Android 10, Wi-Fi Lock API'yi genişleterek Kablosuzu aşağıdaki gibi yapılandırmak için gecikmeye duyarlı uygulamalar: düşük gecikme mod'u seçin. Düşük gecikme modu, aşağıdaki koşulların tamamı karşılandığında başlar:
- Kablosuz bağlantının etkin ve cihazın internet erişimi var.
- Uygulama bir kablosuz ağ kilidi oluşturup aldı ve şurada çalışıyor: ön plan.
- Ekran açık.
Cihazlarda düşük gecikme modunu desteklemek için cihaz üreticilerinin WLAN sürücüsü ve tedarikçi HAL'si. Düşük gecikme modunda, güç tasarrufu (diğer adıyla doz durumu) çerçeve tarafından açıkça devre dışı bırakıldı. Sürücü ve donanım yazılımı katmanlarındaki tarama ve dolaşım parametreleri, Bu da kablosuz gecikme süresini daha da azaltmak için optimize edildi. Kesin optimizasyonlar netleştirmelerini de sağlamalısınız.
Android'de yüksek performanslı kablosuz kilit modu (API düzeyi 12'de kullanıma sunulur).
Uygulama
Kablosuz düşük gecikme modu özelliğini desteklemek için
şu IWifiChip
işlevleri.
AIDL HAL'de:
int getFeatureSet()
void setLatencyMode(in LatencyMode mode)
HIDL HAL'de (1.3 veya daha yeni):
getCapabilities_1_3() generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities)
setLatencyMode(LatencyMode mode) generates (WifiStatus status)
Referans uygulaması şurada bulunabilir:
wifi_legacy_hal.cpp
ekleyebilirsiniz:
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 özelliği
WifiLockManager
neler olduğunu
anlatacağım.
Bunu desteklemek için WLAN sürücüsünün NL80211 komutunu desteklemesi gerekir.
Güç tasarrufunu etkinleştirmek ve devre dışı bırakmak için NL80211_CMD_SET_POWER_SAVE
. Kablosuz bağlantı gücü olduğunda
kaydetme devre dışı bırakıldığında, kablosuz sisteminin uyanık durumda kalması ve
minimum gecikmeyle gönderip alın.
Özelliği devre dışı bırakma
Düşük gecikme modu özelliğini kapatmak için arka plandaki kodu güncelleyin:
AIDL HAL için getFeatureSet()
veya
HIDL HAL için getCapabilities_1_3()
,
capabilities & SET_LATENCY_MODE = 0
, burada
SET_LATENCY_MODE
, IWifiChip
AIDL veya HIDL tanımında tanımlanmıştır.
Bu özellik devre dışı bırakıldığında
çerçeve, güç tasarrufunu yalnızca düşük gecikme modu etkinken devre dışı bırakır.
Doğrulama
Düşük gecikme modunun etkinleştirildiğinde çalışıp çalışmadığını test etmek için aşağıdaki otomatik ve manuel ping gecikmesi testleri.
Otomatik test
Aşağıdaki VTS ve CTS testlerini çalıştırın:
- VTS (AIDL):
hardware/interfaces/wifi/aidl/vts/functional/wifi_chip_aidl_test.cpp
- VTS (HIDL):
hardware/interfaces/wifi/1.3/vts/functional/wifi_chip_hidl_test.cpp
- CTS:
cts/tests/tests/net/src/android/net/wifi/cts/WifiLockTest.java
Manuel test
Gerekli test ekipmanı ve ortamı
Manuel test için aşağıdaki kurulum gerekir:
- Wi-Fi erişim noktası (AP)
Cihaz altında test (DUT) telefon ve test bilgisayarı
- DUT, kablosuz ağ üzerinden erişim noktasına bağlı olmalıdır.
- Test bilgisayarı kablosuz ağ veya erişim noktasına bağlı olmalıdır Ethernet'e dokunun.
- Test bilgisayarı USB üzerinden DUT'ye bağlı olmalıdır.
Veri çıkışı ping testi
Düşük gecikme modunu etkinleştirin.
adb root
adb shell cmd wifi force-low-latency-mode enabled
Bilgisayarınızın ADB üzerinden telefona bağlı olduğundan emin olun. Başlangıç fiyatı ağ geçidini sürekli olarak 3 saat boyunca 1. saniyede pingleme sağlar.
Test çıkışını bir metin dosyasına kaydedin ve e-tablo ya da Python kullanın komut dosyasını kullanarak ping gecikmesi testi sonuçlarının histogramını oluşturabilirsiniz.
Gecikme modu devre dışı olarak 1-3. adımları tekrarlayın.
adb root
adb shell cmd wifi force-low-latency-mode disabled
Ortalama ping gecikmesi değerinin şundan emin olmak için test sonuçlarını karşılaştırın: düşük gecikme modu etkinleştirildiğinde azaltılır.
Aşağı bağlantı ping testi
Düşük gecikme modunu etkinleştirin.
adb root
adb shell cmd wifi force-low-latency-mode enabled
Test bilgisayarının komut satırından telefonun IP'sini pingleyin 1 saniyelik aralıklarla 3 saat boyunca sürekli olarak adres gösterme.
Test çıkışını bir metin dosyasına kaydedin ve e-tablo ya da Python kullanın komut dosyasını kullanarak ping gecikmesi testi sonuçlarının histogramını oluşturabilirsiniz.
Gecikme modu devre dışı olarak 1-3. adımları tekrarlayın.
adb root
adb shell cmd wifi force-low-latency-mode disabled
Ortalama ping gecikmesi değerinin şundan emin olmak için test sonuçlarını karşılaştırın: düşük gecikme modu etkinleştirildiğinde azaltılır.
Diğer testler
Yukarıdaki testleri farklı ortamlarda tekrarlayın. Örneğin, evinizde veya ofisinizde.