Klicka på startknappen i den lilla mediespelaren ovan för att lyssna på lektionen. (Man kan behöva vänta en stund på att ljudfilen laddas ner.) Om mediespelaren inte syns, eller om det inte fungerar av något annat skäl, kan man klicka här för att ladda ner mp3-filen (ca 19 minuter, ca 9 megabyte). Beroende på hur webbläsaren är konfigurerad kan det kräva ett separat mp3-spelarprogram av något slag. Tänk på att lektionerna ger en översikt och introduktion. Du måste läsa i kursboken och arbeta med övningarna för att tillgodogöra dig kursen! Bild 1: W800i, en mobiltelefon med Java-stöd Samma bild som i lektion 1. Ingen pekskärm, men knappar och en liten styrspak. Bild 2: Välj spelet QuadraPop Bild 3: Java-logon När telefonens JVM (den virtuella Java-maskinen) startar, visas Java-logon. Bild 4: QuadraPop Själva spelet QuadraPop. Bild 5: Repetition av Java Java kompileras inte till körbar kod för någon viss processor eller något visst operativsystem, utan Java kompileras till kod, bytekod, för en "virtuell maskin" (JVM, Java Virtual Machine). Den virtuella maskinen finns för många olika operativsystem och många olika datorer. En enda version av källkoden, och ett enda körbart program. (Operativsystem och datortyp spelar inte längre så stor roll.) b Bild 6: Olika Java-editioner Tre olika "Java-spår": Java 2 Platform, Standard Edition (J2SE) - "vanliga skrivbordsdatorter" (inkl laptop-datorer) Java 2 Platform, Enterprise Edition (J2EE) - "servrar" Java 2 Platform, Micro Edition (J2ME) - "smådatorer" (t ex mobiltelefoner) Dessutom skiljer man på: SDK = Software Development Kit = JDK = Java Development Kit = J2ME Development Kit JRE = Java Runtime Environment = J2SE Runtime Environment Ett tillägg hösten 2006 (inte med på ljudspåret): Sun (som är företaget som gör Java) har slutat att prata om "Java 2" och "Java 2 Platform", utan säger numera bara "Java" och "Java Platform". Därför heter det inte längre Java 2 Platform, Micro Edition (J2ME), utan bara Java Platform, Micro Edition (Java ME). Det märks till exempel på att de flyttat sin J2ME-webbplats från http://java.sun.com/j2me/ till http://java.sun.com/javame/. Tänk i fortsättningen på att när det står "Java 2" i kursen, så heter det numera bara "Java". Bild 7: "Konfigurationer" och "profiler" i J2ME J2ME är samlingsnamnet för olika Java-byggklossar gjorda för maskiner med begränsad kapacitet. En J2ME-implementation består av en konfiguration, en eller flera profiler samt tilläggs-API:er. (API: Application Programming Interface, tillämpningsprogrammeringsgränssnitt - klasser, metoder mm som ett tillämpningsprogram kan använda sig av för att komma åt till exempel operativsystemets olika funktioner.) Figur 1-1 på s 2 i kursboken. Konfigurationer: CLDC = Connected Limited Device Configuration CDC = Connected Device Configuration Profiler: MIDP = Mobile Information Device Profile "Bild" 8: Konfigurationer Om konfigurationer: Bestämmer vilken JVM som används samt ett antal grundläggande API:er Bestämmer oftast minsta tillgängliga mängden minne (både ROM och RAM) Det finns för tillfället två konfigurationer, CDC och CLDC CDC = Connected Device Configuration Minimum 512 KB ROM och 256 KB RAM Någon form av nätverksuppkoppling Hemsida: http://java.sun.com/products/cdc/ CLDC = Connected Limited Device Configuration Minimum 160 KB ROM och 32 KB RAM Någon form av nätverksuppkoppling som förmodligen är hemskt begränsad och långsam Hemsida: http://java.sun.com/products/cldc/ "Bild" 9: Profiler Om profiler: Bestämmer en ganska stor samling av API:er som är nödvändiga för att utveckla program Det finns en massa olika profiler. Några kan kombineras och andra inte. På mobiltelefoner är MIDP, Mobile Information Device Profile, den vanligaste MIDP finns i två varianter, 1.0 och 2.0. 3.0 är på gång. "Bild" 10: Tilläggs-API:er Eftersom inte alla telefoner har alla funktioner ligger saker som exempelvis Bluetooth i ett tilläggs-API istället för i profilen eller konfigurationen Alla tilläggs-API:er finns beskrivna på http://jcp.org/en/jsr/all Exempel: JSR 82, Java APIs for Bluetooth "Bild" 11: Fragmentering "Write once, run anywhere" stämde inte för skrivbordsdator-Java, och är inte 100% sant på mobiltelefoner heller p.g.a. buggar i tillverkarnas implementationer. Vissa tillverkare kan ha en speciell bugg i många av sina enheter. Exempelvis hade Nokia problem med alignment när man renderade bilder (dvs ritade upp på skärmen) en gång i tiden. Eftersom MIDP inte stödjer alla funktioner i en telefon och det tar tid att få igenom en JSR . Det händer det ofta att tillverkare lägger in egna packages för att ge tillgång till enhetsspecifika funktioner. "Bild" 12 (nyinsatt): MIDP version 1.0 och 2.0 Kan man göra ett spel som QuadraPop med det som står i boken, eller behöver man mer API:er och kanske verktyg? Spel som QuadraPop kan man göra helt och hållet med MIDP 2.0, som tas upp i boken, eftersom MIDP 2.0 har stöd för fullskärm och ett nytt multimediabibliotek för att spela upp ljud och musik. I MIDP 1.0 fanns varken stöd för ljud eller fullskärm, så varje tillverkare hade egna metoder för att åstadkomma det som saknades. Därför blev man tvungen att använda tillverkarspecifika API:er. Vill man sikta in sig på den stora marknaden som fortfarande använder MIDP 1.0, främst om man gör spel, får man läsa på saker som inte står i boken. Läsanvisningar Den här lektionen motsvaras av kapitel 1, Introduction, i kursboken. Läs kapitlet översiktligt som bakgrund. Några frågor som kan användas som instuderingsfrågor: Vad är J2ME? Vad är en konfiguration? Vad bestäms av konfigurationen? Vilka konfigurationer finns det? Beskriv dem kort! Vad är en profil? Vad bestäms av profilen? Vilka profiler finns det? Beskriv dem kort! Vad menas med en stack? Vad är en JSR? Vilka fördelar är det man får med MIDP, jämfört med att till exempel programmera i C++ mot ett särskilt API för varje mobiltelefonmodell eller tillverkare? (Ledtrådar: portabilitet, säkerhet) Vad innebär, i MIDP-sammanhanget, en denial-of-service-attack? Nämn några tillverkare av mobiltelefoner som stöder MIDP. Vad gör man för att motverka fragmentering? Om du vill skriva svar på instuderingsfrågorna, räcker det för de flesta frågorna med en eller några få meningar. Programmeringsövningar Det finns inga programmeringsövningar till den här lektionen. Föregående lektion | Lektionslista | Nästa lektion Thomas Padron-McCarthy (Thomas.Padron-McCarthy@tech.oru.se), 22 augusti 2006 Den här lektionen är utvecklad av Thomas Padron-McCarthy i samarbete med Magnus Runesson
Klicka på startknappen i den lilla mediespelaren ovan för att lyssna på lektionen. (Man kan behöva vänta en stund på att ljudfilen laddas ner.) Om mediespelaren inte syns, eller om det inte fungerar av något annat skäl, kan man klicka här för att ladda ner mp3-filen (ca 19 minuter, ca 9 megabyte). Beroende på hur webbläsaren är konfigurerad kan det kräva ett separat mp3-spelarprogram av något slag.
En enda version av källkoden, och ett enda körbart program. (Operativsystem och datortyp spelar inte längre så stor roll.)
b
Sun (som är företaget som gör Java) har slutat att prata om "Java 2" och "Java 2 Platform", utan säger numera bara "Java" och "Java Platform". Därför heter det inte längre Java 2 Platform, Micro Edition (J2ME), utan bara Java Platform, Micro Edition (Java ME). Det märks till exempel på att de flyttat sin J2ME-webbplats från http://java.sun.com/j2me/ till http://java.sun.com/javame/.
Tänk i fortsättningen på att när det står "Java 2" i kursen, så heter det numera bara "Java".
(API: Application Programming Interface, tillämpningsprogrammeringsgränssnitt - klasser, metoder mm som ett tillämpningsprogram kan använda sig av för att komma åt till exempel operativsystemets olika funktioner.)
Figur 1-1 på s 2 i kursboken. Konfigurationer:
Några frågor som kan användas som instuderingsfrågor:
Föregående lektion | Lektionslista | Nästa lektion