• No results found

Examensarbete: Effektiv testinställning för mobiltelefoner

N/A
N/A
Protected

Academic year: 2021

Share "Examensarbete: Effektiv testinställning för mobiltelefoner"

Copied!
42
0
0

Loading.... (view fulltext now)

Full text

(1)

Examen: Högskoleingenjörsexamen 180hp Examinator: Tommy Andersson Huvudområde: Data och Telekom Handledare: Ivan Kruzela Datum för slutseminarium: 2014-08-28

Examensarbete

15 högskolepoäng, grundnivå

Effektiv testinställning för

mobiltelefoner

Effective test setup for smartphones

Martin Nikolovski

Steven Belokozovski

(2)

Förord

Detta examensarbete är utfört vid Fakulteten för teknik och samhälle vid Malmö högskola och även i Cybercoms lokaler i deras Test Center lab. Vi vill tacka samtliga medarbetare på Cybercom som tog varmt emot oss varje dag. Speciellt våra handledare Joakim Rydh och Daniel Jonasson. Vi tackar även personalen på Sony som hjälpte oss med oklara frågar angående NFC. Sedan vill vi rikta ett stort tack till vår handledare Ivan Kruzela som har bidragit till många viktiga idéer, synpunkter och inspirationer. Till sist vill vi rikta ett speciellt tack till våra flickvänner och familjer för stödet vid genomförandet av detta examensarbete.

(3)

Sammanfattning

3

Sammanfattning

Cybercoms testcenter i Malmö testar Sony mobiler och utför Android CTS- och GTS-tester. Innan testningen av mobilerna måste testpersonalen konfigurera mobilerna för att testningen skall kunna utföras på ett korrekt sätt. Genomförandet av dessa konfigureringar är tidskrävande eftersom de görs manuellt.

Denna rapport beskriver konstruktionen av en tidseffektiv testinställning för Sony mobiltelefoner avsett för internt bruk av företaget Cybercom.

Testinställningen består huvudsakligen av en Android-applikation som installeras på mobilen som skall testas med hjälp av en NFC-tagg.

Med applikationen kan testarna automatisera ungefär hälften av konfigureringarna som måste göras. Resterande konfigureringar är fortfarande manuella, men betydligt lättare att utföra med applikationen.

Genom testsystemet har tiden för konfigurering av mobilerna halverats. Enligt våra beräkningar sparas ungefär 1.5 min per enhet, vilket medför en ökning i produktiviteten för företaget.

(4)

Abstract

4

Abstract

Cybercom’s testcenter in Malmö is testing Sony mobile devices and carry out Android CTS and GTS tests. The testers must configure the mobile handsets correctly before they start running the tests. The implementation of these configurations is time-consuming because they are being made manually.

This report is about constructing an effective test setup for Sony mobile phones, intended for internal by the company Cybercom.

The test setup will mainly consist of an Android application that will be installed on the smartphone to be tested, with the help of a NFC-tag.

The application allows the testers to automate approximately half of the configurations carried out on the smartphone. The remaining configurations are still manual, but much easier to configure with our simplifications.

With the help of the test setup, the time for configurations to be installed on the smartphones has decreased by half. According to our calculations the testers save about 1.5 min per unit, which results in an increase in productivity for the company.

(5)

Innehållsförteckning 5

Innehållsförteckning

Kapitel 1 – Inledning ... 7 1.1 Bakgrund ... 7 1.2 Syfte ... 7 1.3 Avgränsning ... 7 1.4 Metod ... 8 Kapitel 2 – CTS ... 9 2.1 Testuppdrag ... 9 2.2 Konfigurera enheten ... 9 2.3 Testfall ... 10

2.4 Fel konfigurering inför CTS ... 10

Kapitel 3 – Lösningsalternativ ... 11

Kapitel 4 – Teoretisk bakgrund ... 13

4.1 NFC ... 13

4.2 Android Om operativsystemet Android ... 14

Kapitel 5 – Genomförande ... 19

5.1 Val av NFC-tagg ... 19

5.2 Programmering av NFC-tagg ... 20

5.3 Applikationsutveckling ... 21

5.4 Interaktionen mellan NTAG203 och mobil ... 21

Kapitel 6 – Resultat och analys ... 22

6.1 Hur mobilens systeminställningar kan ändras med en Android-applikation ... 22

6.2 Applikationens utseende ... 26

6.3. Resulterande tidsbesparing ... 27

Kapitel 7 – Diskussion och slutsats... 29

7.1 Den genomförda lösningen ... 29

7.2 Reflektioner ... 29

7.3 Uppdragsgivarnas synpunkter ... 30

7.4 Vidare utvecklingsmöjligheter ... 30

Källförteckning ... 32

Appendix - Förstudie

(6)

Innehållsförteckning

(7)

Kapitel 1 - Inledning

7

Kapitel 1 – Inledning

1.1 Bakgrund

Cybercom är ett internationellt IT-konsultbolag med ungefär 1300 anställda i sju länder. Bolagets främsta område är kommunikationstjänster inom telekombranschen. [1] Företaget är indelat i fyra områden: Secure Connectivity, Connectivity Management, Connected Engineering och Digital Solutions. [2]

Testavdelningen i Malmö som tillhör Cybercom Groups utför bland annat CTS testing (Compatibility Test Suit) för Android enheter. Vi redogör detaljerat om deras CTS testing i kapitlet ”CTS” längre fram i rapporten. Företaget har ett samarbete med Sony Mobile, och kör CTS tester på Sonys mobila enheter, främst mobiltelefoner.

Mobiltelefonerna som testas använder Android, versionerna Jelly Bean (4.1-2-3) och KitKat (4.4).

Innan testarna kör igång CTS-testerna på Sony mobilerna, måste de konfigurera och ändra mobilens systeminställningar för att testerna skall kunna utföras korrekt. I dagsläget konfigureras inställningarna manuellt, vilket är tidskrävande och även kan leda till fel. Inställningarna redogörs detaljerat i kapitlet ”Teoretisk bakgrund”.

1.2 Syfte

Uppdraget i examensarbetet, som diskuterades fram med beställaren, är att underlätta för testarna på Cybercom med förberedelsen inför testning av CTS tester på mobiltelefonerna. Det huvudsakliga tekniska syftet med arbetet är att utveckla en Android applikation som gör det möjligt att automatisera de begärda konfigureringarna på mobilerna.

1.3 Avgränsning

Applikationen behöver inte vara kompatibel med alla Androids versioner eftersom mobilerna som kommer testas använder sig av Android version 4.3 (Jelly Bean) samt senare versioner.

Wifi anslutningen förutsätts vara problemfri, så att kod för felaktigheter inte behövs. Applikationens layout ska vara enkel och grundläggande, design prioriteras inte.

Applikationen får inte bygga på rootade mobiler. Risken är att en rootad mobil kan agera på ett annorlunda sätt när testarna utför CTS-testerna. Rootning innebär att man tar full kontroll över Android på mobilen och har tillgång till viktiga systemfiler i operativsystemet.

(8)

Kapitel 1 - Inledning

8

1.4 Metod

Förstudie

Innan utvecklingen av prototypen gjordes en förstudie (se Appendix), under förstudien delades huvudproblemet upp i olika delproblem. Vår forskningsfråga var då att identifiera det mest lämpligaste och optimala systemet för överföring av testinformation och att verifiera vår lösning med en prototyp.

Informationssökning

Informationssökningen angående utvecklingen av applikationen skedde till största del på Androids officiella utvecklarhemsida samt e-böcker från Malmö högskola.

Informationen angående NFC hämtades till största delen från hemsidan NFC forum. Applikationsutveckling

Inför utvecklingen av applikationen installerades plattformen Eclipse och även utvecklingsverktyget SDK (Software Development Kit). I utvecklingsverktyget medföljde ADT (Android Development Tools), Androids utvecklingsmiljö.

Oftast jobbade vi tillsammans på datorn vid programmeringen. Det var en ganska effektiv metod eftersom vi ständigt kompletterade varandras kunskap. Ibland inträffade det problem i tidsplaneringen när vi inte kunde programmera tillsammans, då fick man istället programmera ensam och därefter redovisa till den andra parten om arbetet.

Under kodningen av applikationen testades applikationen på mobiler som är prototyper. En prototyp är en mobil som är fullt fungerande för testning men fortfarande är i utvecklingsstadiet.

(9)

Kapitel 2 – CTS

9

Kapitel 2 – CTS

2.1 Testuppdrag

Compatibility Test Suit, CTS är ett automatiserat testsystem. Det automatiserade testsystemet körs på datorer oftast med operativsystemet Linux. Motivet till att man kör CTS-test är för att kontrollera att mobilerna är kompatibla med Androids krav och bestämmelser. [3]

2.2 Konfigurera enheten

Inför ett CTS-test måste den enhet som ska testas konfigureras på rätt sätt, annars kan det leda till att testet fallerar och måste göras om. Denna konfigurering är viktig eftersom ett CTS-test tar ungefär 8 timmar att exekvera. [4]

Exemplet nedan illustrerar omfattningen av konfigureringsprocessen.

 Första steget är att flasha enheten, att flasha en enhet innebär att man installerar en mjukvara på enheten (Jelly Bean 4.3).

 Nästa steg är att fabriksåterställa mobilen, att all data raderas på enheten.

Manuell inställning: Inställningar > Säkerhetskopiering & återställning > Återställ standardinställningar > Välj ”Radera internminne” > Tryck på knappen ”Återställ mobilen” > Tryck på knappen ”Radera allt”

 Val av språk, enhetens språk ska ställas in till ”English” (United States).

Manuell inställning: Inställningar > Språk och inmatning > Välj Språk > ”English” (United States)

 Se till att enheten är uppkopplat till ett specifikt nätverk, enheten ska anslutas till nätverket ”CCGuest” med krypteringen ”!cyber42”.

Manuell inställning: Inställningar > wifi > Välj ”CCGuest” skriv in krypteringen ”!cyber42”

 Ställ in enhetens internetinställningar för internet & MMS. Manuell inställningar: Inställningar > Mer > Tryck på knappen ”Internetinställningar” > Tryck på knappen ”Godkänn”

 Ställ in skärmlås till ”Inget”

(10)

Kapitel 2 – CTS

10

 Avmarkera ”Lås SIM-kort” – Om SIM-kort låst med pinkod – inaktivering av pinkod på SIM-kort.

Manuell inställning: Inställningar > Säkerhet > Ställ in lås för SIM-kort > avmarkera ”Lås SIM-kort”

 Radera innehållet på SD-kortet.

Manuell inställning: Lagring > Rensa SD kort > Tryck på ”Acceptera”

 Ställ in viloläge på displayen till ”30 min”.

Manuell inställning: Inställningar > Display > Viloläge > Markera "30 minuter”

 Ställ in utvecklaralternativ på mobilen.

Manuell inställning: Inställningar > Om mobilen > Tryck på ”Version” fem gånger, ”Du är nu en utvecklare”

 Aktivera USB-felsökning – Felsökningsläge när USB har anslutits.

Manuell inställning: Inställningar > Utvecklaralternativ > markera ”USB-felsökning”

 Markera ”Håll aktiverad” – skärmen vilar aldrig när laddning pågår eller när den är kopplad till en dator.

Manuell inställning: Inställningar > Utvecklaralternativ > markera ”Håll aktiverad” [4]

2.3 Testfall

Under ett CTS-test exekveras 18 000 testfall på mobilen. Ett viktigt test som utförs när man kör CTS är CTS Media Stress tests. Det kräver att man har ett SD-kort i mobilen som ska rymma minst två gigabyte, då man spelar upp videoklipp med olika upplösningar som 480x360, 720x480, 1280x720 och 1920x1080. [4]

Efter att man kört de 18 000 automatiserade testfallen, övergår man till manuella testfall som också ingår i CTS-testningen. De manuella testfallen är ett tillägg med namnet Compatibility Test Suite Verifier, CTS Verifier. De manuella testerna omfattar bland annat testning av ljudkvalité, wifi, Bluetooth, NFC, touchskärm och kamera. [4]

2.4 Fel konfigurering inför CTS

Det som kan gå fel med manuell konfigurering i praktiken är att testaren kan glömma bort att konfigurera en inställning eller utföra en felaktig konfiguration. Ett exempel på ett problem som kan inträffa är om testaren glömmer bort att konfigurera ”skärmlåset” på mobilen. När testfallen exekveras, stängs skärmen av och på. För att testfallen ska kunna exekveras korrekt måste skärmlåset vara avstängt, annars kan inte testfallen fortsätta. Detta resulterar i att testfallen inte utförs på ett korrekt sätt.

(11)

Kapitel 3– Lösningsalternativ

11

Kapitel 3 – Lösningsalternativ

Lösningsalternativ

Det är viktigt att applikationen lätt kan installeras på test-telefonen. De alternativa lösningarna som övervägdes för länkning till applikationen var NFC och QR-kod.

QR-kod uteslöts eftersom det behövs en applikation som läser QR-koder. Mobilerna som testas kommer utan förinstallerade applikationer, förutom Sonys egna applikationer och dessa inkluderar inte en QR-applikation. NFC kräver inte en applikation och valdes därför.

Figur 1: En QR kod, hänvisar till vår Applikation.1

Cybercom – Lösningsalternativ

Cybercom föreslog en lösning på de inställningarna som inte gick att konfigurera automatiskt. Deras lösningsalternativ var att använda klassen MotionEvent PointerCoords som gör det möjligt att mobilen navigerar automatiskt genom menyer i mobilen. Ett exempel är om användaren vill aktivera utvecklaralternativ, då navigerar mobilen sig själv genom inställningar>utvecklaralternativ>aktivera och aktiverar ”utvecklaralternativ”. Detta utförs genom hårdkodning av koordinater på angivna sidor som mobilen automatiskt ska navigera. Med andra ord simulerar mobilen det användaren istället hade gjort för att aktivera utvecklaralternativ, utan att röra skärmen.

Detta är ingen optimal lösning eftersom alla mobiler inte har samma upplösning eller storlek på skärmarna vilket blir ett stort problem, samt att hela processen utförs stegvis och tar ungefär lika lång tid som för en van testare.

Problemet löstes med hjälp av ”intent” som länkar till sidan man ska konfigurera inställningen, denna process underlättar för användaren att navigera fram till sidan för att konfigurera systeminställningen. Uppdragsgivarna från företaget Cybercom tyckte att detta var en betydligt enklare och smidigare lösning på problemet.

(12)

Kapitel 3– Lösningsalternativ

12 Länkning till applikation

NFC-tekniken är snabb, effektiv och interaktionen sker endast på en bråkdels sekund. Cybercom ställde kravet att hämtningen av applikationen skall ske snabbt och effektivt, vilket NFC-taggen uppfyller. NFC-taggen innehåller endast en URL-länk som hänvisar mobilen till installationsfilen för applikationen. NFC-taggen kodades med hjälp av applikationen ”NFC Tools” som kan hämtas från Play-butiken kostnadsfritt.

Systemskiss:

 En förprogrammerad NFC-tagg

 En Android-applikation som kommer installeras i mobilen

 En mobil som skall testas

Figur 2. Systembild

(13)

Kapitel 4– Teoretisk bakgrund

13

Kapitel 4 – Teoretisk bakgrund

4.1 NFC

Near Field Communication (NFC) är en radiofrekvensbaserad närhetskopplingsteknik som möjliggör interaktion inom en räckvidd på upp till 10 cm. Syftet med tekniken är att kunna skapa en säker och enkel kommunikationskanal mellan olika elektroniska enheter.

Tekniken

NFC-tekniken erbjuder 3 olika interaktionssätt idag, Card Emulation Mode, Peer to Peer mode och Reader/Writer Mode. Vårt system använder sig av Reader/Writer mode eftersom i detta fall läser mobilen av den passiva NFC-taggen som är matad med data och är redo för att bli läst.

När tekniken används är det endast två enheter som interagerar med varandra. Det är möjligt att skicka över data med tekniken genom en induktiv spole per enhet, spolarna genererar ett magnetiskt fält med en frekvens på 13.56MHz. Det elektromagnetiska fältet är modulerat för att kunna främja dataöverföringar.

I kommunikationen fungerar ena enheten som mottagare (enhet som tar emot) och andra enheten som initiator (enhet som initierar en kommunikation). När en kommunikation inleds ställs rollerna (mottagare eller initiator) in automatiskt under lyssna-före-prata-processen, vilket är en del av initieringen i början av interaktionen.

När tekniken tillämpas med en NFC-tagg, används det passiva läget. I det passiva läget är det endast initiatorn som producerar det magnetiska fältet på 13.56MHz och startar kommunikationen, i vårt fall en mobiltelefon.

Under en NFC interaktion blir mottagaren introducerad till ett magnetfält som genereras av initiatorn och används som en kortvarig energiförsörjning för NFC-taggen. I sin tur svarar NFC-taggen genom att överföra data till mobiltelefonen. Mobilen tolkar sedan denna data och utför ”kommandot”. [5]

NFC-tagg

Det finns 4 olika typer av NFC-taggar, varje typ beror på överföringshastigheten och lagringsutrymmet. NFC-taggen vi använder oss av i projektet är en passiv tagg som kallas för NTAG203 Type 2. Typen 2 innebär att taggen har ett lagringsutrymme på cirka 144 bytes. [6] När en tagg kallas för passiv menas det med att taggen inte har egen strömförsörjning. NTAG203 är baserad på ISO/IEC 14443A standarden vilket innebär att den använder sig av read/write tekniken. Read/write tekniken gör det möjligt för användaren att kunna skriva till och läsa av taggen. [7]

(14)

Kapitel 4– Teoretisk bakgrund

14

4.2 Android

Om operativsystemet Android

Android är ett operativsystem för mobiltelefoner och surfplattor, det presenterades officiellt år 2007 av företaget Android men köptes sedan av Google. Det som kännetecknar operativsystemet Android är företagets öppna källkod som lockar många utvecklare. Idag är operativsystemet ett av Googles största varumärke p.g.a. företagets kraftiga tillväxt i mobilvärlden de senaste 7 åren. [8]

Grund i Android applikationsutveckling

Grundspråket för att utveckla en Android-applikation är Java. Koden och eventuella data/resurs filer kompileras av Android SDK Tools, Software Development Kit, till en enda APK fil. Denna fil används för att kunna installera applikationer. Vid installation av applikationer måste användaren bevilja alla behörigheter som applikationen vill ha tillgång till, annars beviljas inte installationen och applikationen kan inte installeras på enheten. [8] [9]

Android SDK

Android SDK, Software Development Kit är ett utvecklingsverktyg samt den officiella plattformen för Android-applikationer. Det inkluderar en enhetsemulator, debugger och ett bibliotek. [8] [10]

Android Development Tools Plugin

Android Development Tools (ADT), är ett insticksprogram för Eclipse, vilket är designat för att erbjuda användaren en kraftfull och integrerad miljö för utveckling av Android-applikationer. Med hjälp av ADT utökas funktionerna i Eclipse som underlättar inledningen av ett nytt Android projekt. [8] [11]

Android API

Android API, Application Programming Interface är en uppsättning av paket och lager som definierar klasserna, som underlättar användningen av funktioner i Android. [8] [12]

(15)

Kapitel 4– Teoretisk bakgrund

15 Applikationens komponenter

Applikationskomponenterna är beroende av varandra för att de ska fungera. Varje komponent beskrivs kortfattat längre fram i punktlistan. [8] [13]

Figur 3. En illustration på hur aktiviteter fungerar i en applikation i bakgrunden.2

Activities

En Activity, aktivitet på svenska, är en applikationskomponent som möjliggör för användaren att kunna interagera med mobilen, som att ringa samtal, ta foto eller skicka e-mail. Aktiviteterna tilldelas ett eget fönster där användargränssnittet visas på skärmen. En aktivitet kan bestå av endast en aktivitet men även flera aktiviteter som är beroende av varandra. ”Main Activity” heter den aktivitet som visas för användaren då en applikation startas för första gången. När en aktivitet har startat kan andra aktiviteter utföra flera operationer i

(16)

Kapitel 4– Teoretisk bakgrund

16 applikationen. Då den nya aktiviteten har startat stoppas den förra aktiviteten, med hjälp av ”back stack” bevarar systemet aktiviteten i en stack. Sista aktiviteten kommer in och första åker ut. När användaren väljer att gå tillbaka till tidigare aktivitet, kommer den ut från stacken och kan fortsätta med sin tidigare aktivitet. [14]

Figur 4. En illustration på hur aktiviteter fungerar.3

Services

Långvariga operationer utförs av en service i bakgrunden, det är en applikationskomponent som inte syns i användargränssnittet. En service kan hantera och utföra flera olika operationer som exempelvis spela musik, uppdatera väder, hantera transaktioner och interagera med olika innehållsleverantörer. [15]

Content providers

Content providers är på svenska ”innehållsleverantörer”. Dessa strukturerar uppsättningen av data, som att kapsla in data för att sedan kunna definiera datasäkerheten. Content providers är ett standardgränssnitt vilket ansluter data i en process medan en kod körs i en annan process samtidigt. [16]

3

(17)

Kapitel 4– Teoretisk bakgrund

17

Broadcast receiver

En broadcast receiver är på svenska ”radiomottagare”. Huvuduppgiften som broadcast receiver utför är att svara på systemomfattande sändningsmeddelande. Broadcast receiver är en komponent som exempel meddelar att skärmen har stängts av, att batteriet är lågt eller att en bild har tagit med kameran. Broadcast receiver visas inte i användargränssnittet men det kan visas i statusfältet att en händelse har inträffat, som att data har laddats ner till enheten och att den är redo att användas. [17]

Manifest file

Manifestfilens huvuduppgift är att informera systemet om applikationens komponenter, som att identifiera alla behörigheter som applikationen måste ha för att kunna interagera med applikationens komponenter, deklarera alla API nivåer, deklarera alla hård & mjukvara som kamera och bluetooth. Manifest beskriver även komponenter som activities, services, broadcast receiver och content providers. [18]

(18)

Kapitel 4– Teoretisk bakgrund

18 Apk

Android application package file används för att installera applikationer på operativsystemet Android. En apk-fil är en sammanställning av flera filer. Maximal tillåten storlek på en apk-fil är 50 Megabyte. Program som överstiger den gränsen måste ladda resterande filer via applikationen. [19]

ADB

ADB som står för Android debug bridge är en del av standarden i Android SDK. Kortfattat ger det ett terminalbaserat gränssnitt för att kunna kommunicera med en emulator eller anslutna Android enheter. [20]

(19)

Kapitel 5– Genomförande

19

Kapitel 5 – Genomförande

5.1 Val av NFC-tagg

Vi valde NTAG203-taggen eftersom det är den vanligaste och den mest förekommande med ett lagringsminne på 144 bytes. Cybercom kommer att använda NFC-taggen till många olika Sony mobiler, ännu ett skäl till varför man ska använda sig av NFC-taggen som är vanligast på marknaden och är kompatibel med alla mobiltelefoner som har stöd för NFC. [21] Nedan är en bild på NFC-taggarna som används i projektet.

Figur 6.

Tester utfördes på olika applikationer som kan laddas ner gratis från Play-butiken. Applikationerna som testades var NFC Tools, NFC Smart Q, NFC Task Manager, TagWriter och NFC Actions. Grunden till testning av fler applikationer var för att få en bredare bild över vad som kan kodas i en NFC-tagg via en applikation.

(20)

Kapitel 5– Genomförande

20

5.2 Programmering av NFC-tagg

I projektet kodades NFC-taggarna med hjälp av applikationen NFC Tools som kan laddas ner från Play-butiken. Applikationen erbjuder flera olika sätt att programmera data till en NFC-tagg.

Figur 7 vi ser ”write” fliken. För att kunna skriva till taggen trycker man på knappen ”Add a record”.

Efter att man har tryckt på knappen ”Add a record” öppnas ”Add a record” menyn. Här får användaren en överskådlig bild på olika val som kan programmeras till NFC-taggen. I vårt fall valdes URL för att kunna skriva en URL-länk till NFC-taggen.

Figur 7.

När användaren valt att skriva en URL till taggen ombeds användaren att skriva URL-länken. Användaren kan välja kommunikationsprotokoll, därefter skriva URL-länken med www i början och domännamnet i slutet. För att godkänna klickar man på knappen ”OK”.

I sista steget uppmanar applikationen användaren att närma mobilen till en NFC-tagg för att kunna skriva till den, se figur 8. Det är viktigt att användaren håller taggen stilla mot mobilens NFC-modul en sekund för att skrivningen till taggen ska fullbordas. Efter detta är taggen matad med URL-länken och kan därefter läsas av

(21)

Kapitel 5– Genomförande

21

5.3 Applikationsutveckling

Applikationen utvecklades i ADT miljön med hjälp av ett par guider på Androids utvecklingshemsida.

Under projektets gång kan applikationen testas med Android SDK:s egna ”mobilsimulator” eller en fysisk Android-mobil. För att kunna använda en fysisk mobil måste man installera ADB-drivrutiner för just den mobilen som skall testas. Mobilen kopplas till datorn via en USB-sladd. Vi använde mobiler istället för mobilsimulatorn som medföljer i utvecklingsverktyget SDK eftersom vi uppfattade det betydligt smidigare och tillförlitligare. Mobilerna som användes under utvecklingen av applikationen var bland annat Sony Xperia V och Sony Xperia Z1 Compact.

5.4 Interaktionen mellan NTAG203 och mobil

När man sätter igång en Sony mobil är NFC alltid igång.

NFC är i ”viloläge” när mobilskärmen är låst. För att ”väcka” NFC räcker det att låsa upp skärmlåset på mobilen.

För att hitta NFC-chippet är placeringen oftast markerad med ett litet märke på baksidan av mobilen. Figur 9 visar var NFC-taggen är placerad.

Figur 9.

För att inleda en interaktion i praktiken placeras NFC-taggen mot NFC märket på mobilen och då ska mobilen vibrera lätt efter en lyckad interaktion. I vårt fall öppnas webbläsaren i mobilen med en URL-länk till applikationens installationsfil (apk-filen).

(22)

Kapitel 6 – Resultat och analys

22

Kapitel 6 – Resultat och analys

6.1 Hur mobilens systeminställningar kan ändras med en Android-applikation

Det är möjligt att konfigurera en mobils systeminställningar med hjälp av korrekt Javakod och rättigheter i koden. Systeminställningarna som går att konfigurera med applikationen och även tillvägagångssättet till resultatet presenteras längre fram i detta kapitel.

Systeminställningar

Systeminställningarna som kan konfigureras automatiskt via applikationen är följande: – Ställa in viloläge till 30 minuter

– Starta wifi

– Koppla upp sig på ett specifikt wifi nätverk – Avaktivera skärmlås

– Radera alla filer på externa SD-kortet – Utföra en fabriks återställning

För att det ska vara möjligt att konfigurera mobilens systeminställningar från applikationen får man anpassa koden lite efter Android SDK-uppsättning av regler fastän koden är baserad på programmeringsspråket Java. Det är en del huvudmetoder som anropas i koden som är speciella för Android. Ett exempel är:

Toast.makeText(MainActivity.this, "Screen timeout 30min",

Toast.LENGTH_LONG).show();

Toast är en liten pop up-ruta som ger feedback om en nyligen inträffad operation i systemet med ett litet meddelande, i detta fall ”Screen timeout 30min”. Toasts försvinner efter en viss angiven timeout. [22] I applikationen dyker denna ruta upp ifall viloläget ändrats till 30 minuter. Varje inställning som utförs via applikationen behöver separat tillstånd i Android Manifestet, annars är ändringarna inte möjliga. Ett exempel på hur ett tillstånd ser ut:

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

Denna rad kod finns i Android Manifestet som godkänner applikationen att ändra tillståndet på wifi i mobilen.

Applikationen består av 3 olika knappar. Om man klickar på första knappen ”Automatic Settings” kommer de automatiska inställningarna att konfigureras direkt i mobilen. Andra knappen ”Manual Settings” möjliggör ändringar av de manuella systeminställningarna som inte går att utföra via knappen ”Automatic Settings”. Tredje knappen är ”Factory Reset” vilket innebär att man återställer telefonen till fabriksinställningar.

(23)

Kapitel 6 – Resultat och analys

23 Kodning av systeminställningarna

Viloläge 30min

För att kunna ändra mobilskärmens viloläge till 30 minuter behövs endast en rad kod. Med hjälp av Settings System kan man konfigurera de enkla inställningarna till en Android-mobil kodmässigt. Settings System används följt av en putInt som sätter in ett nytt värde i en nyckel som ersätter det gamla värdet. I putIn skrivs Screen_Off_Timeout och därefter anges ett värde till tiden för skärmens viloläge i millisekunder. I detta fall är det nya värdet 30 minuter. Kod som använts i applikationen:

Settings.System.putInt(getContentResolver(), Settings.System.SCREEN_OFF_TIMEOUT,

1800000);

För att koden ska fungera behöver man även lägga till följande tillstånd i Android Manifestet:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />

Uppkoppling av wifi

För att sätta igång det trådlösa nätverket och även kunna koppla upp sig på ett specifikt nätverk krävs mer än endast en rad kod. Först får man skapa en wifi konfiguration i projektet med hjälp av variabeln wifiManager och instansen

Context.getSystemService(Context.WIFI_SERVICE). Följt av en if-sats med villkoret om wifi är avslaget på mobilen, sätt igång wifi.

final WifiManager wifiManager = (WifiManager)

getSystemService(Context.WIFI_SERVICE);

if(!wifiManager.isWifiEnabled()) {

wifiManager.setWifiEnabled(true); }

Även denna process måste godkännas av manifestet genom att man lägger till följande tillstånd:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

Därefter implementeras två strängar, ena till nätverkets namn (SSID) och andra till lösenordet (WPA2-krypteringen). Efter att strängarna implementerats skapas en nätverksuppkoppling med hjälp av strängarnas värde. Sedan skapas en arraylist med alla möjliga nätverk som mobilen kan detektera. Denna lista itereras med hjälp av en for-loop följt av en if-sats som kommer iterera tills villkoret i if-satsen uppfylls, d.v.s. tills programmet har hittat nätverkets namn som hårdkodades i den första strängen.

(24)

Kapitel 6 – Resultat och analys

24

Avaktivera skärmlås

Lösningen för att avaktivera mobilens skärmlås fungerar felfritt. Koden är egentligen avsedd för äldre versioner på Android, d.v.s. Android 2.2 och lägre men fungerar utan problem i applikationen då applikationen är igång i bakgrunden.

KeyguardManager keyguardManager =

(KeyguardManager)getSystemService(Activity.KEYGUARD_SERVICE);

KeyguardLock lock = keyguardManager.newKeyguardLock(KEYGUARD_SERVICE);

lock.disableKeyguard();

Klassen KeyguardManager anropas och därefter ställs Keyguard till lock.disableKeyguard(); för att tillfälligt ta bort skärmlåset. För att Keyguard ska kunna fungera i koden måste man lägga till följande tillstånd i manifestet:

<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>

Radera alla filer på externa SD-kortet

Koden för att kunna radera alla filer på externa SD-kortet är korrekt men fungerar inte på Androids senaste version 4.4 på grund av säkerhetsskäl. Den funkar endast på version 4.3 och lägre. Android har begränsat rättigheterna för tredje parts applikationer för att kunna skriva/ändra/ta bort till SD-kortet automatiskt via en applikation, man ska endast kunna läsa från SD-kortet.

String deleteCmd = "rm -r " + path;

I koden används ett Linux-kommando för att radera innehållet på SD-kortet. Det är en kort och enkel kod. Det är inga problem med att använda Linux-kommando då Androids kärna bygger på Linux.

rm står för remove files/directories följt av –r som står för ”remove the contents of directories recursively. Vi skapar strängen ”deleteCmd” som används vid radering av mappar och filer på SD-kort.

Manuella inställningar

De manuella inställningarna är kodade med hjälp av intents. En intent är alltså en intention till något som ska hända i applikationen. Varje manuell inställning har sin egen intent som pushar fram mobilen till rätt meny i inställningar, då användaren kan konfigurera inställningen manuellt.

Meningen med intents är att skapa en genväg till den valda inställningen som ska konfigureras av användaren. Med detta sätt minskas antalet knapptryck avsevärt jämfört med om användaren skall på egen hand komma fram till rätt meny i inställningar för att utföra konfigurationen.

Ett exempel på en intent som finns med i applikationen för den manuella inställningen ”Local Language”.

(25)

Kapitel 6 – Resultat och analys

25

startActivityForResult(new

Intent(android.provider.Settings.ACTION_LOCALE_SETTINGS),0);

Med hjälp av denna kod pushar applikationen dig till ”ACTION_LOCAL_SETTINGS”, d.v.s. menyn i inställningar där man kan ändra det lokala språket för mobilen.

Utföra en fabriksåterställning

För att applikationen ska kunna utföra en korrekt fabriksåterställning på mobilen krävs det att applikationen blir en enhetsadministratör som kan upprätta enhetens säkerhetspolicy. När applikationen installeras på mobilen ställs den automatiskt in som en enhetsadministratör som visas under Inställningar>Säkerhet>Enhetsadministratörer.

För att kunna utföra en fabriksåterställning används klassen DevicePolicyManager som anropas och gör det möjligt att hantera administrationsverktyg, samt subklassen DeviceAdminReceiver som måste finnas med i applikationen för att kunna implementera administrationsrättigheterna. Subklassen innehåller metoder som gör det möjligt att kunna tolka åtgärderna som blir skickade från systemet.

I mainActivity klassen implementeras en onClick metod och fungerar som en lyssnare ifall knappen ”Factory Reset” blir tryckt. När den blir tryckt anropas följande kod:

devicePolicyManager.wipeData(ACTIVATION_REQUEST);

(26)

Kapitel 6 – Resultat och analys

26

6.2 Applikationens utseende

När applikationen är installerad på mobilen och startas dyker det upp en pop-up ruta. Rutan frågar användaren om applikationen kan aktiveras som enhetsadministratör. Det är ett krav att applikationen fungerar som en enhetsadministratör om användaren ska utföra en fabriksåterställning på mobilen via applikationen.

Rutan upplyser användaren även om vilka rättigheter applikationen kommer ha efter att användaren aktiverar den som enhetsadministratör.

Efter man valt i rutan kommer användaren fram till huvudsidan.

Figur 12 som visas till höger är applikationens huvudsida. Applikationen består endast av en liten text ovanför tre olika knappar.

Texten indikerar om användaren aktiverat applikationen som en enhetsadministratör, i detta fall ”Admin is active”. Om man inte aktiverar applikationen som enhetsadministratör står det istället ”Admin is not active”.

Om man klickar på första knappen ”Automatic Settings” kommer de automatiserade konfigureringarna att installeras på mobiltelefonen. De automatiska konfigureringarna presenterade vi i början av detta kapitel. Om man klickar på andra knappen ”Manual Settings” kommer det upp en Dialogruta med olika alternativ. Alternativen är de inställningar som inte går att utföra automatiskt.

Figur 12. Framsidan på applikationen.

Tredje knappen ”Factory reset” används om användaren vill utföra en fabriksåterställning på telefonen.

(27)

Kapitel 6 – Resultat och analys

27 Om man klickar på knappen ”Manual Settings” visas denna dialogruta upp (Figur 13). Här listas dem inställningar som inte gick att utföra automatiskt.

Om användaren exempelvis väljer alternativet ”Local Language” skickar applikationen användaren till mobilens inställningar för att kunna ändra mobilens lokala språk manuellt.

Samtliga alternativ fungerar på detta sätt.

Figur 13. Manuella inställningar 6.3. Resulterande tidsbesparing

Följande två tabeller visar omfattningen av testarbetet med nuvarande metoden och med den nya utvecklade metoden.

Tabell 1 Omfattningen och komplexitet hos Cybercoms testmetod

Utan Effective test setup for smartphones Tid (sekunder) Antal knapptryck

1. Starta prototyp 35 1

2. Starta wifi & koppla upp på nätverk 20 8

3. Hämta internet inställningar 20 3

4. Ställ in viloläge till 30 min 15 4

5. Radera minne på SD kort & intern lagring 20 4

6. Ställ in skärmlås till "inget" 15 4

7. Ställ in språk till English 15 5

8. Aktivera utvecklar alternativ 15 7

9. Markera "håll aktiverad, USB-felsökning och tillåt skenplatser". 15 6

10. Avmarkera "Lås SIM-kort" 20 5

Summa: 190 47

Med den nuvarande metoden behövs det ungefär 3 minuter och 10 sekunder. Vilket svarar mot sammanlagt 47 knapptryck på mobilen för att konfigurera inställningarna.

(28)

Kapitel 6 – Resultat och analys

28 Tabell 2 Omfattningen och komplexitet hos den nya testmetoden

Med Effective test setup for smartphones Tid (sekunder) Antal knapptryck

1. Starta prototyp 35 1 *

2. Intergera med NFC-tagg 1 0

3. Länka till URL 5 0

4. Hämta apk 10 0

5. Installera applikation 10 2

6. Välj Testcase "Automatic Settings" 5 1

7. Välj Testcase "Manual Settings" 25 20 *

Summa: 91 24

* = Preliminär beräkning beroende på mobilmodell.

* = Preliminär beräkning av tid och knapptryck, stämmer om det redan finns förinställda APN inställningar.

Med vårt system räcker det med preliminär beräkning beroende på mobilmodell vilket svarar mot ungefär 1 minut och 31 sekunder. 24 knapptryck för att konfigurera dessa inställningar i prototypen beroende på mobilmodell.

Slutsats: Med vårt effektiva testsystem tar det hälften så lång tid att konfigurera mobilerna jämfört med den ursprungliga manuella metoden. Företaget kommer spara cirka 1.5 minut per enhet i deras CTS testing. Antalet mobiler testarna på Cyberkom jobbar med under en dag varierar, oftast handlar det om 40 till 60 mobiler per dag. 40*1.5 = 60 minuter, 60*1.5= 90 minuter. Det vill säga att testarna sparar 60-90 minuter per dag. Ytterligare fördelar med vårt system är att testerna körs igång tidigare, att man sparar tid och att en mycket enklare interaktion mellan testarna och enheterna uppstår.

Slutsatsen är således att vårt system ökar företagets produktivitet i arbetsprocessen till att konfigurera enheter för test.

(29)

Kapitel 7 – Diskussion och slutsats

29

Kapitel 7 – Diskussion och slutsats

7.1 Den genomförda lösningen

Vi har utvecklat ett enkelt system som får testarna att konfigurera inställningarna i mobilen på ett snabbt och effektivt sätt.

Med hjälp av våra mätningar och tabeller i kapitel 6 visar vi att företaget kommer vinna tid på att använda vårt system och i sin tur öka produktiviteten. Detta var vårt främsta mål med projektet.

7.2 Reflektioner

Under projektets gång stötte vi på uppgångar och nedgångar med olika idéer för den mest optimala lösningen. Första idén var att försöka tänka ut en lösning som konfigurerar samtliga systeminställningar automatiskt i mobilen med hjälp av en NFC-tagg. Efter en del informationssökning och testning fastställdes att detta inte fungerar, eftersom en NFC-tagg har ett begränsat minne som endast kan lagra en liten mängd data. En NFC-tagg kan inte lagra data för att konfigurera samtliga inställningar som Cybercom begärde.

I början var det mycket fokus på NFC-tekniken eftersom projektet kretsade kring det. Efter diskussioner med handledarna togs beslutet att lägga tyngd på Android applikationen istället. Första tanken var att applikationen endast skulle bestå av två knappar. Om man trycker på första knappen ”Automatic Settings”, skall samtliga systeminställningar konfigureras i mobilen. Om användaren trycker på andra knappen ”Factory Reset”, ska applikationen utföra en fabriksåterställning av mobilen.

Med tiden formades projektet och problem uppstod. Android kräver behörigheter för vanliga användare att konfigurera vissa inställningar automatiskt i mobilen. Vissa inställningar har Android blockerat på grund av säkerhetsskäl. Vi löste det problemet genom att implementera en till knapp, ”Manual settings”. Via den knappen kommer användaren åt samtliga systeminställningar som inte gick att automatisera, och länkas till respektive sida i mobilens ”inställningar” applikation för att konfigurera de manuellt.

Cybercom huvudsakliga krav var att vi skulle lyckas med att underlätta förberedelsen inför deras CTS testningen. Detta har vi lyckats åstadkomma med vårt system och även kunnat styrka det med tabellerna i kapitel 6 gällande tidsåtgången.

Under förstudien uppskattade vi tiden det skulle ta för att konfigurera alla inställningar i mobilen. I förstudien presenterade vi två tabeller där vi visade hur lång tid varje del av konfigurationen skulle ta. Tabell 1 i förstudien antog vi att det tog ungefär 6 minuter för att konfigurera alla inställningar i mobilen manuellt. Detta stämmer inte överens med resultatet som vi har i denna slutrapport.

(30)

Kapitel 7 – Diskussion och slutsats

30 Anledningen till varför tabell 1 i förstudien och i slutrapporten avviker från varandra är för att vi uppskattade alla värden på hur lång tid det skulle ta. Tabellen i slutrapporten visar resultat på konfigurationerna som är utförda av en testare som vi tog tiden på i företaget. Tabell 2 i förstudien stämmer inte överens med tabell 2 i denna slutrapport. Tabell 2 i slutrapporten utförs konfigureringarna med vårt system. I förstudien antog vi att alla inställningar skulle konfigureras via ett knapptryck i applikationen. Vi uppskattade då tiden till 2 minuter. Detta resultat är inte korrekt med vår slutgiltiga lösning, då det tar ungefär 1 minut och 31 sekunder. Detta resultat fick vi när en testare använde vårt system.

Dagens lösning är annorlunda jämfört med lösningen vi antog i förstudien. Något som framkommer är att tabellerna i förstudien och i slutrapporten avviker från varandra. De korrekta tabellerna är presenterade i denna rapport under kapitel 6.

I tabell 1 och 2 i slutrapporten har vi redovisat att Cybercom sparar tid och gjort en beräkning på hur många timmar de kommer spara ungefär per dag. Med detta bevisar vi att vårt system är effektivt.

7.3 Uppdragsgivarnas synpunkter

När vi presenterade applikationen till uppdragsgivarna på Cybercom uppskattade de applikationens layout. Applikationen innehöll enkelheten de hade förväntat sig.

De blev även imponerade att vi lyckades genomföra en total fabriksåterställning i applikationen med bara ett knapptryck.

Uppdragsgivarna är nöjda med resultatet vilket uppfyller deras krav och ändamål.

7.4 Vidare utvecklingsmöjligheter

Kommunikation Server och Databas

I början av projektet och i vår förstudie föreställde vi oss vi en Android-applikation som är minimalt hårdkodad. Syftet var att kunna erbjuda företaget en chans att ändra och modifiera applikationen efter deras ändamål och om det uppkommer några förändringar i kommande versioner av Android.

För detta ändamål krävs en internetbaserad lösning bestående av server och databas. Tanken från början var att endast hårdkoda layouten på applikationen. Funktionaliteten ska styras av servern och databasen.

För detta behövs en databas som kan fyllas med rader av programmeringskod. Efter ett tag insåg vi svårigheterna med detta eftersom vår kompetens inom databasteknik och programmering inte är tillräckligt bred inom området.

(31)

Kapitel 7 – Diskussion och slutsats

31 Företagets uppsättning av inställningar som måste konfigureras i mobilerna innan testing har alltid varit dem samma och att det endast finns en liten risk att de förändras. Efter diskussion med handledare på skolan och företaget drog vi slutsatsen att endast utveckla en hårdkodad applikation.

Kommunikation mellan server och databas till applikationen kan dock vara en utmärkt vidareutvecklingsmöjlighet i framtiden. Cybercom kommer få all källkod och innehar kompetensen inom området. Detta kommer att underlätta vidareutvecklingen av applikationen.

Wifi

Koden för wifi uppkopplingen i nuläget fungerar felfritt men är inte en helt optimal lösning. En bättre lösning hade varit om applikationen kunde kontrollera om det nätverket den försöker ansluta till verkligen existerar. Efter att applikationen försökt ansluta sig till det angivna nätverket skall applikationen även kontrollera att anslutningen lyckades, samt ha en reservplan angående det primära nätverket med ett sekundärt nätverk.

(32)

Källförteckning 32

Källförteckning

[1] Cybercom. Hämtad 2014-04-12 http://www.cybercom.com/sv/Om-Cybercom/Om-koncernen/ [2] Cybercom. Hämtad 2014-04-12 http://www.cybercom.com/sv/Om-Cybercom/Bolagsstyrning/

[3] Developer Android: Compatibility Test Suite, Hämtad den 2014-04-27 från:

http://source.android.com/compatibility/cts-intro.html

[4] Android Compatibility program: Compatibility Test Suite Manual, Hämtad 2014-04-27

http://static.googleusercontent.com/media/source.android.com/sv//compatibi lity/android-cts-manual.pdf

[5] G. Madlmayr, C. Kantner, T. Grechenig (2014), Near Field Communication, pp (351-367)

[6] NFC Tags, How to Select the Right NFC Tag, hämtad 2014-05-12

http://www.nfctags.com/nfc-applications-which-tag

[7] NFC Forum, NFC Forum Tag Type Technical Specifications, hämtad 2014-05-12

http://members.nfc-forum.org/specs/spec_list/

[8] Lee, Wei-Meng, Android 4 Application Development (s 2-33) Editors: Robert Elliott, Ami Sulivan. Indianapolis, Indiana, USA, 2012. Hämtad 2014-08-10

http://reader.eblib.com.proxy.mah.se/(S(hsater501texv3l30lwwmvim))/Reader .aspx?p=818160&o=1940&u=i4519Yk5UtlYkGiKSgqUuw%3d%3d&t=140836780 6&h=35E9F421180D292C119413C0FC360E4386F35D9A&s=25712876&ut=642 1&pg=1&r=img&c=-1&pat=n&cms=-1#

[9] Cinar, Onur. Android Apps with Eclipse (s 1-25) Editors: Anglin Steve, Markham James, Sullivan Kate, Smith Marilyn. New York, USA, 2012. Hämtad 2014-04-13

http://reader.eblib.com.proxy.mah.se/(S(wx0hfdxqqzpc41gey4gy2fac))/Reader .aspx?p=1156045&o=1940&u=i4519Yk5UtlYkGiKSgqUuw%3d%3d&t=14011077 28&h=1DF2948E79EAA5E4EFF2769A26688D16F28B320F&s=23393291&ut=642 1&pg=1&r=img&c=-1&pat=n&cms=-1#

[10] Developer Android: SDK Tools, 2009-10-01. Hämtad 2014-04-10 från:

(33)

Källförteckning

33 [11] Developer Android: ADT Plugin, 2009-10-01. Hämtad 2014-04-10 från:

http://developer.android.com/tools/sdk/eclipse-adt.html

[12] Oxford Reference, A Dictionary of Computing: Application Programming Interface, Hämtad 2014-04-13

http://www.oxfordreference.com.proxy.mah.se/view/10.1093/acref/97801992 34004.001.0001/acref-9780199234004-e-160#

[13] Developer Android: Application fundamentals, Hämtad 2014-04-13

http://developer.android.com/guide/components/fundamentals.html

[14] Developer Android: Activities, Hämtad 2014-04-14

http://developer.android.com/guide/components/activities.html

[15] Developer Android: Services, Hämtad 2014-04-14

http://developer.android.com/guide/components/services.html

[16] Developer Android: Content providers, Hämtad 2014-04-14

http://developer.android.com/guide/topics/providers/content-providers.html

[17] Developer Android: Broadcast receivers, Hämtad 2014-04-14

http://developer.android.com/guide/components/fundamentals.html#Manifes t

[18] Developer Android: App Manifest, Hämtad 2014-04-14

http://developer.android.com/guide/topics/manifest/manifest-intro.html

[19] Developer Android: APK Expansion File, Hämtad 2014-04-16

http://developer.android.com/google/play/expansion-files.html

[20] Android Debug Bridge, hämtad 2014-05-23

http://developer.android.com/tools/help/adb.html

[21] NFC-Forum, UPM RFID launches new high-performance NFC tag portfolic based on NXP NTAG203 chip, 2011-09-19, Hämtad 2014-05-07

http://nfc-forum.org/newsroom/upm-rfid-launches-new-high-performance-nfc-tag-portfolio-based-on-nxp-ntag203-chip/

[22] Android Developer, Toasts, hämtad 2014-04-29

http://developer.android.com/guide/topics/ui/notifiers/toasts.html

(34)

Teknik och samhälle

Institutionen för datavetenskap

Examensarbete VT2014 inom

högskoleingenjörsprogram Data & telekom

FÖRSTUDIE 2014-03-04

1

Effective Test Setup using NFC

Martin Nikolovski MN

Steven Belokozovski SB

1. Avgränsning av forskningsfrågan eller huvudproblemet,

förtydligande av kravspecifikationer

1.1 Bakgrund

Cybercoms testavdelning utför många tester på olika sorters produkter. Ett exempel på deras produkter som dem testar är mobiltelefoner. Innan testarna utför diverse tester på

mobiltelefonerna måste mobilerna konfigureras på ett korrekt sätt med rätt inställningar. Tiden det tar för att konfigurera mobilerna är ett problem för Cybercom. Konfigureringarna utförs manuellt på varje mobil vilket bidrar till att testerna får mindre tid på sig att utföra testerna.

Mobiltelefonerna som testas är främst mobiltelefoner från Sony med operativsystemet Android 4.3 (JellyBean).

Inställningarna som ändras i mobilerna är vanligtvis enkla konfigureringar. Ett exempel på inställningar som ändras är aktivera wifi, bluetooth och formatera det externa

lagringsutrymmet.

Resultatet av arbetet blir ett system som underlättar konfigurering av inställningar på mobilen.

Vi ska utveckla en Android applikation som gör det möjligt att ändra konfigureringarna automatiskt. Applikationen ska installeras på varje mobil, med hjälp av en NFC tagg. NFC taggen kommer innehålla instruktioner för mobilen. Instruktionerna kommer därefter aktivera wifi på mobilen, koppla upp sig på Cybercoms interna nätverk och hänvisa till applikationen med hjälp av en URL länk.

URL länken är alltså en sökväg till applikationen som kommer hämtas i filformatet apk. Apk är ett filformat som används för att distribuera och installera applikationer på en mobil enhet med operativsystemet Android.

Vår forskningsfråga är att identifiera det mest lämpligaste och optimala systemet för överföring av testinformation och att verifiera vår lösning med en prototyp.

(35)

2 En tänkbar lösning som vi kommer att undersöka är att överföra applikationen med

inställningar via NFC med hjälp av exempelvis en NFC-tagg.

En NFC-tagg är alltså en tagg som är skriven på bland annat ett Rfid-chip som har ett minne. Detta minne kan till exempel innehålla information som skickas över till en mobiltelefon. Taggens lagringsminne fylls med information som fungerar som instruktioner till mobilen. NFC (near field communication) eller närfältskommunikation på svenska, är en kort (0-10cm) trådlös överföringsstandard mellan mobiler och liknande enheter för att

upprätthålla radioförbindelse med varandra. Denna teknik är en vidareutveckling av RFID, som är en äldre teknik med samma grundprincip.

Syftet med NFC är att skapa en trygg och enkel kommunikationskanal mellan olika enheter, främst inriktat mot mobiltelefoner.

Säkerheten är inte så aktuell eftersom systemet är tänkt att vara utformat internt till företaget Cybercom. Systemet kommer endast användas med prototypmobiler, inga mobiler som kommer ut i marknaden. NFC tekniken är relativt säker eftersom den är utvecklad för att kunna användas på kort avstånd, ungefär ett fåtal centimeter, vilket gör den betydligt svårare att avlyssna jämfört med bluetooth.

1.2 Huvudproblem

Vårt uppdrag är att göra det enkelt för testarna på Cybercom med förberedelserna innan dem utför tester på mobilerna. För att göra det enkelt för testarna ska vi utveckla ett system som innehåller alla inställningar de behöver ändra på i mobilerna. Inställningarna ska konfigureras automatiskt med hjälp av en Android applikation.

Det speciella med examensarbetet är att det är speciellt utformat för företaget Cybercom i dagsläget. Om systemet visar sig vara väl fungerande och praktiskt, kan Cybercom sälja vidare systemet till andra stora Telekomföretag som till exempel Sony.

(36)

3

Effective Test Setup Using NFC

Hårdvara DP1 NFC DP1.1 NFC Tagg LP1.1 DUT DP1.2 LP1.2 Mjukvara DP2 Android DP2.1 Applikations utveckling DP2.1.1 Eclipse Java Android LP2.1.1 Kommunikation DP2.1.2 Java LP2.1.2 Datahantering DP3 Kommunikation DP3.1 Server DP3.1.1 Java Server LP3.1.1 Databas DP3.1.2 MySQL Databas LP3.1.2 Figur 1. Systemöversikt

En klar bild på hur systemet kommer fungera, vi har valt att bryta ner huvudproblemet i mindre delproblem (se figur 2). Här kan man se en klar bild på delproblemen.

Figur 2. Lösningsprincip och delproblem

Huvudproblemet är uppdelat i tre viktiga delproblem, hårdvara (DP1), mjukvara (DP2) och datahantering (DP3). Varje delproblem är uppdelat i mindre problem, följt av sin egen lösningsprincip.

DP1 hårdvara är uppdelat i två delproblem NFC (DP1.1) och DUT (DP1.2), problemet är för DUT att kommunicera och interagera med NFC.

DP2 mjukvara har ett delproblem Android (DP2.1) som sedan är uppdelad i två delproblem Applikationsutveckling (DP2.1.1) och Kommunikation (DP2.1.2). Problemet är utvecklingen av applikation som sedan ska kommunicera med server och databas.

DP3 Datahantering har ett delproblem kommunikation (DP3.1) som sedan är uppdelad i två delproblem server (DP3.1.1) och databas (DP3.1.2). Problemet för servern som väntar på applikationen att ge instruktioner, där databasen väntar på att skicka konfigurationerna till applikationen.

(37)

4 1.3 Testcases Cybercom

Här nedan presenterar vi dem inställningar vi fått i uppdrag av Cybercom att integrera i vår applikation:

1. Fabriksåterställning – Återställer standardinställningar på telefonen.

Manuell inställning: Inställningar > Säkerhetskopiering & återställning > Återställ standardinställningar > Välj "Radera internminne" > Tryck på knappen "Återställ

mobilen" > Tryck på knappen "Radera allt"

2. Val av språk – Ställ in mobilens språk till ”English” (United States). Manuell inställning: Inställningar > Språk och inmatning > Välj språk

3. Internet Inställningar – Ställ in mobilens internet inställningar för internet och MMS

Manuell inställning: Inställningar > Mer > Tryck på knappen ”Internetinställningar” 4. Avmarkera ”Lås SIM-kort” – Om SIM-kort låst med pinkod - inaktivering av pin

kod på sim kort.

Manuell inställning: Inställningar > Säkerhet > Ställ in lås för SIM-kort > avmarkera ”Lås SIM-kort”

5. Utvecklar alternativ

a) Få fram utvecklar alternativ på mobilen.

Manuell inställning: Inställningar > Om mobilen > Tryck på ”Version” fem gånger, ”Du är nu en utvecklare”

b) Aktivera USB-felsökning – Felsökningsläge när USB har anslutits. Manuell inställning: Inställningar > Utvecklaralternativ > markera ”USB-felsökning.

c) Markera ”Håll aktiverad” – Skärmen vilar aldrig när laddning pågår - & ”Tillåt skenplatser”

Manuell inställning: Inställningar > Utvecklaralternativ > markera ”Håll aktiverad” och ”Tillåt skenplatser”

d) Viloläge – Ställ in maximal skärm timeout för displayen

Manuell inställning: Inställningar > Display > Viloläge > Markera ”30 minuter”. 6. Rensa lagring – Rensa intern lagring och radera SD Kortet

Manuell inställning: Lagring

7. Wi-Fi – Anslut mobilen till ”CCGuest” nätverket med koden ”!cyber42”. Manuell inställning: Inställningar > Wi-Fi > Välj ”CCGuest” skriv in koden ”!cyber42”.

8. Screen Lock – Ställ in skärm lås till ”Inget”

(38)

5 Följande tabell beskriver de olika delproblemens lösningsprinciper.

Lösningsprincip(LP) Beskrivning

1.1 Vi kommer använda oss av en passiv NFC

tagg, som vi kommer programmera. Den kommer att interagera med en mobil som är en prototyp.

1.2 DUT= Device Under Test

En mobil med operativsystemet Android (4.3/4.4) med inbyggd NFC.

2.1.1 Vi utvecklar applikationen i plattformen

Eclipse. I applikationen ska användaren kunna välja specifikt Test Case, för att sedan kunna förberedda mobilen inför test.

2.1.2 När användaren väljer ett specifikt Test

Case, så ska applikationen kommunicera med server och databas.

3.1.1 Servern är passiv och lyssnar efter

instruktioner från applikationen. Om den får instruktioner från applikationen, hämtar servern specifik data från databasen och därefter skickar vidare det till applikationen.

3.1.2 Databas som innehåller olika konfigurationer

till mobilen.

Krav för systemet, med typbetäckningen m= minikrav, i= idealkrav.

Krav-nr.

Typ m/i/ö

Kravspecifikation Gäller för

K1 i NFC taggen ska vara tillgänglig för användaren, färdigkodad och redo för användning.

DP1.1 LP1.1

K2 m DUT med Android (4.3/4.4) och NFC aktiverat. DP1.2

LP1.2 K3 m NFC tagg interagerar med DUT, Wi-Fi sätts igång på DUT och

ansluter till Cybercoms trådlösa nätverk.

DP2.1.1 LP2.1.1 K4 m När DUT är ansluten till nätverket, matas en URL-länk i

webbläsaren och hänvisas till apk.

DP2.1.1 LP2.1.1

K5 m Apk filen hämtas från Cybercoms server DP2.1.1

LP2.1.1

K6 m Apk filen installeras på DUT. DP2.1.1

LP2.1.1 K7 m Applikationen kommunicerar med servern, där servern

kommunicerar med databasen. Då användaren vill starta ett ”Test Case”.

DP2.1.2 LP2.1.2

K8 i Servern ska vara skriven i Java. DP3.1.1

LP3.1.1 K9 i Databasen ska vara skriven i programmet MySQL, där vi

använder oss av Cybercoms databas

DP3.1.2 LP3.1.2

(39)

6

2. Informationssökning efter vetenskapliga artiklar och

yrkeskunskap

Följande översikt visar sambandet mellan delproblem (DP) och lösningsprinciper (LP) från figur 1 och de vetenskapliga artiklar och den yrkeskunskap som resulterade från

informationssökningen. En kort beskrivning förklarar relevansen av källorna för examensarbetet.

DP, LP Källförteckning Relevans

DP1 DP1.1 LP1.1

Vedat Coskun; Kerem Ok; Busra

Ozdenizci. “Near Field Communication”,

from theory to practice, John Wiley &

Sons, 28 dec 2011, pp 43-48

En bok som behandlar NFC teoretiskt och praktiskt. Teori om NFC i

mobiltelefoner. DP2

DP2.1

Developer.android.com Hemsida om Android utveckling och applikationer.

DP2.1.1 LP2.1.1

Wei-Meng Lee. ”Android 4 Application Development”, Beginning. ISBN: 978-1-118-19954-1, Mars 2012

En bok som handlar om Android programmering och hur man skapar en Android applikation.

DP2.1.2 LP2.1.2

“Tutorial on Client-Server communications with Android”

EE368/CS232 Digital Image Processing, Spring 2014, Stanford.edu

Artikel som handlar om hur man sätter ihop en kommunikation mellan Server och Android applikation.

DP3.1 DP3.1.1 LP3.1.1 DP3.1.2 LP3.1.2

Heming Pang; Linying Jiang; Liu Yang; Kun Yue. ”Research of android smart phone surveillance system” Software Coll., Northeastern Univ., Shenyang, China, 25-27 June 2010

Artikel som visar hur man kopplar upp sig på en server och tar emot information med Android.

3. Genomförbarhetsanalys

Under förstudiens gång har vi köpt ett par NFC-taggar och kört mindre tester på dem för att se hur dem fungerar. Vi har även fått låna mobiler från Sony med NFC för att kunna utföra tester.

Taggarna som vi köpte är av NTAG203–typen som är i princip kompatibla med alla mobiltelefoner och rymmer 144 bytes som räcker långt för våra ändmål, då vi endast har tänkt skriva en URL länk, instruktioner för att sätta igång wifi och koppla upp sig på ett specifikt nätverk.

Vi har använt oss av diverse applikationer som man kan ladda ner från Play butiken för att kunna skriva bland annat URL länkar, sätta igång bluetooth och Wifi till NFC-taggarna och även ändra taggarnas innehåll med positiva resultat.

Vi har tyvärr inte hunnit skapa en test applikation som kan hämtas från en URL länk och kunna ändra inställningarna i telefonen, men vi har läst en del på developer.android.com och stackoverflow.com att detta är fullt möjligt att utföra.

(40)

7 3.1. Cybercoms tidsåtgång i nuläget

Utan Effective test setup using NFC Tid (min) Antal knapptryck

1. Starta DUT 1 1

2. Starta Wi-fi & koppla upp på nätverk 0.5 8

3. Hämta internet inställningar 0.5 3

4. Ställ in viloläge till 30 min 0.5 4

5. Radera minne på SD kort & intern lagring 1 4

6. Ställ in skärmlås till "inget" 0.5 4

7. Ställ in språk till English 0.5 5

8. Aktivera utvecklar alternativ 0.5 7

9. Markera "håll aktiverad, USB-felsökning och tillåt skenplatser". 0.5 6

10. Avmarkera "Lås SIM-kort" 0.5 5

Resultat: Med deras system tar det ungefär 6 min och 45 knapptryck på mobilen för att konfigurera inställningarna i DUT.

3.2. Cybercoms tidsåtgång med”Effective test setup using NFC” Med Effective test setup using NFC Tid (min) Antal knapptryck

1. Starta DUT 1 1

2. Interagera med NFC-tagg 0.125 1

3. Koppla till Wi-fi och länka URL 0.25 0

4. Hämta apk 0.25 0

5. Installera applikation 0.25 1

6. Välj Testcase 0.125 1

Resultat: Med vårt system tar det ungefär 2 minuter och endast 4 knapptryck för att konfiguera dessa inställningar i DUT.

Slutsats: Med vårt effektiva testsystem går det ungefär tre gånger snabbare att konfigurera mobilerna jämfört med när man gör det manuellt. Testarna på Cybercom kommer spara cirka 4 minuter per enhet.

Det är väldigt varierat med antalet mobiler testarna på Cybercom behöver testa, men oftast handlar det om 40-60 mobiler per dag.

Några fördelar med vårt system är att testerna körs igång tidigare, tidsbesparande och mycket enklare interaktion mellan testarna och enheterna, samt bra även ur ett ekonomiskt perspektiv för både Sony och Cybercom.

Hypotes:

Testarna på Cybercom får i uppdrag av Sony att testa 50 enheter på samma dag. Om dem hade konfigurerat enheterna manuellt hade det tagit dem ungefär 300 minuter, med vårt system hade det istället tagit 100 minuter. Med denna enkla beräkning kan vi dra slutsatsen att testarna sparar ungefär 200 minuter, det vill säga 3 timmar och 20 minuter per dag på att konfigurera enheterna.

(41)

8

(42)

9

5. Disposition av rapporten

Innehåll

Abstrakt……….. Innehållsförteckning………... Kapitel 1 – Introduktion……….. 1.1 Bakgrund och Syfte……….. 1.2 Problemformulering………. 1.3 Metod………. Kapitel 2 – Cybercom Testcenter……... 2.1 CTS Testing... 2.2 Testfall... 2.3 Syfte... Kapitel 3 – NFC……… 3.1 Vad är NFC?... 3.2 Användning... 3.3 Kommunikation... Kapitel 4 – Android... 4.1 Utveckling av applikation... 4.2 Konfigurering till mobil... 4.3 Testcase... 4.4 Kommunikation... Kapitel 5 – Server 5.1 Server... 5.2 Databas... 5.3 Kommunikation... Kapitel 6 - Resultat och Slutsats... 6.1 Resultat... 6.2 Slutsats... 6.3 Referens... Appendix A... Appendix B...

Figure

Figur 2. Systembild
Figur 3. En illustration på hur aktiviteter fungerar i en applikation i bakgrunden. 2
Figur 4. En illustration på hur aktiviteter fungerar. 3
Figur 5. En skärmdump på Manifest fil och innehållet.
+5

References

Related documents

Respondenterna upplevde sig mer sårbara när deras partner använde sig av sin mobiltelefon under ett samtal ansikte-mot-ansikte, vilket innebär att den andra parten ägnade sig

Institutionen för Byggnader och Installationer Gustav Bergstedt Avdelningen för Byggnadsteknik Magnus Wiberg.. Examensarbete

Antalet matcher är till antalet detsamma som antalet sätt vi kan bilda ett oordnat par med spelare från två olika länder.. I det första valet väljer vi den ena spelaren, fritt bland

Under mötet mellan gärningsperson och brottsoffer har parterna möjlighet att berätta sin upplevelse av brottet samt kunna ställa frågor till varandra.. Efter själva mötet är

cifika utvecklingsstadier, utan biverkningar be- höver detta inte vara fallet längre, även om man självfallet bör vidtaga ett visst mått av försiktig- het då

Kontroller totalt Godkända Mindre allvarliga brister Allvarliga brister Utan allvarlig anm.. 262 31 127

Områden av svårigheter som sjuksköterskor inom mångkulturell palliativ omvårdnad upplever; förförståelse, kommunikation, känsla av otillräcklighet samt bristande kunskap tror

Det finns inte heller någon tydlig hänvisning till vilka aspekter som ska bedömas hos ett barn för att kunna avgöra när barnet har nått den mognad när dess vilja bör beaktas