Programowanie aplikacji na urządzenia mobilne

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie aplikacji na urządzenia mobilne"

Transkrypt

1 Informatyka I Programowanie aplikacji na urządzenia mobilne dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018

2 JME - Java Platform Micro Edition JME platforma Java przeznaczona do programowania aplikacji na urządzenia mobilne Występuje również pod nazwami J2ME, Java Mobile Edition, itp.

3 Urządzenia mobilne Różnorodne urządzenia o ograniczonych możliwościach sprzętowych: Słabszy procesor Mniejsza pojemność pamięci RAM Brak dysku twardego lub mały jego rozmiar Niska rozdzielczość ekranu Jako urządzenia mogą występować np. telefony mobilne, tablety, palmtopy, przemysłowe mini komputery, układy wbudowane etc.

4 Kategorie urządzeń vs. wersja platformy Java Java Enterprise Edition JEE Java Standard Edition JSE Java Micro Edition JME

5 Architektura JME Profil Urządzenie Konfiguracja Dalej zostanie omówiona architektura JME = MIDP + CLDC

6 Konfiguracje urządzeń mobilnych Konfiguracja określa wymagania w stosunku do maszyny wirtualnej Java (instrukcje dopuszczalne oraz klasy bazowe) CLDC Connected Limited Device Configuration : urządzenia o bardzo ograniczonych zasobach telefony komórkowe PDA etc. CDC Connected Device Configuration: urządzenia o większych zasobach sprzętowych tablet konsola do gier telewizor etc.

7 Profil urządzenia mobilnego Profil stanowi rozszerzenie konfiguracji i może określać: Model aplikacji Interfejs graficzny GUI Narzędzia komunikacji (sieć, GSM, etc.) itp. Profil opisuje grupę urządzeń o podobnych charakterystykach (np. telefony komórkowe ze wsparciem Java)

8 Profil MIDP (3.0) MIDP (ang. Mobile Information Device Profile) profil urządzenia mobilnego przeznaczony do programowania aplikacji na telefony komórkowe ze wsparciem JME Mały rozmiar aplikacji (do 1 MB) Możliwość przekazania pliku aplikacji przez sieć komórkową Bezpieczeństwo dostępu do ważnych funkcji telefonu (np. wykonanie połączeń) Cykl życia aplikacji zorientowany na specyfikę urządzenia (zawieszenie działania, odebranie połączenia, etc.)

9 MIDlet MIDlet aplikacja dla profilu MIDP na platformie JME javax.microedition. midlet javax.microedition. lcdui Klasa bazowa dla wszystkich aplikacji mobilnych typu midlet Biblioteka komponentów graficznych GUI

10 uruchomienie Cykl życia midletu konstruktor pauseapp() startapp() destroyapp()

11 Klasa Display ekran fizyczny Urządzenie mobilne ma z reguły jeden ekran fizyczny W przypadkach dwóch lub większej liczby ekranów jest wymagana osobna konfiguracja Dostęp do ekranu fizycznego w programie odbywa się poprzez klasę Display

12 Ekrany wirtualne Ekran wirtualny obiekt w programie JME, który może być wyświetlony na fizycznym ekranie urządzenia Aplikacja może składać się z wielu ekranów wirtualnych Ekran logiczny tekstowy Ekran fizyczny urządzenia Ekran logiczny graficzny

13 Klasa Displayable ekran wirtualny Każdy ekran wirtualny jest rozszerzeniem klasy Displayable

14 Wybór bieżącego ekranu wirtualnego Ekran wirtualny może być wyświetlony na ekranie fizycznym urządzenia Metoda Display.setCurrent( displayable )

15 Klasa Screen Jest abstrakcyjną klasą bazową dla ekranów o zawartości tekstowej realizujących interfejs wysokiego poziomu Komponenty GUI: TextField: pole tekstowe ChoiceGroup: lista elementów RadioButton, CheckBox, etc. Gauge: suwak Label: etykieta Etc.

16 Elementy interfejsu wysokiego poziomu (klasa Form) Klasa Form wywodzi się z klasy Screen i implementuje kontener dla elementów typu Item

17 TextField pole tekstowe Przy tworzeniu obiektu TextField należy podać: Label etykietę wyświetlaną obok pola tekstowego Text wartość wyświetlaną domyślnie MaxSize maksymalny rozmiar pola tekstowego Constraints rodzaj pola tekstowego TextField.ANY dowolny tekst TextField.NUMERIC liczba całkowita TextField.PASSWORD - hasło itp.

18 ChoiceGroup lista wyboru ChoiceGroup kolor = new ChoiceGroup("Kolor", ChoiceGroup.EXCLUSIVE, new String[]{"czerwony", "zielony"}, null); ChoiceGroup opcje = new ChoiceGroup("Opcje", List.MULTIPLE, new String[] {"pokaż siatkę"}, null);

19 Gauge - suwak Gauge speed = new Gauge( "Prędkość", true, 1000, 300);

20 Klasa Canvas Jest klasą bazową do tworzenia interfejsu niskiego poziomu umożliwiającego: Rysowanie linii, prostokątów, okręgów, itp. Zmianę kolorów Wypełnianie tła Wyświetlanie obrazów itp.

21 Obsługa zdarzeń klawiatury JME nie wymaga implementacji interfejsu KeyListener w jawnej postaci W celu przechwycenia zdarzeń klawiatury, wystarczy nadpisać metody keypressed, keyreleased, etc. protected void keypressed(int keycode) { switch (keycode) { case -1: // up case -2: // down case -3: // left case -4: // right case -5: // center

22 Klasa Command Klasa implementuje polecenia wysyłane przez użytkownika do aplikacji (np. przejdź do drugiego ekranu, potwierdź, anuluj, etc.) Rodzaj polecenia: OK, BACK, STOP, SCREEN, Polecenia są dodawane metodą addcommand Do obsługi zdarzeń wykorzystuje się interfejs CommandListener

23 Klasa Command (c.d.) Tworzenie obiektu klasy Command Dodanie obiektu klasy Command do formatki Konfiguracja nasłuchiwania zdarzeń

24 Interfejs CommandListener Implementacja interfejsu przez formatkę Implementacja funkcji commandaction