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.
Continuous Delivery w projekcie Open Source - Marcin Stachniuk - DevCrowd 2017
01 Wprowadzenie do j2me
1. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Wprowadzenie do J2ME
Marcin Stachniuk
mstachniuk@gmail.com
Politechnika Wrocławska
Wydział Elektroniki
Studenckie Koło Naukowe Informatyki Systemów Autonomicznych
i Adaptacyjnych ISA2
29 października 2009
Marcin Stachniuk Wprowadzenie do J2ME 1/50
2. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Plan prezentacji
1 Wprowadzenie
2 Pierwszy kod
3 Jakie środowisko?
NetBeans
Eclipse
4 Uruchomienie aplikacji
5 Podsumowanie
Marcin Stachniuk Wprowadzenie do J2ME 2/50
3. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Plan prezentacji
1 Wprowadzenie
2 Pierwszy kod
3 Jakie środowisko?
NetBeans
Eclipse
4 Uruchomienie aplikacji
5 Podsumowanie
Marcin Stachniuk Wprowadzenie do J2ME 3/50
4. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Mobile Information Device Profile cz. 2
MIDP 2.1
poprawiona wersja 2.0
MIDP 3.0
LIBlety
uruchamianie wielu midletów
bezpieczeństwo
Marcin Stachniuk Wprowadzenie do J2ME 8/50
11. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Mobile Information Device Profile cz. 2
MIDP 2.1
poprawiona wersja 2.0
MIDP 3.0
LIBlety
uruchamianie wielu midletów
bezpieczeństwo
Marcin Stachniuk Wprowadzenie do J2ME 8/50
12. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Plan prezentacji
1 Wprowadzenie
2 Pierwszy kod
3 Jakie środowisko?
NetBeans
Eclipse
4 Uruchomienie aplikacji
5 Podsumowanie
Marcin Stachniuk Wprowadzenie do J2ME 9/50
13. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
C++ I
1 #include <iostream>
2
3 using namespace std;
4
5 int main(int argc, char **argv)
6 {
7 cout << ’’Hello World’’ << endl;
8 }
Marcin Stachniuk Wprowadzenie do J2ME 10/50
14. 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
15. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Java ME I
1 import javax.microedition.midlet.*;
2
3 public class MyMidlet extends MIDlet {
4 public void startApp() {
5 }
6
7 public void pauseApp() {
8 }
9
10 public void destroyApp(boolean unconditional) {
11 }
12 }
Marcin Stachniuk Wprowadzenie do J2ME 12/50
16. 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
17. 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.*;
3
4 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 }
12
13 public void pauseApp() {
14 }
15
16 public void destroyApp(boolean unconditional) {
17 }
18 }
Marcin Stachniuk Wprowadzenie do J2ME 14/50
18. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Listing 1 w działaniu
Marcin Stachniuk Wprowadzenie do J2ME 15/50
19. 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.*;
3
4 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 }
15
16 public void pauseApp() {
17 }
18
Marcin Stachniuk Wprowadzenie do J2ME 16/50
20. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Java ME II
19 public void destroyApp(boolean unconditional) {
20 }
21
22 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
21. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Listing 2 w działaniu
Marcin Stachniuk Wprowadzenie do J2ME 18/50
22. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Plan prezentacji
1 Wprowadzenie
2 Pierwszy kod
3 Jakie środowisko?
NetBeans
Eclipse
4 Uruchomienie aplikacji
5 Podsumowanie
Marcin Stachniuk Wprowadzenie do J2ME 19/50
23. 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
24. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans 6.7.1
Marcin Stachniuk Wprowadzenie do J2ME 21/50
25. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans download
Marcin Stachniuk Wprowadzenie do J2ME 22/50
26. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans Nowy Projekt
Marcin Stachniuk Wprowadzenie do J2ME 23/50
27. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans Nazwa Projektu
Marcin Stachniuk Wprowadzenie do J2ME 24/50
28. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans Wybranie Platformy
Marcin Stachniuk Wprowadzenie do J2ME 25/50
29. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans Finish
Marcin Stachniuk Wprowadzenie do J2ME 26/50
30. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans Utworzony Midlet
Marcin Stachniuk Wprowadzenie do J2ME 27/50
31. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
NetBeans Uruchomienie MIDletu
Marcin Stachniuk Wprowadzenie do J2ME 28/50
32. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse
Marcin Stachniuk Wprowadzenie do J2ME 29/50
33. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse download
Marcin Stachniuk Wprowadzenie do J2ME 30/50
34. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Nowy Projekt
Marcin Stachniuk Wprowadzenie do J2ME 31/50
35. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Nazwa Projektu
Marcin Stachniuk Wprowadzenie do J2ME 32/50
36. 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
37. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Ustawienia Projektu
Marcin Stachniuk Wprowadzenie do J2ME 34/50
38. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Dodanie Nowego Midletu
Marcin Stachniuk Wprowadzenie do J2ME 35/50
39. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Nazwa Nowego Midletu
Marcin Stachniuk Wprowadzenie do J2ME 36/50
40. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Tworzenie Midletu koniec
Marcin Stachniuk Wprowadzenie do J2ME 37/50
41. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Utworzony Midlet
Marcin Stachniuk Wprowadzenie do J2ME 38/50
42. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Eclipse Uruchomienie Midletu
Marcin Stachniuk Wprowadzenie do J2ME 39/50
43. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Plan prezentacji
1 Wprowadzenie
2 Pierwszy kod
3 Jakie środowisko?
NetBeans
Eclipse
4 Uruchomienie aplikacji
5 Podsumowanie
Marcin Stachniuk Wprowadzenie do J2ME 40/50
44. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
JAD i JAR
Marcin Stachniuk Wprowadzenie do J2ME 41/50
45. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Zawartość JAD
MIDlet-1: Midlet, , Midlet
MIDlet-Jar-Size: 1035
MIDlet-Jar-URL: MobileApplication1.jar
MIDlet-Name: MobileApplication1
MIDlet-Vendor: Vendor
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
Marcin Stachniuk Wprowadzenie do J2ME 42/50
46. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Zawartość JAR
Marcin Stachniuk Wprowadzenie do J2ME 43/50
47. 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
48. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Zawartość JAD - zmodyfikowana
MIDlet-1: Midlet, , Midlet
MIDlet-Jar-Size: 1035
MIDlet-Jar-URL: http://myserwer.com/MobileApplication1.jar
MIDlet-Name: MobileApplication1
MIDlet-Vendor: Vendor
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
Marcin Stachniuk Wprowadzenie do J2ME 45/50
49. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Plan prezentacji
1 Wprowadzenie
2 Pierwszy kod
3 Jakie środowisko?
NetBeans
Eclipse
4 Uruchomienie aplikacji
5 Podsumowanie
Marcin Stachniuk Wprowadzenie do J2ME 46/50
50. 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
51. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Pytania
?
Marcin Stachniuk Wprowadzenie do J2ME 48/50
52. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Kolejne spotkanie
Temat: Dostęp do GUI niskiego poziomu
Prowadzenie: Marcin Stachniuk
Data: 5.11.2009 17.00
Gdzie: sala 23 C-3
Marcin Stachniuk Wprowadzenie do J2ME 49/50
53. Studenkie Koło Naukowe ISA2 Warsztaty programistyczne J2ME 29 października 2009
Więcej informacji
Kontakt z autorem:
mstachniuk@gmail.com
Strona koła naukowego ISA2
http://autonom.ict.pwr.wroc.pl/
Strona warsztatów:
http://autonom.ict.pwr.wroc.pl/∼mstachniuk
Adres tego dokumentu:
http://autonom.ict.pwr.wroc.pl/∼mstachniuk/files/warsztaty2009/02-podstawy-2009.10.29.pdf
NetBeans
http://www.netbeans.org/
Eclipse
http://www.eclipse.org/
Java ME Platform Overview
http://java.sun.com/javame/technology/index.jsp
Managing the MIDlet Life-Cycle with a Finite State Machine
http://developers.sun.com/mobility/midp/articles/fsm/
Java Platform Micro Edition Software Development Kit 3.0
http://java.sun.com/javame/downloads/sdk30.jsp
Marcin Stachniuk Wprowadzenie do J2ME 50/50