Wprowadzenie do J2ME

Podobne dokumenty
Programowanie aplikacji na urządzenia mobilne

Java Platform Micro Edition

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1

Autor : Mateusz Kupczyk

M-biznes: Mobile Business. Realizacja aplikacji mobilnych w języku Java. Typy urządzeń przenośnych. Przykłady zastosowań

Agata Gałecka, Martyna Sikorska, Tomasz Cebula. 28 kwietnia 2009

ZAPOZNANIE SIĘ Z TWORZENIEM

I2: J2ME programowanie w NetBeans IDE Wydział Transportu PW semestr /11

JDK 7u25 NetBeans Zajęcia 1 strona - 1

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Programowanie w języku Java

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2

Programowanie urządzeń mobilnych na platformie Java ME

public void startapp() { } public void pauseapp() { } public void destroyapp(boolean unconditional) { }

J2ME Część II. P.J.Podsiadły

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 3

Ż Ę ć Ć ć ć Ą

ć ć Ę ż Ą ż ż Ź ć Ę Ą ż Ą ć ż ć ć ż ż ć Ę ż ż ć ż ć

Laboratorium z informatyki sem. III/ćw.11 Wydział Transportu PW 2017/18

ź ć

ć ę ę ć ę Ś ę Ń ę ź ę ę ę Ś ę ę ę Ó Ł Ł Ę Ą ę

ń ż ń ń Ą ń ż ż ń ż ż ż Ż ń Ą ń

ź Ł Ą Ż Ń Ń Ś Ń ć

ź Ż Ż Ś ć ć Ł ż Ż Ż Ż Ż Ł Ż Ł Ż Ż Ż ż ż ż ż ż ż Ż ć Ż Ś Ś Ń Ść


ż ó ś Ą ć ó ó ó ś ś ś ó ś Ł ś

Ż ć ć Ż ź ć ć ż ć ż ć Ż ć Ą ń Ż ć Ę

Ś ź ź Ł Ó Ń

Ł Ż Ń Ń ć

Ł Ł ń ć Ą

ż ż Ż Ł Ż Ś ć ż ć ż Ś

Ą ź Ą Ą Ś Ó Ą

Ń Ń ć ć Ł Ć Ń ć Ę

Ż Ń Ś Ł Ó Ś ń Ż ń ć Ż ć ń ź Ż ć ć ć ń ń ć Ż Ż ć


Ł ć Ś ć Ś ć ć Ę ź ć ć

ć ż Ż Ż Ą Ż Ż Ż

Ę Ł ź Ś ź ź ź

Ó Ą ź ć Ę Ń Ę

Ł Ś Ę Ł Ś Ś Ś Ą ń ń Ó

ż ć Ń Ł Ż Ść Ść ć Ż Ść Ż ć ć Ż ź Ś ć ć Ó ć ć Ść

ć ć Ę Ó Ś ż ż Ś ż ż ż Ęć ż ć ć ż ż

Ś ź Ś Ś

ń ż ś

ć Ś

Ę ż Ó Ł Ść ą ą ą Ą ć ż ą ż ń ą ć ż ć Ę ą ż ą ą ż ą ź ą ń ą ń ą ą ż ć

Ą Ś Ó

ć ć Ą Ź Ż Ą Ż ć Ą Ż Ź

ń ć Ł Ą

ć

ś ś Ż ś Ń Ń Ę Ł ć ś Ł

Ł Ę Ż Ą Ęć Ń Ń Ł Ę

Ł ć Ł ć ć ć ć Ń ć ć

ż ć Ę ż ż ż Ń Ł ż ż ż ż ż ż ż ż

Ó Ó Ę ź

Ż Ą ź ź ź ź

Ż Ż Ł

Ł Ś Ś Ó ń

Ę Ł Ź Ł

Ł Ż

ć ć

Ż Ż

ż ń ń ź ź ź

ń ć ć

Ł Ł Ę Ż ź

Ą Ó Ź Ą Ź Ź

ż Ś ż ż ć ć Ś Ź Ą

ń ń ń ż ć Ł ż ż ń ż Ą ń Ż ż

Ń ź ź ź ź Ś ź ź Ś ź

Ść ć Ż ć Ż Ś ć ż ń ż Ż ć Ś Ż ń

ć ć Ść ć Ść ć ć ć ć

ż ż Ę Ę Ą Ó

Ś Ń Ń ć Ń ć

Ó Ś

Piotr Orzechowski. Technologie Biznesu Elektronicznego

Ł ń Ż Ł ż Ą Ó Ś Ż ń ż ż ń ż Ń Ł Ą Ł Ą Ą Ą Ą ż

Android ios Windows Mobile J2ME czyli Java 2 Micro Edition,

Gra na telefon komórkowy

Ą Ł Ę Ń Ą Ó ŚĆ Ś ć Ó ń ć ŚĆ ć ć

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

SEMINARIUM DYPLOMOWE

Ż Ę ź Ó

Laboratorium z informatyki sem. III/ćw.12 Wydział Transportu PW 2018/19

ż ś ż ś Ę ś ż ś ś ś Ł ś ż Ł ż ś ś ś ż

Ó Ó Ę

Ł Ą Ó Ł ć Ą ć ć

Ą Ź ć Ń Ą ć Ź Ź

Ż Ź Ź ź Ż Ż Ź Ą Ą Ż ź Ś Ż Ż Ś Ź Ś Ą

Ó Ą Ł Ń ń ć ń ń ć Ń Ń ń Ń ń Ń ć ć ć Ń ź ź

ź ź

Ó Ż ż Ć ż ż ż Ó Ę Ę Ó Ó ż Ó Ł ż Ł

Ę Ł ź ź ć ź ć Ń ć ź ź Ł

Ł Ś ś

Ł Ń ś ń ć Ź ś ń

ń

ć Ą ź ć ć Ż ź ź Ą ź ć ź ć ź

Ę Ę Ę Ś Ł Ł Ł Ś

ĘŚ ĘŚ Ó Ę

ść ś ń ś ś ź ś ć Ą ś Ą ś ń ś ń ń ń ń Ń ć ź ń ś ń ń Ń ć ń ś ś

ć ź ć Ó

Transkrypt:

Wprowadzenie do J2ME Marcin Stachniuk mstachniuk@gmail.com Politechnika Wrocławska Wydział Elektroniki Studenckie Koło Naukowe Informatyki Systemów Autonomicznych i Adaptacyjnych ISA 2 25 listopada 2010 Marcin Stachniuk Wprowadzenie do J2ME 1/52

Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 2/52

Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 3/52

The Java Platform http://java.sun.com/javame/technology/index.jsp Marcin Stachniuk Wprowadzenie do J2ME 4/52

The Connected Limited Device Configuration http://java.sun.com/javame/technology/index.jsp Marcin Stachniuk Wprowadzenie do J2ME 5/52

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/52

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/52

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/52

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/52

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/52

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/52

Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 9/52

C++ Studenkie Koło Naukowe ISA 2 Warsztaty programistyczne J2ME 25 listopada 2010 Przykładowy program w C++: 1: #i n c l u d e <i o s t r e a m > 2: 3: u s i n g namespace s t d ; 4: 5: i n t main ( i n t argc, c h a r a r g v ) 6: { 7: cout << H e l l o World << e n d l ; 8: } Marcin Stachniuk Wprowadzenie do J2ME 10/52

Java SE Przykładowy program w Javie SE: 1: p u b l i c c l a s s Main { 2: p u b l i c s t a t i c v o i d main ( S t r i n g [ ] a r g s ) { 3: System. out. p r i n t l n ( H e l l o World ) ; 4: } 5: } Marcin Stachniuk Wprowadzenie do J2ME 11/52

Java ME Przykładowy program w Javie ME: 1: // i m p o r t p a k i e t u z a w i e r a j ą c e g o k l a s ę MIDlet 2: i m p o r t j a v a x. m i c r o e d i t i o n. m i d l e t. ; 3: 4: // K l a s a r o z s z e r z a j ą c a a b s t r a k c y j n ą k l a s ę MIDlet. 5: // K l a s a k t ó r a b ę d z i e j a k o p i e r w s z a uruchamiana. 6: p u b l i c c l a s s MyMidlet e x t e n d s MIDlet { 7: p u b l i c v o i d s t a r t A p p ( ) { 8: } 9: 10: p u b l i c v o i d pauseapp ( ) { 11: } 12: 13: p u b l i c v o i d d e s t r o yapp ( b o o l e a n u n c o n d i t i o n a l ) { 14: } 15: } Marcin Stachniuk Wprowadzenie do J2ME 12/52

Cykl życia aplikacji http://developers.sun.com/mobility/midp/articles/fsm/ Marcin Stachniuk Wprowadzenie do J2ME 13/52

Znaczenie nadpisanych metod Klasa MIDlet: konstruktor - wywoływany tylko raz podczas uruchamiania aplikacji startapp() - wywoływana przy uruchomieniu aplikacji i podczas powrotu ze stanu Paused (np. po zakończeniu rozmowy telefonicznej) pauseapp() - wywoływana gdy telefon przechodzi w stan Paused (np. podczas przyjścia sms a) destroyapp(bool unconditional) - wywoływana przed zakończeniem aplikacji (np. podczas twardego wyłączania aplikacji czerwonym przyciskiem) Metody destroyapp() i startapp() mogą rzucić wyjątek MIDletStateChangeException, niezezwalając w ten sposób na zmianę stanu. Marcin Stachniuk Wprowadzenie do J2ME 14/52

Pierwszy MIDlet Listing 1: Pierwszty MIDlet 1: i m p o r t j a v a x. m i c r o e d i t i o n. l c d u i. ; 2: i m p o r t j a v a x. m i c r o e d i t i o n. m i d l e t. ; 3: 4: p u b l i c c l a s s M i d l e t e x t e n d s MIDlet { 5: p u b l i c v o i d s t a r t A p p ( ) { 6: // u t w o r z e n i e TextBox a 7: TextBox t ex tb ox = new TextBox ( 8: Moj P i e r w s z y M i d l e t, 9: H e l l o World!, 20, 0) ; 10: 11: // p o b r a n i e o b i e k t u w y ś w i e t l a c z a 12: D i s p l a y d i s p l a y = D i s p l a y. g e t D i s p l a y ( t h i s ) ; 13: 14: // u s t a w i e n i e w y ś w i e t l a n i a t e x t B o x a na e k r a n i e 15: d i s p l a y. s e t C u r r e n t ( t e xtbox ) ; 16: System. out. p r i n t l n ( H e l l o World! ) ; 17: } 18: Marcin Stachniuk Wprowadzenie do J2ME 15/52

Pierwszy MIDlet 19: p u b l i c v o i d pauseapp ( ) { 20: } 21: 22: p u b l i c v o i d d e s t r o yapp ( b o o l e a n u n c o n d i t i o n a l ) { 23: } 24: } Marcin Stachniuk Wprowadzenie do J2ME 16/52

Pierwszy MIDlet w działaniu Marcin Stachniuk Wprowadzenie do J2ME 17/52

Drugi MIDlet Listing 2: Drugi MIDlet 1: i m p o r t j a v a x. m i c r o e d i t i o n. l c d u i. ; 2: i m p o r t j a v a x. m i c r o e d i t i o n. m i d l e t. ; 3: 4: // k l a s a dodatkowo i m p l e m e n t u j e CommandListener 5: p u b l i c c l a s s M i d l e t e x t e n d s MIDlet implements CommandListener { 6: p u b l i c v o i d s t a r t A p p ( ) { 7: TextBox t ex tb ox = new TextBox ( 8: Moj P i e r w s z y M i d l e t, 9: H e l l o World!, 20, 0) ; 10: 11: // u t w o r z e n i e komendy Koniec 12: Command exitcommand = new Command( Koniec, Command. EXIT, 1) ; 13: // u s t a w i e n i e n a s ł u c h i w a c z a komend 14: t e x t B o x. setcommandlistener ( t h i s ) ; 15: // d o d a n i e komendy do t e x t B o x a 16: t e x t B o x. addcommand ( exitcommand ) ; Marcin Stachniuk Wprowadzenie do J2ME 18/52

Drugi MIDlet 17: D i s p l a y d i s p l a y = D i s p l a y. g e t D i s p l a y ( t h i s ) ; 18: d i s p l a y. s e t C u r r e n t ( t e x t B o x ) ; 19: System. out. p r i n t l n ( H e l l o World! ) ; 20: } 21: 22: p u b l i c v o i d pauseapp ( ) { } 23: 24: p u b l i c v o i d d estroyapp ( b o o l e a n u n c o n d i t i o n a l ) { 25: } 26: 27: // k o n i e c z n a j e s t i m p l e m e n t a c j a t e j metody gdy implementujemy CommandListener 28: p u b l i c v o i d commandaction (Command c, D i s p l a y a b l e d ) { 29: // s p r a w d z e n i e czy z d a r z e n i e p o c h o d z i od komendy typu Command. EXIT 30: i f ( c. getcommandtype ( ) == Command. EXIT ) { 31: destroyapp ( f a l s e ) ; 32: n o t i f y D e s t r o y e d ( ) ; // z a k o ń c z e n i e a p l i k a c j i 33: } 34: } 35: } Marcin Stachniuk Wprowadzenie do J2ME 19/52

Drugi MIDlet w działaniu Marcin Stachniuk Wprowadzenie do J2ME 20/52

Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 21/52

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 22/52

NetBeans obecnie 6.9.1 Marcin Stachniuk Wprowadzenie do J2ME 23/52

NetBeans download Marcin Stachniuk Wprowadzenie do J2ME 24/52

NetBeans Nowy Projekt Warto wybrać te zawierające już Java ME. Nie trzeba będzie instalować SDK. Marcin Stachniuk Wprowadzenie do J2ME 25/52

NetBeans Nazwa Projektu Marcin Stachniuk Wprowadzenie do J2ME 26/52

NetBeans Wybranie Platformy Marcin Stachniuk Wprowadzenie do J2ME 27/52

NetBeans Finish Marcin Stachniuk Wprowadzenie do J2ME 28/52

NetBeans Utworzony Midlet Marcin Stachniuk Wprowadzenie do J2ME 29/52

NetBeans Uruchomienie MIDletu Marcin Stachniuk Wprowadzenie do J2ME 30/52

Eclipse Studenkie Koło Naukowe ISA 2 Warsztaty programistyczne J2ME 25 listopada 2010 Marcin Stachniuk Wprowadzenie do J2ME 31/52

Eclipse download Marcin Stachniuk Wprowadzenie do J2ME 32/52

Eclipse Nowy Projekt Marcin Stachniuk Wprowadzenie do J2ME 33/52

Eclipse Nazwa Projektu Marcin Stachniuk Wprowadzenie do J2ME 34/52

Eclipse Właściwości Projektu Marcin Stachniuk Wprowadzenie do J2ME 35/52

Eclipse Ustawienia Projektu Marcin Stachniuk Wprowadzenie do J2ME 36/52

Eclipse Dodanie Nowego Midletu Marcin Stachniuk Wprowadzenie do J2ME 37/52

Eclipse Nazwa Nowego Midletu Marcin Stachniuk Wprowadzenie do J2ME 38/52

Eclipse Tworzenie Midletu koniec Marcin Stachniuk Wprowadzenie do J2ME 39/52

Eclipse Utworzony Midlet Marcin Stachniuk Wprowadzenie do J2ME 40/52

Eclipse Uruchomienie Midletu Marcin Stachniuk Wprowadzenie do J2ME 41/52

Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 42/52

JAD i JAR Marcin Stachniuk Wprowadzenie do J2ME 43/52

Przykładowa 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 44/52

Zawartość JAR Marcin Stachniuk Wprowadzenie do J2ME 45/52

Zawartość Manifestu (plik MANIFEST.MF) z pliku JAR MIDlet-1: Midlet,, Midlet 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 Brak atrybutu MIDlet-Jar-Size! Marcin Stachniuk Wprowadzenie do J2ME 46/52

Instalacja Aplikacji Instalacja Aplikacji j2me na telefonie z internetu: Ściągnięcie pliku JAD Sprawdzenie pliku JAD (wielkość MIDletu, wersje MIDP, CLDC) Ściągnięcie pliku JAR Sprawdzenie rozmiaru JAR a (czy zgodny z wpisem w pliku JAD) Porównanie wpisów w pliku JAD i MANIFEST.MF Instalacja Marcin Stachniuk Wprowadzenie do J2ME 47/52

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 48/52

Plan prezentacji 1 Wprowadzenie 2 Pierwszy kod 3 Jakie środowisko? NetBeans Eclipse 4 Uruchomienie aplikacji 5 Podsumowanie Marcin Stachniuk Wprowadzenie do J2ME 49/52

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 50/52

Pytania Studenkie Koło Naukowe ISA 2 Warsztaty programistyczne J2ME 25 listopada 2010? Marcin Stachniuk Wprowadzenie do J2ME 51/52

Więcej informacji Kontakt z autorem: mstachniuk@gmail.com Strona koła naukowego ISA 2 http://autonom.ict.pwr.wroc.pl/ Nowa (2010) strona warsztatów: http://autonom.iiar.pwr.wroc.pl/mobile/ Stara (2009) strona warsztatów: http://autonom.ict.pwr.wroc.pl/ mstachniuk Adres tego dokumentu: http://autonom.iiar.pwr.wroc.pl/mobile/2010/02/02-podstawy-2010.11.25.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 52/52