Örebro universitet
Institutionen för teknik
Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se)




Tentamen i

Mobiltelefonapplikationer med J2ME

(distanskurs)

tisdag 22 augusti 2006 kl 8:00 - 13:00 i L001





Hjälpmedel: Vilket tryckt eller skrivet material som helst, bara det är på papper: böcker, utskrifter, egna anteckningar. Inga datorer. Som alternativ till ordbok, om man behöver en sån, kan man dock använda en så kallad "C-pen", som är ett elektroniskt lexikon i form av en penna.
 
Poängkrav: Maximal poäng är 30.
För betyget G krävs 15 poäng.
För betyget VG krävs 22 poäng.
 
Kursplaner: Den här tentan gäller både för den gamla kursplanen (utan obligatoriska inlämningsuppgifter) och den nya (med obligatoriska inlämningsuppgifter).
 
Resultat och lösningar: Meddelas på kursens hemsida senast tisdag 5 september 2006.
Visning och frågestund: Onsdag 6 september 2006 kl 12:00-12:30 i mitt rum (T2220).
Efter visningen kan tentorna hämtas på expeditionen.
 
Examinator och jourhavande: Thomas Padron-McCarthy, telefon 070-7347013.



LYCKA TILL!

Uppgift 1 (20 p)

Vi ska skapa en MIDlet som fungerar ungefär som programmet Anteckningar (eller Notepad, som det heter på engelska) i Windows, dvs en enkel texteditor som kan öppna, skapa, redigera och spara textfiler.

Vi simulerar textfilerna med hjälp av poster i ett MIDP-postlager (på engelska record store).

När man startar applikationen ska den visa en tom textruta (av klassen TextBox):

Anteckningsprogrammet har just startats

Man kan börja skriva direkt i textrutan, eller så kan man ge ett av de kommandon som finns: Avsluta, Spara, Öppna och Skapa:

Kommandon i textrutan

Avsluta-kommandot ska förstås avsluta programmet.

Skapa-kommandot ska skapa en ny anteckning, vilket egentligen bara betyder att programmet tömmer textrutan, så at man kan skriva in ny text. (Man får välja filnamn sen i spara-dialogen.)

Spara-kommandot ska öppna en spara-dialog, som gör det möjligt att skriva in ett filnamn och spara anteckningen med det namnet. I spara-dialogen ska det finnas två kommandon: Spara och Ångra.

Spar-dialogen

Öppna-kommandot ska öppna en öppna-dialog, som gör det möjligt att välja vilken (simulerad) fil man vill öppna. Den består av en lista med de (simulerade) filer som finns i postlagret. I öppna-dialogen ska det finnas två kommandon: Öppna och Ångra.

Öppna-dialogen

Skriv denna MIDlet. Skriv alltså hela Java-filen med den eller de klassdefinitioner som behövs.

För full poäng ska även de fel som kan uppstå hanteras, och felmeddelanden ska visas med en Alert-ruta.

Det behöver inte se ut exakt som på bilderna ovan.

Uppgift 2 (3 p)

I uppgift 1 ska vi simulera ett filsystem med hjälp av ett MIDP-postlager. Förmodligen är det enklaste sättet att lagra varje fil som en post, och låta den posten innehålla både filnamnet och filens innehåll.

Man kan slå ihop filnamnet och filens innehåll till en sträng, uppdelade med något specialtecken, till exempel kolon. Alternativt kan man i stället använda sig av strömklasser ur java.io för att skapa en byte-array av de två strängarna.

Vilka fördelar och nackdelar finns med de två sätten?

Uppgift 3 (3 p)

Man brukar tala om fragmentering, vilket betyder att olika tillverkares Java-implementationer skiljer sig åt. Det kan gälla designval, extra finesser eller rena buggar.

Vilka problem innebär fragmentering för utvecklare och användare, och vad kan man höra åt dem?

Uppgift 4 (2 p)

I J2ME, dvs Java för mobila enheter, talar man om obfuskering. Varför använder man inte (i samma utsträckning i alla fall) obfuskering i vanliga skrivbords-Java (J2SE)?

Uppgift 5 (2 p)

Klassen TextBox i MIDP är en textredigeringsruta som är ett eget "fönster" (en Displayable). Man kan få ungefär samma funktion genom att lägga ett TextField på en Form.

Varför tror du att man valt att ändå ha en särskild TextBox-klass?