Erik Hellman är en av huvudarkitekterna för Android på Sony Ericsson. På ett föredrag på konferensen Android Only i Stockholm nyligen berättade han detaljerat om arbetet som krävs för att få i gång Android på en telefonmodell.

Grovt beskrivet är arbetet indelat i tre faser: igångkörning, utveckling av funktioner och stabilisering.

Det första som behöver göras för att komma i gång är att få tag på Android. Det är väl bara att ladda ner från Google, så kan man köra? Knappast.

– Vi laddar inte ner grundversionen av Android och lägger in den på telefonen, utan låter först våra komponentleverantörer hantera den, till exempel de som står för processorer, skärmar och flashminnen. De ser till att deras komponenter fungerar som de ska, säger Erik Hellman.

Erik Hellman, Sony Ericsson.
Inte så enkelt. ”Vi laddar inte ner grundversionen av Android, utan låter först våra komponentleverantörer hantera den så att deras komponenter fungerar som de ska”, säger Erik Hellman på Sony Ericsson.

Sedan vidtar det långrandiga arbetet med att konfigurera alla de olika komponenterna. Det är inte minst slitsamt att konfigurera olika komponenter i förhållande till varandra.

– I början av ett projekt kanske en telefon har en batteritid på en halvtimme, innan den konfigurerats.

Att skapa de olika funktionerna som ska utmärka en telefonmodell är ett omfattande arbete. I vissa fall handlar det om att leverantörer vill sätta en egen prägel på en telefon, i andra fall om att grundlösningarna i Android inte duger.

Ett exempel är vissa dialogrutor som fungerar dåligt på Sony Ericssons modell Xperia 10 Mini, på grund av att bildskärmen är liten. Elementen i användargränssnittet blir helt enkelt för små, man blir tvungen att göra om dialogrutorna.

Här finns en stor utmaning i hur Android är konstruerat.

I vissa fall kan man lägga ändringar och nya funktioner i applikationslagret, vilket innebär att Android i sig inte påverkas. I andra fall måste man gräva djupare, vilket innebär förändringar av Android i sig.

I allra värsta fall är man tvungen att dra nytta av odokumenterade funktioner i Android, med de risker som det medför.

– Ibland måste man förändra dolda resurser och använda dolda programmeringsgränssnitt, vilket kan orsaka problem med tredjepartsapplikationer som använder dem.

När funktionerna är utvecklade är det dags för stabiliseringsfasen, vilket inte minst innefattar olika typer av tester.

Under föredraget räknar Erik Hellman, lågt räknat, upp elva olika typer av tester som genomförs. När han har beskrivit dem vänder han sig mot utvecklarna bland åhörarna och frågar:

– Är det någon av er som har kört alla de här testerna?

Två modiga åhörare räcker, med viss tvekan, upp händerna.

De avslutande testerna körs hos de operatörer som ska sälja telefonerna. Då krävs hundratals timmars kontinuerlig drift utan minsta lilla incident.

Förutom de olika momenten som beskrivits hittills tillkommer ytterligare arbete som beror på att Android är en öppen produkt. Om Sony Ericsson modifierar Android i sig skickar företaget tillbaka ändringarna till utvecklarna av grundversionen. Hittills har Sony Ericsson skickat in cirka 170 ändringar, varav drygt 100 har inlemmats i grundversionen av Android. Det är inte bara att ladda upp kod till en webbplats. Ändringarna måste beskrivas detaljerat.

– Man kan bidra till Android även som privatperson. Det tror jag blir en merit när man söker arbete i framtiden.

Bidrar inte Sony Ericssons ändringar av Android till att operativsystemet blir fragmenterat?

– Vi motverkar det genom att se till att bara använda en variant av Android själva, säger Erik Hellman.

– Dessutom skickar vi tillbaka alla ändringar vi gör så att de kan införlivas i operativsystemet.

Erik Hellman berättar också att Sony Ericssons utvecklare så långt det är möjligt utvecklar funktioner ovanpå själva Android.

Fakta


Sony Ericssons Erik Hellman höll sitt föredrag på konferensen Android Only som anordnades av Peter Svensson på Greener Grass Web Design, i Stockholm den 29 och 30 september. Antalet deltagare var cirka 160.

Här är exempel på de tester som Sony Ericsson kör när företaget inför Android på telefoner, enligt Erik Hellman:

  • Automatiserade tester av kod som skrivs.
  • Ett testverktyg som heter Monkey kör telefonerna två dagar i streck. Inga fadäser får uppstå.
  • Telefonerna testas manuellt i daglig användning, till exempel av anställda på Sony Ericsson.
  • Externa användare får testa telefonerna i dagligt bruk.
  • Alla tänkbara typer av innehåll kontrolleras, till exempel webbsidor, bilder, video och ljud.
  • Testverktyget Android CTS används.
  • Operatörstester som kräver hundratals timmars kontinuerlig drift.


Dessutom görs följande:

  • Kod som skrivs integreras fortlöpande i Sony Ericssons Androidvariant. Det här sättet att arbeta kallas continous integration.
  • Test av olika enheter av kod görs med verktyg som Powermock.
  • Verktyg som Findbugs används för att hitta programfel.
  • Verktyg som Checkstyle används för att kontrollera att utvecklare följer riktlinjer för hur kod ska skrivas och se ut.