Mobilapplikasjoner kan tømme mobilbatteriet på kort tid dersom de ikke bruker operativsystemet programmeringsgrensesnitt på riktig måte. (Bilde: PantherMedia / Thomas Pajot)

Applikasjoner nekter mobilen å sove

Feil bruk av strømsparefunksjoner kan redusere batteritiden drastisk.

Blant de viktigste egenskapene til smartmobiler og nettbrett er batteritiden. Hele hensikten med slike enheter er at de skal være mobile og at bruken ikke skal være avhengige av at man har forbundet enheten med en strømkilde via en kabel.

Derfor har leverandørene av disse enhetene virkelig lagt seg i selen for å redusere strømforbruket. Derfor fungerer de temmelig motsatt av en pc. En smartmobil hviler hele tiden, bortsett fra akkurat de tidspunktene den må gjøre noe. En pc begynner derimot først å hvile en god stund etter at det er slutt på arbeidsoppgavene. Hvor lang tid dette skal ta, kan brukeren stort sett avgjøre.

«No-sleep»

Problemet for smartmobilene er applikasjonene. Også mens mobilen ligger i ro i lomma, er det applikasjoner som i blant vil utføre oppgaver, som å laste ned epost eller Facebook-oppdateringer, for å nevne noe. Dette krever at systemet vekkes og holdes våkent så lenge oppgavene utføres. Dette gjøres via programmeringsgrensesnitt (API-er) som tilbys av operativsystemet. Men ikke alle applikasjoner bruker disse API-ene på en god måte.

22,5 prosent inneholdt feil

Forskere ved Purdue University i West Lafayette, Indiana, har studert 187 Android-applikasjoner som inneholder Androids eksplisitte API-er for strømstyring – «wakelocks». Av disse applikasjonene, fant forskerne i 42 applikasjoner feil i wakelook-koden som hindrer mobilen å gå over hvilemodus igjen, selv om applikasjonen er ferdig med det den skulle gjøre. Disse feilene kalles for «no-sleep energy bugs». I studien avdekket forskerne 12 allerede kjente tilfeller av slike feil, samt 30 nye tilfeller.

Forskerne, doktorgradstudentene Abhinav Pathak og Abhilash Jindal, samt professorene Samuel Midkiff og Y. Charlie Hu, forteller i en pressemelding at selv om undersøkelsen ble gjort på Android, ser det ut til at den samme typen feil også påvirker andre plattformer.

– Applikasjonsutviklere må eksplisitt sjonglere ulike strømstyrings-API-er som er eksportert at operativsystemene til smartmobiler. Dessverre er programmere bare mennesker. De gjør feil når de bruker disse API-ene, noe som fører til programvarefeil som forkludrer strømstyringene og hindrer mobilen å gå over i hvilemodus. Resultatet er at den forblir våken og tømmer batteriet, sier Hu i pressemeldingen.

– Et fulladet batteri kan bli tømt på så lite som fem timer, sier han.

Forskerne har modifisert en kompilator og utviklet et verktøy, slik at slike feil kan bli funnet.

– Verktøyet analyserer binærkoden og detekterer automatisk og nøyaktig tilstedeværelsen av «no-sleep bugs», forteller Midkiff.

Hele rapporten til forskerne skal presenteres under MobiSys 2012-konferansen som arrangeres i Low Wood Bay i Storbritannia i slutten av måneden.

Carat

I mellomtiden kan brukere av Android- og iOS-baserte enheter ta i bruk et annet verktøy for å avdekke de mest strømkrevende applikasjonene.

En forskergruppe med Berkeley-universitetet i California har laget en applikasjon, Carat, som tilbyr brukeren tilpassede rapporter om hvilke applikasjoner som ser ut til å bruke mest energi, men også gjør det mulig for brukere å sammenligne dette med bruken hos andre brukergrupper. Carat gir dessuten brukeren konkrete råd om hvordan batteritiden kan forbedres. Men applikasjonen må kjøres på mobilen i en ukes tid før rapportene kommer.

Carat-applikasjonen  forteller brukeren hvilke applikasjoner som bruker mest energi, i tillegg til å komme med tips om hvordan batteritiden kan forlenges.
Carat-applikasjonen forteller brukeren hvilke applikasjoner som bruker mest energi, i tillegg til å komme med tips om hvordan batteritiden kan forlenges. Bilde: Carat-prosjektet ved University of California, Berkeley

Carat inngår i et forskningsprosjekt, hvor målet til forskerne er å få vite om det er mulig å utføre spredte og ikke-komplette målinger fra et stort fellesskap av mobile enheter, for så å finne ut hvilke applikasjoner som misbruker batteriet. Dette innebærer at applikasjonen sender data til prosjektet, som sammen med data fra andre brukere brukes til å lage statistikk som igjen gjøres tilgjengelig for brukerne. Dataene skal ikke inneholde informasjon som kan brukes til å identifisere brukerne.

Diagrammet viser hvordan dataene i Carat-prosjektet behandles.
Diagrammet viser hvordan dataene i Carat-prosjektet behandles. Bilde: Carat-prosjektet ved University of California, Berkeley
Til toppen