Mobila Applikationer
Provmoment:
Ladokkod:
Tentamen ges för:
7,5 högskolepoäng
Tentamen
NMO011
Systemarkitektprogrammet
Namn:
(Ifylles av student)
Personnummer:
(Ifylles av student)
Tentamensdatum:
Tid:
2012-05-30
14.00 – 19.00
Hjälpmedel:
Inga hjälpmedel
Totalt antal poäng på tentamen:
50 poäng
För att få respektive betyg krävs:
G=28, varav minst 21 poäng på teori-delen.
VG=40, varav minst 21 poäng på teori-delen.
Allmänna anvisningar:
Skriv dina svar på separata blad
När du är klar med tentamen: Stäng ner samtliga applikationer, och stäng ner den virtuella maskinen.
Rättningstiden är som längst tre veckor
Viktigt! Glöm inte att skriva namn på alla blad du lämnar in.
Lycka till!
Ansvarig lärare:
Telefonnummer:
Håkan Sundell, Tuve Löfström, Anders Gidenstam
033 435 4426, 4236, 4214
Svarsblankett
Namn:
(Ifylles av student)
Personnummer:
(Ifylles av student)
Uppgift 1:
a)
b)
c)
d)
e)
Uppgift 2:
A
B
C
D
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
Uppgift 4:
a)
b)
c)
d)
e)
a)
b)
c)
d)
e)
Uppgift 3:
A
B
C
D
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
B
C
D
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
a)
b)
c)
d)
e)
b)
c)
d)
e)
B
C
D
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
Uppgift 6:
Uppgift 5:
A
a)
A
A
B
C
D
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
a)
b)
c)
d)
e)
A
B
C
D
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
Uppgift 7:
a)
b)
c)
d)
e)
A
B
C
D
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
□
Observera:
Det minimala resultatet på uppgift 1 till 7 är 21 poäng.
Om detta inte uppnås, kommer inte uppgift 8 till 10 att beaktas och
automatiskt få 0 poäng.
2
1. Svara med något av de angivna alternativen på följande frågor.
(a) Den viktigaste begränsningen i hårdvara med moderna mobila plattformar jämfört
med stationära, som avsevärt påverkar designen av mjukvara, är _____ ?
Alternativ:
A.
B.
C.
D.
Kamerans upplösning.
Batteriets kapacitet och beräknad körtid.
Hastigheten på processorn.
Möjligheter att presentera 3D-grafik.
(b) En vanlig form av applikationer för mobila plattformar som utvecklas i Java är
_____ ?
Alternativ:
A.
B.
C.
D.
Applet.
Midlet.
Servlet.
Beanlet.
(c) För att komma till rätta med hårdvaru-begränsningarna på en mobil plattform
används ofta _____ ?
Alternativ:
A. Simplified Algorithms, Floating Point Processing, Data Replication, PreComputing.
B. Simplified Algorithms, Fixed Point Processing, Data Compression, PreComputing.
C. Parallel Algorithms, Fixed Point Processing, Data Compression, Real-Time
Calculation.
D. Parallel Algorithms, Floating Point Processing, Data Replication, Real-Time
Calculation.
(d) Fördelarna med distribuerade system kan karaktäriseras enligt _____ ?
Alternativ:
A.
B.
C.
D.
Resource Sharing, Security, Concurrency, Scalability, Fault tolerance.
Manageability, Openness, Security, Scalability, Fault tolerance
Resource Sharing, Openness, Concurrency, Scalability, Fault tolerance
Complexity, Security, Manageability, Unpredictability
(e) Modellen där all hantering av logik och data görs på servern, och klienten endast
sköter presentationen kallas för _____ ?
Alternativ:
A. Fat client model.
B. Thin client model.
C. Smart client model.
D. Peer-2-peer model.
(5p)
3
2. Svara med något av de angivna alternativen på följande frågor om system- och
nätverkstjänster på Windows Phone 7-baserade enheter.
(a) Vilken av följande interaktionsmodeller stöds av potentiellt tidskrävande
nätverksoperationer för t.ex. System.Net.Sockets.Socket och
System.Net.WebClient i .NET för Windows Phone 7.5? Anropande tråd
________?
Alternativ:
A. Får omedelbart tillbaka en kod som anger om operationen kunde utföras
direkt eller inte utfördes alls.
B. Bifogar ett trådobjekt som startas när uppgiften är redo att slutföras.
C. Blockeras i metoden tills uppgiften är slutförd.
D. Bifogar en delegat som anropas när uppgiften är redo att slutföras.
(b) Windows Phone 7.5 medförde vissa skillnader för hur applikationer hanterar sin
livscykel gentemot Windows Phone 7. Vilket av följande alternativ hör till dem?
Alternativ:
A. En deaktiverad men inte utrensad (eng. tombstoned) applikation kan skrivas
så att den kan återställas utan att behöva initiera om alla sina objekt.
B. En applikation behöver inte spara sitt tillstånd när den förlorar fokus /
deaktiveras utan bara när den rensas bort ur minnet (eng. tombstoned).
C. En deaktiverad men inte utrensad (eng. tombstoned) applikation kan alltid
återställas utan att behöva initiera om alla sina objekt.
D. Livscykelhanteringen förenklades för applikationsutvecklaren.
(c) Vad utmärker Cloud computing?
Alternativ:
A. Beräkningsresurser och lagringsplats för data tillhandahålls av en enormt
kraftfull server.
B. Begreppet cloud computing används främst om system där en organisation
äger både hårdvaran och tjänsterna som använder den.
C. Beräkningsresurser och lagringsplats för data är spritt över ett stort
sammankopplat nätverk av servrar.
D. Cloud computing är specifikt för Windows Phone enheter.
(d) En applikation skall ta emot/upptäcka externa händelser när de sker (t.ex. att en
motspelare har gjort ett drag i en distribuerad spelapplikation). Den av följande
systemtjänster som är bäst lämpad för detta är _____?
Alternativ:
A.
B.
C.
D.
Periodic Background Agent.
Background Notification.
Push Notification.
On Idle Background Agent.
(e) Molnplattformen Windows Azure tillhandahåller tjänsterna _____?
Alternativ:
A. Identity och Compute.
B. Windows Live och Bing.
C. ASP.NET och LINQ.
D. Compute, Storage, Networking och Identity..
(5p)
4
3. Svara med något av de angivna alternativen på följande frågor om användargränssnitt
på Windows Phone 7-baserade enheter.
(a) Metro är _____ ?
Alternativ:
A.
B.
C.
D.
Ett tillägg till Windows Phone 7 SDK.
Biblioteket för ”vanliga ”användargränssnitt på Windows Phone 7.
En synonym till Silverlight.
Namnet på den rekommenderade stilen för Windows Phone 7 applikationer.
(b) I Windows Phone 7 är XAML-kod _______ ?
Alternativ:
A.
B.
C.
D.
Det enda sättet att beskriva vilka element som ingår i ett användargränssnitt.
Ett sätt att beskriva vilka element som ingår i ett användargränssnitt.
Enbart ett sätt att beskriva hur elementen i användargränssnittet skall se ut.
Ett sätt att spara input från användaren.
(c) Under körning är användargränssnittets kontroller tillgängliga för
applikationsprogrammet som _____ ?
Alternativ:
A.
B.
C.
D.
XAML-kod.
Properties.
Objekt.
Inte alls.
(d) För att användas i en databindning (eng. data binding) måste datakällan ______ ?
Alternativ:
A.
B.
C.
D.
Vara ett objekt med properties.
Vara en Silverlight kontroll.
Implementera interface:t IDataSource<T>.
Implementera interface:t IChangeProperty.
(e) När enhetens orientering ändras så innebär det _____ för den aktiva
applikationen?
Alternativ:
A.
B.
C.
D.
Att applikationen kan behöva ändra kontrollernas layout.
Ingenting, eftersom systemet hanterar allt.
Att applikationen måste rotera sitt GUI.
Att applikationen måste skapa alla kontrollerna igen.
(5p)
5
4. Svara med något av de angivna alternativen på följande frågor om Android SDK.
(a) Android utvecklades utifrån en grundfilosofi baserad på ett antal principer. En av
dessa principer är öppenhet. Att android är öppet innebär ____.
Alternativ:
A. att Android inte skiljer mellan kärnapplikationer och tredje parts-applikationer.
B. att utvecklaren har möjlighet att fullt ut utnyttja allt som de mobila enheterna
har stöd för.
C. att utvecklaren kan kombinera information från t ex webben med data på en
individuell enhet.
D. att Android tillhandahåller en lång rad bibliotek och verktyg som underlättar
utvecklandet av rika appliaktioner.
(b) Ett Android program består av olika komponenter. Vilket av följande påstående är
korrekt?
Alternativ:
A. Android stödjer multitasking, vilket innebär att flera komponenters aktiviteter
kan visas samtidigt.
B. Komponenter körs isolerade från varandra och saknar möjlighet att utbyta
information.
C. En komponent kan bestå av en eller flera aktiviteter.
D. En app kan använda komponenter från andra appar.
(c) Vilket påstående är sant avseende en apps gränssnitt
Alternativ:
A. Gränssnittet måste definieras i XML-filer.
B. För att en aktivitet skall kunna visas så måste den definieras i
AndroidManifest.xml
C. Gränssnittet måste definieras i java-kod.
D. En aktivitet definieras alltid, oavsett vilken typ av Android-element som
skapats.
(d) Ett Intent är en klass i Android. Vilket påstående är sant avseende Intent?
Alternativ:
A. Ett Intent beskriver vad en applikation vill få gjort i en given situation.
B. Det finns endast en begränsad mängd möjliga Intents att välja bland.
C. Man måste alltid se till att själv implementera lösningar för de Intents man vill
använda.
D. Varje Intent som appen använder måste listas i AndroidManifest.xml.
(e) Man kan definiera tjänster i Android. Vilket påstående är sant avseende tjänster
(Service).
Alternativ:
A. Tjänster måste ha ett gränssnitt som gör det möjligt att interagera med
tjänsten.
B. En tjänst kan köras kontinuerligt i bakgrunden utan behov av ett eget
gränssnitt.
C. Alla tjänster har samma prioritet.
D. Tjänster skapas som speciella Androidprojekt och kan inte ha något
gränssnitt.
(5p)
6
5. Svara med något av de angivna alternativen på följande frågor om Android SDK och
NDK.
(a) En av de grundelement som finns i Android OS är Content Providers. Vilket
påstående är sant avseende Content Providers?
Alternativ:
A. En Content Provider kan endast hantera enkla datatyper.
B. Content Providers motsvarar en databas och kallas också för SQLite.
C. Content Providers kan användas för att göra det möjligt för flera appar att få
åtkomst till samma data.
D. Den data som hanteras av en Content Provider är alltid endast åtkomlig för
endast en app.
(b) Vilket av följande påståenden är sant avseende AndroidManifest.xml?
Alternativ:
A. AndroidManifest.xml skall endast skapas om det finns särskilda skäl för det.
B. AndroidManifest.xml definierar endast vilka aktiviteter som programmet har.
C. Det primära syftet med AndroidManifest.xml är att ange vilka rättigheter som
programmet kräver för att få köras.
D. AndroidManifest.xml definierar bland annat vilka komponenter som ett
programpaket innehåller.
(c) Vilket av följande påstående är sant avseende hur operativsystemet hanterar
aktiviteter?
Alternativ:
A. Alla tjänster, aktiviteter och recievers som körs hanteras i en prioritetskö som
ser till att gränssnittet hela tiden är responsivt.
B. Aktiviteter hanteras i en stack av operativsystemet.
C. Endast den aktuella aktiviteten finns inläst i minnet. Så fort en aktivitet förlorar
fokus så rensas den ur minnet.
D. Alla aktiviteter för aktuell app laddas in när appen startas.
(d) Grunden i Android är utvecklad i C/C++, eller s k native code. Det finns också
flera bibliotek som utvecklats i native code. Vilket påstående är sant avseende native
code och utveckling av Androidappar?
Alternativ:
A. Använder man C++ i sitt program kan man inte samtidigt använda java.
B. Det finns många olika sätt att brygga mellan C++ och java-koden när man
utvecklar för Android.
C. Java Native Interface (jni) måste användas för att flytta data mellan java och
C++.
D. Det finns en specialutvecklad lösning för att möjliggöra bryggningen mellan
C++ och java som kallas för Dalvik.
7
(e) Det finns en rad olika Androidversioner som distribueras via olika APIer. Vilket av
följande påståenden är sant avseende olika Androidversioner?
Alternativ:
A. Versionsnamnen ingår alla i samma rymdtema baserat på bokstavsordning.
B. Alla versionerna har haft samma grundstöd för samtliga typer av enheter som
Android används för.
C. Alla skarpa Androidversioner börjar med: siffra punkt noll (t ex 4.0x).
D. En av de viktigaste nyheterna i Android 4 var att den sammanförde så att en
och samma version kunde stödja både mobila enheter och läsplattor.
(5p)
8
6. Svara med något av de angivna alternativen på följande frågor om språket C++.
(a) En användbar konstruktion som finns i språket C# men saknas i språket C++ är
____ ?
Alternativ:
A.
B.
C.
D.
Referenser.
Multipelt arv (eng. Multiple inheritance).
Gränssnitt (eng. Interface).
Konstruktor (eng. Constructor).
(b) Tidsmässigt kan definitionen av språken i C-familjen ordnas enligt ____ ?
Alternativ:
A.
B.
C.
D.
C, C#, Java, C++.
C, C++, Java, C#.
C, Java, C++, C#.
C, C++, C#, Java.
(c) För att komma åt privata attribut i en viss klass inifrån definitionen av en annan
klass används ____?
Alternativ:
A.
B.
C.
D.
Går inte, man måste i så fall definiera attributet som protected.
Nyckelordet public.
Nyckelordet friend.
Genom att definiera en motsvarande egenskap (eng. Property).
(d) För att få kompilatorn att generera speciella versioner av en metod beroende på
argumentets aktuella typ (som kan vara valfri) används _____ ?
Alternativ:
A.
B.
C.
D.
Nyckelordet volatile.
Uttrycket void *.
Nyckelordet template.
Destruktorer (eng. destructor).
(e) Standard Template Library (STL) är _____ ?
Alternativ:
A. En del av standardbiblioteket (eng. Run-time library) för C++.
B. Ett tillägg till språket C++ som går att ladda ner fritt.
C. Ett tillägg till Microsoft Visual C++.
D. Ett länkbart bibliotek med trådsäkra (eng. Thread-safe) klasser.
(5p)
9
7. Svara med något av de angivna alternativen på följande frågor om Windows Phone 7baserade enheter.
(a) Applikationer som inte körs för tillfället i förgrunden, sätts av operativsystemet i
något av lägena ______?
Alternativ:
A.
B.
C.
D.
Sleeping eller Blocking.
Dormant eller Tombstone.
Waiting eller Pending.
Running eller Ready.
(b) Möjligheten att låta användaren köra flera applikationer samtidigt stöds via ____?
Alternativ:
A.
B.
C.
D.
Inte på något sätt alls.
Full multi-tasking capability.
Endast begränsat via background tasks.
Full multi-threading capability.
(c) Enheten för att kunna bestämma vilken riktning i rummet som den mobila enheten
befinner sig i, kallas för ____?
Alternativ:
A.
B.
C.
D.
Accelerator.
Sensors library.
Directional Unit.
Gyroscope.
(d) Filformatet som skall användas för att spela upp specifika ljudeffekter är _____ ?
Alternativ:
A.
B.
C.
D.
mp3.
divx
wav
wma
(e) Konceptet som används för att ett program skall kunna utföra uppgifter som kan
äventyra användares integritet eller säkerhet, kallas för _____?
Alternativ:
A. Launchers and Choosers.
B. Requesters and Guaranteers.
C. Identifiers and Validators.
D. Toasts and Notifications.
(5p)
10
8. Skapa ett nytt projekt av typen ”Phone Application - Silverlight” med språket C# i
Visual Studio.
Uppgiften går ut på att skapa ett användargränssnitt till en bibliotekskatalog.
Användargränssnittet skall bestå av en listvy som visar titel och författare för alla
böcker och en detaljvy visar detaljer om en bok enligt bildexempel nedan (det är inte
nödvändigt att följa layouten exakt, speciellt förbättringar är välkomna).
När en bok väljs i listvyn skall motsvarande detaljvy visas för boken. Om användaren
trycker på knappen close i detaljvyn eller back-tangenten skall applikationen återgå till
listvyn.
Gränssnittet använder ett färdigt logik- och datalager för att hämta information från en
lokal databas. DLLerna för detta datalager och databasenfilen själv måste läggas till i
ert projekt.
Filerna LibraryLogic.dll och LibraryLogicDB.dll skall läggas till som
referenser (Add Reference -> Browse).
11
Databasfilen BooksDB.sdf läggs till som content som kopieras till enheten
(default). Access till logiklagret sker helt via de abstrakta klasserna i LibraryLogic och
en instans av LibraryLogicDB.Library klassen.
(T.ex. LibraryLogic.Library library = new LibraryLogicDB.Library();
Library.TitleSearch(..) osv.)
Klasserna i LibraryLogic.dll har följande gränssnitt:
Användargränssnittet skall använda detta gränssnitt för att hämta informationen och
får inte gå direkt till databasen (eller databaslagret).
(5p)
12
9. Skapa ett nytt projekt av typen ”Android Project” med språket Java i Eclipse för
Android SDK. Ni skall använda Android 4.03.
Programmets syfte är att låta användaren ange en titel och ett meddelande och när man
klickar på knappen ”klar” skall programmet växla till en ny aktivitet som visar
textmeddelandet och titeln.
(5p)
13
10. Skapa ett nytt projekt av typen ”Windows Phone Game (4.0)” med språket C# och
ramverket XNA i Visual Studio.
Programmet skall hela tiden presentera ett valfritt grafiskt objekt, med en storlek på 32
gånger 32 pixlar. När användare pekar på en annan position på skärmen skall objektet
stegvis (med en hastighet av 30 pixlar per sekund) förflyttas till den valda positionen
och därefter stanna.
(5p)
14