Wallpanel OS
OptymalizacjeCzym Wallpanel OS różni się od zwykłego Androida? Optymalizacje systemowe – część 2
Własny Chromium WebView, adaptacyjne zarządzanie wydajnością i praktyczne wyniki optymalizacji Wallpanel OS dla Home Assistant.

Często pojawia się pytanie: czym Wallpanel OS różni się od Androida zainstalowanego na zwykłym tablecie?
Najkrótsza odpowiedź brzmi: przeznaczeniem systemu.
Typowy tablet musi działać w wielu różnych scenariuszach. Producent stara się wydłużyć czas pracy na baterii, ograniczać aktywność aplikacji w tle i zwalniać pamięć, nawet jeżeli oznacza to chwilowe opóźnienie po ponownym otwarciu aplikacji.
Wallpanel pracuje inaczej. Jest stale zasilany przez PoE lub DC i przez większość czasu wykonuje jedno konkretne zadanie: wyświetla interfejs Home Assistant. Dlatego w Wallpanel OS priorytety zostały świadomie przesunięte z oszczędzania baterii w stronę płynności, natychmiastowej reakcji i ciągłej gotowości.
Te same parametry nie oznaczają tego samego działania
Dwa urządzenia mogą mieć identyczny procesor, ilość RAM-u i rozdzielczość ekranu, a mimo to działać zupełnie inaczej.
Specyfikacja nie mówi, jak szybko system podnosi częstotliwość procesora, jak traktuje aplikację na pierwszym planie, kiedy usypia stronę internetową ani czy po wygaszeniu ekranu usuwa jej zasoby z pamięci.
Dlatego Wallpanel z odpowiednio przygotowanym systemem może działać płynniej jako dashboard Home Assistant niż zwykły tablet o takich samych parametrach. Nie chodzi o magiczne zwiększenie możliwości procesora, lecz o lepsze wykorzystanie zasobów, które już znajdują się w urządzeniu.
Własny silnik WebView
Interfejs Home Assistant jest w dużej części aplikacją internetową. Jego płynność zależy więc nie tylko od Androida, ale również od WebView, czyli silnika odpowiedzialnego za uruchamianie dashboardu.
Wallpanel OS nie korzysta z przypadkowej wersji dostarczonej razem z bazowym systemem. Wykorzystuje własny emel.tech System WebView, kompilowany bezpośrednio ze źródeł Chromium. Najnowsza aktualizacja OTA dostarcza WebView oparty na Chromium 150.0.7871.181.
Wprowadzono w nim kilka zmian dopasowanych do stałego panelu ściennego.
Po przejściu aplikacji w tło Chromium nie zamraża automatycznie kolejek zadań dashboardu. Dzięki temu timery JavaScript i połączenie WebSocket z Home Assistant mogą pozostać aktywne, a po wybudzeniu ekranu interfejs nie musi rozpoczynać pracy od nowa.
WebView nie usuwa również automatycznie zasobów strony z pamięci tylko dlatego, że została ona chwilowo zamrożona. Zużycie RAM-u może być przez to nieco wyższe, ale powrót do dashboardu jest szybszy i wymaga mniej ponownego przetwarzania danych.
Silnik nie korzysta również z trwałych buforów histogramów, które służą głównie do zbierania statystyk Chromium, a w panelu nie przynoszą użytkownikowi praktycznej korzyści. Ogranicza to niepotrzebne zużycie pamięci i operacje zapisu.
Wyłączono komunikację z serwerami Autofill oraz wysyłanie metadanych formularzy. Nie oznacza to usunięcia całego lokalnego mechanizmu formularzy. WebView po prostu nie komunikuje się z usługami, które nie są potrzebne do obsługi Home Assistant.
Wyłączono również system Variations, czyli zdalne eksperymenty funkcji Chromium. Zachowanie silnika jest dzięki temu określane na etapie kompilacji i pozostaje takie samo aż do kolejnej kontrolowanej aktualizacji OTA.
System, który reaguje na realne obciążenie
Zmiany w WebView rozwiązują tylko część problemu. Drugą częścią jest sposób, w jaki Android zarządza procesorem, układem graficznym i pamięcią.
W standardowym Power HAL część mechanizmów odpowiedzialnych za reakcję na dotyk, ciężkie renderowanie i informacje ADPF bywa pusta albo nie wpływa na wydajność urządzenia.
W Wallpanel OS mechanizmy te zostały uzupełnione i dostosowane do profilu urządzenia, jakim jest panel ścienny. System reaguje teraz na interakcję użytkownika, rozpoczęcie renderowania oraz sytuacje, w których aplikacja nie mieści się w zakładanym czasie przygotowania klatki.
Aplikacja na pierwszym planie otrzymuje wyższy priorytet planisty, a CPU, GPU i kontroler pamięci mogą szybciej przejść na wyższy poziom wydajności.
Nie jest to jednak bezwarunkowy tryb „pełna moc przez cały czas”. Po początkowym przyspieszeniu Power HAL monitoruje obciążenie. Jeśli wymagający widok, taki jak mapa Windy, animowany dashboard lub podgląd kamer, nadal intensywnie korzysta z urządzenia, boost jest automatycznie przedłużany. Gdy obciążenie spada, system wraca do normalnych ustawień.
Efekt w praktyce
Przed zmianami około 35,08% renderowanych klatek było klasyfikowanych przez Androida jako janky, czyli dostarczonych z opóźnieniem mogącym powodować widoczne szarpnięcie.
Po wdrożeniu własnego WebView i adaptacyjnego zarządzania wydajnością wynik testu rozwojowego spadł do 3,48%.
| Pomiar | Przed zmianami | Po optymalizacji |
|---|---|---|
| Opóźnione klatki | 35,08% | 3,48% |
| Typowy czas klatki, p50 | 32 ms | 22 ms |
| p90 | 57 ms | 28 ms |
| p95 | 69 ms | 31 ms |
| p99 | 93 ms | 42 ms |
Oznacza to wyraźny spadek udziału opóźnionych klatek. Był to test praktyczny obejmujący przełączanie dashboardów, WebView, Windy oraz multimedia, a nie syntetyczny benchmark.
Wydajność zamiast walki o każdą minutę baterii
Takie podejście ma swoją cenę. Utrzymywanie strony i połączeń w tle może zwiększyć zużycie RAM-u i energii.
W urządzeniu zasilanym stale przez PoE jest to jednak świadomy kompromis. Zamiast oszczędzać baterię, której panel po prostu nie posiada, dostępny budżet energetyczny służy poprawie reakcji interfejsu.
To właśnie jedna z najważniejszych różnic między Wallpanel OS a Androidem z typowego tabletu: system jest rozwijany z myślą o konkretnym sposobie użytkowania, a nie o możliwie szerokim katalogu zastosowań.
To dopiero warstwa bazowa
Opisane zmiany dotyczą przede wszystkim płynności, WebView i zarządzania zasobami. Wallpanel OS rozwija się jednak dalej jako system dla automatyki domowej.
Kolejne etapy rozwoju obejmują między innymi prace nad lokalnym serwerem SIP oraz możliwością uruchomienia lokalnego serwera Home Assistant bezpośrednio na panelu. Rozwiązania te nie są jeszcze przedstawiane jako gotowe, ale pokazują kierunek projektu.
Aktualizacja Wallpanel OS 0.0.7 jest już dostępna
Aktualizacja OTA do Wallpanel OS 0.0.7, zawierająca opisane powyżej zmiany, jest już gotowa. Urządzenia można zaktualizować za pomocą wbudowanego mechanizmu OTA.


