Witam,
Jak raportuje wielu użytkowników (w tym ja) i na forum i w opiniach Google Play Store - aplikacja zużywa sporo energii działając w tle. Teoretycznie nic nie powinna wtedy robić, aby nie zużywać energii akumulatora, ale jednak coś się w tle dzieje.
Po ostatnim eksperymencie z przechwytywaniem komunikacji sieciowej w celu
zdiagnozowania problemu długiego startu postanowiłem jeszcze trochę pobawić się w swego rodzaju reverse-engineering. Przechwyciłem komunikację sieciową ponownie, aby z kolei sprawdzić czy aplikacja (a raczej model danych JSON) przewiduje już obecnie możliwość
posortowania elementów na ekranie urządzeń i scen. Z analizy wyszło - że jednak nie. Taką możliwość daje jedynie widok "Dom"
Struktura danych tego widoku posiada pole "order", który definiuje kolejność na ekranie niezależnie od id elementu.
Po przydługawym wstępnie pora na meritum - prześledzona komunikacja TCP jednoznacznie pokazuje, że aplikacja zużywa energię na wysyłanie co 3 sekundy 2 bajtów - 0x20 0x03. Rozumiem, że może chodzić o realizowanie mechanizmu typu ping tudzież podtrzymywanie komunikacji z EFC-01, ale pytanie brzmi:
czy na prawdę musi to być wysyłane aż co 3 sekundy?.
Rozumiem, że Android może chcieć uśpić proces i to może być jakiś workaround, żeby jednak tego nie robił, ale przeanalizowałem inne aplikacje, które łączą się z urządzeniami w mojej sieci będąc w tle i przykładowo aplikacja Synology także wysyła dane, ale już co 10 sekund.
Trudno mi powiedzieć jakie przełożenie ma komunikacja TCP w aplikacji Exta Life na zużycie energii, ale na pewno daje to do myślenia. Może dałoby się zwiększyć odstęp wysyłania tych 2 bajtów do np 10 sekund? Ciekawy jestem jak wtedy wyglądałaby sprawa zużycia energii na Androidzie.