Tillbaka till bloggen

Så arbetar vi för att minska batteriförbrukningen vid körloggning

Adaptiv loggning, samlade skrivningar och en reaktion på värme. En titt på tekniken bakom Orphie, med avvägningarna och det vi fortfarande behöver mäta.

Illustration: en rutt med täta punkter i en kurva och glesare punkter på en raksträcka, bredvid en telefon och grupperade poster.

Batteriförbrukning kommer upp i förares diskussioner om körloggningsappar. Folk beskriver varma telefoner, täta laddningar och osäkerhet om loggningen har stannat efter resan. Det är enskilda upplevelser, inte kontrollerade jämförelser, men frågorna är viktiga.

När vi byggde Orphie behövde vi tänka på mer än att hämta en plats och summera körsträckan. Vi behövde också bestämma hur mycket arbete varje plats skulle kräva, när den skulle sparas och vad som skulle hända när telefonen blir varm.

Här är några av de besluten.

En rak väg och en snäv sväng behöver hanteras olika

En loggningsapp återskapar din rutt med platspunkter. Om de ligger för glest blir kurvan en rak linje som skär över hörnet. Om appen behåller varje liten rörelse som telefonen rapporterar kan den spara brus utan att få veta särskilt mycket mer om resan.

Orphie använder en adaptiv loggningspolicy. Den tar hänsyn till hastighet och riktningsändringar i stället för att använda samma avståndsregel under hela passet.

Vid normal temperatur använder policyn tätare punkter, ned till 15–25 meter, vid långsam körning och riktningsändringar. På snabbare, rakare sträckor kan den tillåta 100 meter mellan sparade punkter.

Behåll detaljer där rutten ändras

Långsammare körning och svängarTätare mellan punkterna
Snabbare, rakare sträckorGlesare mellan punkterna
Illustration av loggningspolicyn, inte en uppmätt körning. Avståndet mellan punkterna ändras med hastighet och riktning. Policyn kan inte förutse en sväng som telefonen ännu inte har rapporterat.

Metoden har en begränsning. Vi kan bara reagera på rörelser som telefonen har rapporterat. Glesare punkter kan göra att detaljer försvinner. Trösklarna är tekniska val som behöver kontrolleras mot körda rutter, inte garantier för en perfekt registrerad körsträcka.

Vi använder telefonens platssystem

Orphie tar emot platsuppdateringar i bakgrunden via Apples Core Location på iPhone och Googles sammanslagna platstjänst på Android. Operativsystemet sköter leveransen av platser. Orphie hanterar uppdateringarna det får i stället för att upprepade gånger fråga efter en position i en egen avfrågningsloop.

Plattformarna ger oss olika möjligheter att styra. På Android påverkar vår loggningspolicy de begärda uppdateringsintervallen och minsta förflyttningsavståndet. På iPhone använder vi Apples platsuppdateringar för bilkörning och tillämpar vår policy på punkterna vi accepterar.

Den skillnaden är viktig. Att behålla färre punkter på en iPhone betyder inte att vi har sagt åt dess GPS-hårdvara att vakna mer sällan. Vi kan styra vår egen bearbetning, men vi ska inte påstå att vi har mer kontroll över hårdvaran än plattformen ger oss.

Vi sparar punkter i grupper

Att ta emot en plats och att skriva den till lagring är olika uppgifter. Att spara varje punkt i en egen databastransaktion ger upprepat arbete.

Orphie samlar accepterade punkter i en buffert och sparar dem tillsammans. Under loggningen utlöser en ny accepterad punkt en skrivning till lagring, en kontrollpunkt, när bufferten når 50 punkter, eller när den äldsta osparade punkten är minst 60 sekunder gammal.

Samla punkterna innan de skrivs till lagring

Accepterade platser
Tillfällig buffert
Sparas tillsammans

50 punkter eller en äldsta punkt som är minst 60 sekunder gammal

Tröskeln kontrolleras när ytterligare en punkt accepteras. Det är ingen timer som väcker appen varje minut, och det garanterar inte att högst 60 sekunders data är osparade.

Under en lugn period utan accepterade punkter kan bufferten förbli osparad längre. Parkering och loggningskontrollerna ger också tillfällen att spara.

Grupperingen har en kostnad. Om appen avslutas tvärt innan en skrivning är klar kan osparade punkter gå förlorade. Att bara spara i slutet av ett pass skulle lämna för mycket oskyddat. Att skriva varje punkt separat skulle kräva mer lagringsarbete. Att spara vid kontrollpunkter är kompromissen.

Värme ändrar loggningspolicyn men skjuter inte upp sparandet

Orphie lyssnar efter operativsystemets temperaturvarningar. På Android är den här reaktionen tillgänglig från Android 10. Äldre versioner behåller den normala loggningspolicyn.

När telefonen rapporterar allvarlig värme ökar loggningspolicyn avståndet mellan punkterna som behålls. Vid kritisk värme tillåter den ännu glesare punkter. Då minskar ruttdetaljerna som behålls, så det är en avvägning vi behöver vara tydliga med.

Reagera på värme utan att skjuta upp sparandet vid kontrollpunkter

Telefonen rapporterar värme
Glesare mellan punkterna som behålls
Värme fördröjer inte sparandet vid kontrollpunkter
En reaktion på telefonens temperaturvarningar, inte ett löfte om att förhindra överhettning. På iPhone ändrar detta vilka punkter som accepteras, utan att direkt ställa in GPS-hårdvarans effektförbrukning.

Vi håller det beslutet åtskilt från att spara posten. Temperaturvarningar lägger inte till någon fördröjning av skrivningarna vid kontrollpunkter. En telefon under värmebelastning kan få bakgrundsarbetet avbrutet. Att skjuta upp sparandet skulle utsätta mer av den ofärdiga loggen för risk.

Inget av detta kan förhindra överhettning som orsakas av solljus, laddning eller andra appar. Det ger vår loggning ett sätt att reagera på telefonens tillstånd.

En del arbete behöver inte ske under körningen

Det finns ingen rörlig ruttkarta på Orphies körskärm. Du kan granska rutten efter att du har avslutat passet. Loggningen behöver inte rita om den under hela resan.

Uppslagning av ortnamn väntar också tills du har tryckt på Avsluta pass, och sker bara om du har aktiverat alternativet. Att logga en rutt kräver inte en adressökning för varje punkt. När alternativet är aktiverat använder uppslagningen av ändpunkterna Apples eller Googles tjänst, inte en adressdatabas på enheten.

Vi valde också uttryckliga kontroller för Starta pass och Pausa i stället för automatisk kördetektering hela dagen. Det betyder att du måste komma ihåg att starta. I gengäld behöver Orphie inte övervaka din plats utanför en loggningssession för att upptäcka när arbetet kan ha börjat.

Pausa stänger av Orphies platsloggning. Avsluta pass under loggning ger ett kort fönster där loggningen fortsätter, upp till tio minuter eller två minuter parkerad i följd, beroende på vilket som inträffar först. Spara pass stänger av loggningen och tar bort den preliminära extra sträckan, men behåller posten som den var när du avslutade. Avsluta pass under paus låter platsen förbli avstängd. Passguiden förklarar kontrollerna.

Vad vi fortfarande behöver mäta

Det här är konkreta sätt som vi har försökt begränsa onödigt arbete på. Vi har ännu inte mätt någon procentuell batteribesparing och anger därför ingen.

Ett användbart test behöver mäta strömförbrukningen och granska den resulterande körloggen under samma körförhållanden. Lägre batteriförbrukning vore ingen förbättring om vi nådde den genom att missa en del av rutten.

För tillfället kan vi förklara implementationen och dess kompromisser. Mätningarna återstår.

Det här är allmän information om hur man för en körlogg, inte skatteråd. Fråga en skatteexpert om din egen deklaration.

Läs vidare

För dina uppgifter

  • Guide för körlogg

    Vad IRS kräver i en körlogg, med källorna.

  • Verktyg

    Slå upp milersättningen för ett datum, jämför loggade och totala miles och skriv ut en checklista.

Logga ditt nästa pass med Orphie

Hämta Orphie i App Store för iPhone och iPad, eller på Google Play för Android.