01 Wprowadzenie do j2me

53
Studenkie Kolo Naukowe ISA 2 Warsztaty programistyczne J2ME 29 października 2009 Wprowadzenie do J2ME Marcin Stachniuk [email protected] Politechnika Wroclawska Wydzial Elektroniki Studenckie Kolo Naukowe Informatyki Systemów Autonomicznych i Adaptacyjnych ISA 2 29 października 2009 Marcin Stachniuk Wprowadzenie do J2ME 1/50

description

Prezentacja wprowadzająca do podstaw programowania urządzeń mobilnych w j2me. Przygotowana i wygłoszona przez Marcina Stachniuka 29.10.2009. Prezentacja wygłoszona w ramach Warsztatów programowania telefonów komórkowych w j2me przy Studenckim Kole Naukowym Informatyki Systemów Autonomicznych i Adaptacyjnych ISA^2.

Transcript of 01 Wprowadzenie do j2me

Page 1: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Wprowadzenie do J2ME

Marcin [email protected]

Politechnika WrocławskaWydział Elektroniki

Studenckie Koło Naukowe Informatyki Systemów Autonomicznychi Adaptacyjnych ISA2

29 października 2009

Marcin Stachniuk Wprowadzenie do J2ME 1/50

Page 2: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Plan prezentacji

1 Wprowadzenie

2 Pierwszy kod

3 Jakie środowisko?NetBeansEclipse

4 Uruchomienie aplikacji

5 Podsumowanie

Marcin Stachniuk Wprowadzenie do J2ME 2/50

Page 3: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Plan prezentacji

1 Wprowadzenie

2 Pierwszy kod

3 Jakie środowisko?NetBeansEclipse

4 Uruchomienie aplikacji

5 Podsumowanie

Marcin Stachniuk Wprowadzenie do J2ME 3/50

Page 4: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

The Java Platform

http://java.sun.com/javame/technology/index.jsp

Marcin Stachniuk Wprowadzenie do J2ME 4/50

Page 5: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

The Connected Limited Device Configuration

http://java.sun.com/javame/technology/index.jsp

Marcin Stachniuk Wprowadzenie do J2ME 5/50

Page 6: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

CLDC 1.0 vs CLDC 1.1

CLDC 1.0

”odchudzona” java 1.3

pakiety: java.io, java.lang, java.util

brak obsługi liczb zmiennoprzecinkowych

CLDC 1.1 (JSR-139)

obsługa liczb zmiennoprzecinkowych

klasy Double i Float

rozszerzona klasa Thread

Marcin Stachniuk Wprowadzenie do J2ME 6/50

Page 7: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

CLDC 1.0 vs CLDC 1.1

CLDC 1.0

”odchudzona” java 1.3

pakiety: java.io, java.lang, java.util

brak obsługi liczb zmiennoprzecinkowych

CLDC 1.1 (JSR-139)

obsługa liczb zmiennoprzecinkowych

klasy Double i Float

rozszerzona klasa Thread

Marcin Stachniuk Wprowadzenie do J2ME 6/50

Page 8: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Mobile Information Device Profile cz. 1

MIDP 1.0

http

GUI

RMS Record Management Store

MIDP 2.0

https

Mobile Media API (MMAPI)

The Game API (Sprite, TiledLayer)

Obrazy RGB

Full Screen Mode

Marcin Stachniuk Wprowadzenie do J2ME 7/50

Page 9: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Mobile Information Device Profile cz. 1

MIDP 1.0

http

GUI

RMS Record Management Store

MIDP 2.0

https

Mobile Media API (MMAPI)

The Game API (Sprite, TiledLayer)

Obrazy RGB

Full Screen Mode

Marcin Stachniuk Wprowadzenie do J2ME 7/50

Page 10: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Mobile Information Device Profile cz. 2

MIDP 2.1poprawiona wersja 2.0

MIDP 3.0

LIBlety

uruchamianie wielu midletów

bezpieczeństwo

Marcin Stachniuk Wprowadzenie do J2ME 8/50

Page 11: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Mobile Information Device Profile cz. 2

MIDP 2.1poprawiona wersja 2.0

MIDP 3.0

LIBlety

uruchamianie wielu midletów

bezpieczeństwo

Marcin Stachniuk Wprowadzenie do J2ME 8/50

Page 12: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Plan prezentacji

1 Wprowadzenie

2 Pierwszy kod

3 Jakie środowisko?NetBeansEclipse

4 Uruchomienie aplikacji

5 Podsumowanie

Marcin Stachniuk Wprowadzenie do J2ME 9/50

Page 13: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

C++ I

1 #include <iostream>23 using namespace std;45 int main(int argc, char **argv)6 {7 cout << ’’Hello World’’ << endl;8 }

Marcin Stachniuk Wprowadzenie do J2ME 10/50

Page 14: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Java SE I

1 public class Main {2 public static void main(String [] args) {3 System.out.println(’’Hello World’’);4 }5 }

Marcin Stachniuk Wprowadzenie do J2ME 11/50

Page 15: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Java ME I

1 import javax.microedition.midlet.*;23 public class MyMidlet extends MIDlet {4 public void startApp() {5 }67 public void pauseApp() {8 }9

10 public void destroyApp(boolean unconditional) {11 }12 }

Marcin Stachniuk Wprowadzenie do J2ME 12/50

Page 16: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Cykl życia aplikacji I

http://developers.sun.com/mobility/midp/articles/fsm/

Marcin Stachniuk Wprowadzenie do J2ME 13/50

Page 17: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Java ME I

Listing 1.

1 import javax.microedition.lcdui.*;2 import javax.microedition.midlet.*;34 public class Midlet extends MIDlet {5 public void startApp() {6 TextBox textBox = new TextBox(’’Moj Pierwszy Midlet’’,7 ’’Hello World!’’, 20, 0);8 Display display = Display.getDisplay(this);9 display.setCurrent(textBox);

10 System.out.println(’’Hello World!’’);11 }1213 public void pauseApp() {14 }1516 public void destroyApp(boolean unconditional) {17 }18 }

Marcin Stachniuk Wprowadzenie do J2ME 14/50

Page 18: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Listing 1 w działaniu

Marcin Stachniuk Wprowadzenie do J2ME 15/50

Page 19: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Java ME I

Listing 2.

1 import javax.microedition.lcdui.*;2 import javax.microedition.midlet.*;34 public class Midlet extends MIDlet implements CommandListener {5 public void startApp() {6 TextBox textBox = new TextBox(’’Moj Pierwszy Midlet’’,7 ’’Hello World!’’, 20, 0);8 Command exitCommand = new Command(’’Koniec’’, Command.EXIT, 1);9 textBox.setCommandListener(this);

10 textBox.addCommand(exitCommand);11 Display display = Display.getDisplay(this);12 display.setCurrent(textBox);13 System.out.println(’’Hello World!’’);14 }1516 public void pauseApp() {17 }18

Marcin Stachniuk Wprowadzenie do J2ME 16/50

Page 20: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Java ME II

19 public void destroyApp(boolean unconditional) {20 }2122 public void commandAction(Command c, Displayable d) {23 if (c.getCommandType() == Command.EXIT) {24 destroyApp(false);25 notifyDestroyed();26 }27 }28 }

Marcin Stachniuk Wprowadzenie do J2ME 17/50

Page 21: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Listing 2 w działaniu

Marcin Stachniuk Wprowadzenie do J2ME 18/50

Page 22: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Plan prezentacji

1 Wprowadzenie

2 Pierwszy kod

3 Jakie środowisko?NetBeansEclipse

4 Uruchomienie aplikacji

5 Podsumowanie

Marcin Stachniuk Wprowadzenie do J2ME 19/50

Page 23: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Integrated Development Environment - IDE

Podstawowe środowisko:

Java Platform Micro Edition Software Development Kit 3.0

Najpopularniejsze środowiska:

NetBeans

Eclipse

IntelliJ IDEA

Vi / Vim ;)

Marcin Stachniuk Wprowadzenie do J2ME 20/50

Page 24: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans 6.7.1

Marcin Stachniuk Wprowadzenie do J2ME 21/50

Page 25: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans download

Marcin Stachniuk Wprowadzenie do J2ME 22/50

Page 26: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans Nowy Projekt

Marcin Stachniuk Wprowadzenie do J2ME 23/50

Page 27: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans Nazwa Projektu

Marcin Stachniuk Wprowadzenie do J2ME 24/50

Page 28: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans Wybranie Platformy

Marcin Stachniuk Wprowadzenie do J2ME 25/50

Page 29: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans Finish

Marcin Stachniuk Wprowadzenie do J2ME 26/50

Page 30: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans Utworzony Midlet

Marcin Stachniuk Wprowadzenie do J2ME 27/50

Page 31: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

NetBeans Uruchomienie MIDletu

Marcin Stachniuk Wprowadzenie do J2ME 28/50

Page 32: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse

Marcin Stachniuk Wprowadzenie do J2ME 29/50

Page 33: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse download

Marcin Stachniuk Wprowadzenie do J2ME 30/50

Page 34: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Nowy Projekt

Marcin Stachniuk Wprowadzenie do J2ME 31/50

Page 35: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Nazwa Projektu

Marcin Stachniuk Wprowadzenie do J2ME 32/50

Page 36: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Właściwości Projektu

Marcin Stachniuk Wprowadzenie do J2ME 33/50

Page 37: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Ustawienia Projektu

Marcin Stachniuk Wprowadzenie do J2ME 34/50

Page 38: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Dodanie Nowego Midletu

Marcin Stachniuk Wprowadzenie do J2ME 35/50

Page 39: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Nazwa Nowego Midletu

Marcin Stachniuk Wprowadzenie do J2ME 36/50

Page 40: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Tworzenie Midletu koniec

Marcin Stachniuk Wprowadzenie do J2ME 37/50

Page 41: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Utworzony Midlet

Marcin Stachniuk Wprowadzenie do J2ME 38/50

Page 42: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Eclipse Uruchomienie Midletu

Marcin Stachniuk Wprowadzenie do J2ME 39/50

Page 43: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Plan prezentacji

1 Wprowadzenie

2 Pierwszy kod

3 Jakie środowisko?NetBeansEclipse

4 Uruchomienie aplikacji

5 Podsumowanie

Marcin Stachniuk Wprowadzenie do J2ME 40/50

Page 44: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

JAD i JAR

Marcin Stachniuk Wprowadzenie do J2ME 41/50

Page 45: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Zawartość JAD

MIDlet-1: Midlet, , MidletMIDlet-Jar-Size: 1035MIDlet-Jar-URL: MobileApplication1.jarMIDlet-Name: MobileApplication1MIDlet-Vendor: VendorMIDlet-Version: 1.0MicroEdition-Configuration: CLDC-1.1MicroEdition-Profile: MIDP-2.0

Marcin Stachniuk Wprowadzenie do J2ME 42/50

Page 46: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Zawartość JAR

Marcin Stachniuk Wprowadzenie do J2ME 43/50

Page 47: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Przesłanie Aplikacji

Rysunek by Michał Walczak

Marcin Stachniuk Wprowadzenie do J2ME 44/50

Page 48: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Zawartość JAD - zmodyfikowana

MIDlet-1: Midlet, , MidletMIDlet-Jar-Size: 1035MIDlet-Jar-URL: http://myserwer.com/MobileApplication1.jarMIDlet-Name: MobileApplication1MIDlet-Vendor: VendorMIDlet-Version: 1.0MicroEdition-Configuration: CLDC-1.1MicroEdition-Profile: MIDP-2.0

Marcin Stachniuk Wprowadzenie do J2ME 45/50

Page 49: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Plan prezentacji

1 Wprowadzenie

2 Pierwszy kod

3 Jakie środowisko?NetBeansEclipse

4 Uruchomienie aplikacji

5 Podsumowanie

Marcin Stachniuk Wprowadzenie do J2ME 46/50

Page 50: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Czego się dzisiaj nauczyliśmy?

Konfiguracje CLDC 1.0 i 1.1

Profile MIDP 1.0 2.0 2.1 3.0

Budowa programu, cykl życia aplikacji

Środowiska IDE

Uruchomienie Aplikacji

Marcin Stachniuk Wprowadzenie do J2ME 47/50

Page 51: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Pytania

?

Marcin Stachniuk Wprowadzenie do J2ME 48/50

Page 52: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Kolejne spotkanie

Temat: Dostęp do GUI niskiego poziomuProwadzenie: Marcin StachniukData: 5.11.2009 17.00Gdzie: sala 23 C-3

Marcin Stachniuk Wprowadzenie do J2ME 49/50

Page 53: 01 Wprowadzenie do j2me

Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009

Więcej informacji

Kontakt z autorem:[email protected] koła naukowego ISA2

http://autonom.ict.pwr.wroc.pl/Strona warsztatów:http://autonom.ict.pwr.wroc.pl/∼mstachniukAdres tego dokumentu:http://autonom.ict.pwr.wroc.pl/∼mstachniuk/files/warsztaty2009/02-podstawy-2009.10.29.pdfNetBeanshttp://www.netbeans.org/Eclipsehttp://www.eclipse.org/Java ME Platform Overviewhttp://java.sun.com/javame/technology/index.jspManaging the MIDlet Life-Cycle with a Finite State Machinehttp://developers.sun.com/mobility/midp/articles/fsm/Java Platform Micro Edition Software Development Kit 3.0http://java.sun.com/javame/downloads/sdk30.jsp

Marcin Stachniuk Wprowadzenie do J2ME 50/50