01 Wprowadzenie do j2me

Post on 26-Jun-2015

259 views 4 download

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

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

Wprowadzenie do J2ME

Marcin Stachniukmstachniuk@gmail.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Listing 1 w działaniu

Marcin Stachniuk Wprowadzenie do J2ME 15/50

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

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

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

Listing 2 w działaniu

Marcin Stachniuk Wprowadzenie do J2ME 18/50

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

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

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

NetBeans 6.7.1

Marcin Stachniuk Wprowadzenie do J2ME 21/50

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

NetBeans download

Marcin Stachniuk Wprowadzenie do J2ME 22/50

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

NetBeans Nowy Projekt

Marcin Stachniuk Wprowadzenie do J2ME 23/50

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

NetBeans Nazwa Projektu

Marcin Stachniuk Wprowadzenie do J2ME 24/50

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

NetBeans Wybranie Platformy

Marcin Stachniuk Wprowadzenie do J2ME 25/50

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

NetBeans Finish

Marcin Stachniuk Wprowadzenie do J2ME 26/50

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

NetBeans Utworzony Midlet

Marcin Stachniuk Wprowadzenie do J2ME 27/50

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

NetBeans Uruchomienie MIDletu

Marcin Stachniuk Wprowadzenie do J2ME 28/50

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

Eclipse

Marcin Stachniuk Wprowadzenie do J2ME 29/50

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

Eclipse download

Marcin Stachniuk Wprowadzenie do J2ME 30/50

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

Eclipse Nowy Projekt

Marcin Stachniuk Wprowadzenie do J2ME 31/50

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

Eclipse Nazwa Projektu

Marcin Stachniuk Wprowadzenie do J2ME 32/50

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

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

Eclipse Ustawienia Projektu

Marcin Stachniuk Wprowadzenie do J2ME 34/50

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

Eclipse Dodanie Nowego Midletu

Marcin Stachniuk Wprowadzenie do J2ME 35/50

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

Eclipse Nazwa Nowego Midletu

Marcin Stachniuk Wprowadzenie do J2ME 36/50

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

Eclipse Tworzenie Midletu koniec

Marcin Stachniuk Wprowadzenie do J2ME 37/50

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

Eclipse Utworzony Midlet

Marcin Stachniuk Wprowadzenie do J2ME 38/50

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

Eclipse Uruchomienie Midletu

Marcin Stachniuk Wprowadzenie do J2ME 39/50

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

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

JAD i JAR

Marcin Stachniuk Wprowadzenie do J2ME 41/50

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

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

Zawartość JAR

Marcin Stachniuk Wprowadzenie do J2ME 43/50

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

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

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

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

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

Pytania

?

Marcin Stachniuk Wprowadzenie do J2ME 48/50

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

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

Więcej informacji

Kontakt z autorem:mstachniuk@gmail.comStrona 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