Blog Educativo.pl Menu

Link:

Tworzenie aplikacji Windows Phone oszczędzających baterię urządzenia

w kategoriiWindows Phone przez Grzegorz Jamiołkowski
Skomentuj

wp1Każdy używający smartfona wie, że prócz wielu zalet, jak chociażby dużego dotykowego ekranu lub wielu funkcjonalności, ma on również wady. Jedną chyba z najbardziej dokuczliwych jest bateria.

Jest to jeden z tych elementów, który najmniej zmienił się w przeciągu tych kilku lat ostatniej rewolucji mobilnej. Procesory są coraz szybsze i mają kila rdzeni, pamięć jest coraz większa, ekrany Smartfonów posiadają rozdzielczości wprost z dużych telewizorów. Bateria ciągle pozostaje ta sama i jej ułomność może doskwierać każdemu. Nic tak nie rozczarowuje w urządzeniu mobilnym, jak krótki czas pracy na bateriach. Ten wpis jest skierowany do deweloperów aplikacji Windows Phone. Dowiecie się  z niego jak napisać aplikację, oszczędną ze względu na baterię. Można pokusić się o stwierdzenie, że jest to poradni jak napisać aplikację ekologiczną 😉

Zanim przejdę do omówienia kilku najważniejszych punktów, warto dodać, że Visual Studio dla Windows Phone posiada wbudowane narzędzie do analizy i monitoringu aplikacji. Pozwala ono na zbadanie tworzonego oprogramowania pod kątem zajętości CPU, responsywności aplikacji, transferu danych, zajętości pamięci, a także co nas najbardziej interesuje: konsumpcji baterii. Włączenie tego dodatku odbywa się w trakcie debugowania poprzez opcję  Start Windows Phone Application Analysis w menu Debug. W oknie wybieramy Monitoring i rozpoczynamy nową sesję.

Połączenia WiFi/transmisja danych po sieci komórkowej

Najważniejszym punktem w tym zestawieniu jest wykrywanie transmisji danych. Okazuje się, że sposób połączenia się naszej aplikacji z siecią internetową ma olbrzymie znaczenie na długość działania aplikacji na zasilaniu. Otóż sieć WiFi jest bardziej oszczędna niż połączenie przez sieć komórkową. W takim wypadku należy zdecydować się, czy pozwalamy tylko na transmisję przez WiFi (np. w przypadku dużych danych), czy ostrzegamy użytkowników na wejściu, że dostępna jest tylko transmisja danych przez sieć komórkową, która skraca czas działania na baterii jak i jest droższa (w zależności od dostawcy sieciowego). Wykrycie typu połączenia można zdobyć poprzez poniższy kod:

//transmisja danych po sieci komórkowej

DeviceNetworkInformation.IsCellularDataEnabled

//WiFi

DeviceNetworkInformation.IsWiFiEnabled

 

Różnice w działaniu urządzenia na baterii dla WiFi i 3G to różnica dochodząca do 30% na korzyść połączenia przez WiFi.

Ciemne tło

Większość urządzeń posiada obecnie ekrany AMOLED, które działają najoszczędniej przy ciemnym tle. Warto zatem używać ciemniejszych teł dla aplikacji. Dzięki temu działanie na baterii wydłuży się nawet trzykrotnie!

Optymalizacja obliczeń

Oprócz wspomnianego dostępu do Internetu i odpowiedniego wyświetlania kolorów na ekranie, warto zadbać o optymalizację użycia CPU. Jeśli nasza aplikacja dokonuje dużych obliczeń, warto te zadania przenieść w chmurę. Co więcej, lepiej dostosowane algorytmy mogą zmniejszyć konsumpcję CPU (np. użycie obrazków .jpeg, których obliczenia są szybsze, niż obrazków na przykład .png).

Rozsądne użycie Background agents

Windows Phone pozwala na użycie zadań działających w tle. Należy pamiętać, że te zadania również wpływają (choć już mniej) na baterię. Warto zatem przewidzieć w opcjach, możliwość wyłączenia ich przez użytkownika.

Tworzenie „zielonej” aplikacji dla Windows Phone nie jest trudne, a na pewno informacja o tym, ze deweloper zadbał o użycie zasobów, będzie dobrym znakiem dla klienta. Warto zadbać również o tego typu zadowolenie użytkowników.

  • Dziękujemy za skomenentowanie, dozwolone znaczniki html to strong, code i href.