Programowanie urządzeń mobilnych na platformie Java ME

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

Download "Programowanie urządzeń mobilnych na platformie Java ME"

Transkrypt

1 Programowanie urządzeń mobilnych na platformie Java ME Piotr Kopniak Wprowadzenie Telefon komórkowy jest urządzeniem bardzo popularnym. Przyzwyczailiśmy się już do tego, że każdy człowiek go ma i dzięki niemu możemy się z nim skontaktować. Jednak współczesne telefony oferują nam dużo większą funkcjonalność. Najbardziej zaawansowane z telefonów komórkowych zwane są popularnie smartfonami. Ta nazwa pochodzi od angielskich słów smart phone. Smortfony to nie telefony, a kieszonkowe komputery o mocy obliczeniowej zbliżonej do komputerów biurkowych sprzed kilku lat. Urządzenia tego typu działają najczęściej pod kontrolą systemu operacyjnego będącego uproszczoną wersją systemu stosowanego w standardowych komputerach osobistych oraz wykorzystują oprogramowanie niewiele różniące się od oprogramowania standardowych komputerów osobistych. Jednak najwięcej obecnie używanych na świecie telefonów to tańsze telefony, często wyposażone w klawiatury, których głównym przeznaczeniem jest telefonowanie. Telefony takie możemy nazwać telefonami funkcyjnymi ponieważ występują pod wspólną angielską nazwą featured phone. W telefonach tego typu wszystko jest mniejsze w porównaniu ze smartfonami. Posiadają mniejsze ekrany, mniej pamięci, wolniejsze procesowy i co bardzo ważne mniejsza cenę. Telefony tego typu wykorzystują najczęściej dedykowane systemy operacyjne oraz oprogramowanie. Ze względu na duża liczbę użytkowanych urządzeń, na tego typu telefony ciągle powstaje nowe oprogramowanie. Ze względu na dużą różnorodność producentów telefonów i ich podzespołów tworzone oprogramowanie powinno dawać możliwość uruchamiania na wielu platformach. Idealnym rozwiązaniem jest zastosowania języka programowania, który spełnia te wymogi. Tym językiem jest język Java. Dzięki zastosowaniu środowiska wykorzystującego maszynę wirtualną, na której działają aplikacje, Java spełniają podstawowy wymóg przenośności. Maszyna wirtualna dla programu, który na niej działa wygląda zawsze w ten sam sposób niezależnie od rodzaju systemu operacyjnego, na którym zainstalowano maszynę, dlatego raz napisany program można uruchomić na wielu różnych systemach operacyjnych. Środowisko Java występuje w kilku odmianach. Java SE (Standard Edition) umożliwia tworzenie aplikacji na standardowe komputery osobiste i serwery [1]. Java EE (Enterprise Edition) służy do budowy wielowarstwowych aplikacji dla przedsiębiorstw [2]. Dla urządzeń mobilnych powstała specjalna platforma programistyczna o nazwie Java Micro Edition (Java ME) [3], która zostanie omówiona poniżej. Platforma Java ME Java dla urządzeń mobilnych jest zbiorem specyfikacji i technologii wytwarzania aplikacji. Implementacje specyfikacji mogą być wytwarzane przez różnych producentów, choć najczęściej wykorzystuje się wzorcową implementację stworzona przez firmę Sun, a obecnie rozwijaną przez firmę Oracle.

2 Java ME działa obecnie na ponad 3 milionach telefonów na świecie [3], ponieważ dzięki zastosowaniu maszyny wirtualnej dostarcza elastyczne środowisko uruchomieniowe nie tylko dla aplikacji działających na telefonach, ale także na innych systemach wbudowanych, takich jak: telewizory, dekodery telewizyjne, czytniki Blu-Ray, czytniki książek elektronicznych i drukarki [4]. Twórcy platformy od ponad dekady współpracują nad jej rozwojem z czołowymi przedsiębiorstwami rynku urządzeń mobilnych poprzez program Java Community Process (JCP) [5]. Java ME jest uproszczeniem Javy SE przeznaczonej dla komputerów osobistych i bazuje na dwóch głównych specyfikacjach zwanych konfiguracjami. Pierwsza z nich to Connected Limited Device Configuration (CLDC) przeznaczona dla urządzeń o mniejszych możliwościach, do których można zaliczyć telefony [6] oraz Connected Device Configuration (CDC) opracowana dla urządzeń lepiej wyposażonych takich jak palmtopy i systemy wbudowane [7]. Konfiguracje platformy Java ME Konfiguracja jest specyfikacją definiującą środowisko oprogramowania dla grupy urządzeń, udostępnia podstawowe usługi dla aplikacji. Konfiguracja nie zawiera żadnych klas do zarządzania cyklem życia aplikacji, tworzenia interfejsu użytkownika, zarządzania trwałością danych w urządzeniu, czy bezpiecznego dostępu do informacji na serwerze sieciowym. Te funkcjonalności udostępniają dodatkowe zestawy bibliotek zwane profilami. Konfiguracja CLDC jest konfiguracją dla urządzeń o silnych ograniczeniach: mocy obliczeniowej, pamięci, żywotności baterii i przepustowości sieci. Nie zakłada istnienia ekranu i mechanizmu wprowadzania danych. Zakłada jednak istnienie systemu operacyjnego, niekoniecznie wspierającego współbieżność. Środowisko to zawiera jedynie API najwyższego poziomu dla pisania aplikacji (nie systemów). CLDC nie zajmuje się zarządzaniem cyklem życia aplikacji, nie zakłada istnienia systemu plików i przechowywania trwałego załadowanych aplikacji, ponieważ decydują o tym rozwiązania sprzętowo-systemowe producentów urządzeń. Ze względu na to, że CLDC opiera się na Javie SE jej dokumentacja określa jedynie zmiany wprowadzone do platformy bazowej. Podstawowe biblioteki klas konfiguracji oraz profili muszą wykorzystywać klasy zawarte w platformie Java SE. Klasy zapożyczone z Javy SE nie mogą być modyfikowane poprzez dodawanie nowych pól i metod (działanie metod może być inne). Do pakietów pochodzących z Javy SE nie można dodawać nowych klas. W związku z tym program napisany w środowisku Java ME może być kompilowany i uruchamiany w środowisku Javy SE. CLDC definiuje podzbiór standardowych pakietów Javy SE i dodaje klasy dopasowane do ograniczonych urządzeń. Pakiety zapożyczone z Javy SE to: java.io - pakiet wejścia-wyjścia umożliwiający wymianę danych za pomocą strumieni, java.lang - podstawowy pakiet języka, dołączany do każdego programu, zawierający m.in. klasy podstawowych typów obiektowych takich jak String, java.util pakiet narzędziowy, obsługujący m.in. kolekcje, tablice oraz operacje związane z czasem. Java SE w odmianie ME została pozbawiona takich elementów jak: finalizacja, klonowanie obiektów, dostęp do bibliotek natywnych poprzez JNI (Java Native Interface), modyfikacje Security Managera, grupy wątków, większość klas błędów pochodnych po Error, większość klas kolekcji i pracy z czasem, oraz niektórych strumieni.

3 Ze względu na obszerność pakietów służących do obsługi komunikacji ze światem zewnętrznym Javy SE, tzn. bibliotek wejścia-wyjścia oraz biblioteki komunikacji sieciowej, Java ME wprowadza swoje własne rozwiązanie pakiet javax.microedition.io, czyli - GCF - Generic Connection Framework. GCF zamiast używać wielu abstrakcji do różnych form komunikacji stosuje wspólną abstrakcję niezależnie od tego czy będzie komunikować się z plikiem czy innym komputerem w sieci. Służy do tego klasa Connector zwracająca odpowiednie połączenia w zależności od wybranego protokołu komunikacji. CLDC nie definiuje jednocześnie, żadnej implementacji protokołu. Definicje protokołów odnajdziemy dopiero w profilach. Otwarcie połączenia poprzez CLDC wygląda następująco: Connector.open("<protokół>:<adres>;<parametry>"); Symboliczne porównanie wielkości środowiska Java ME oraz środowisk Java SE i EE, a także dostępne profile rozszerzające konfiguracje przedstawia diagram na rys. 1. Dodatkowe pakiety Dodatkowe pakiety Dodatkowe pakiety (MSA) Personal Dodatkowe pakiety (JTWI, MSA) J2EE J2SE Personal basis Profil JDBC Profil Game Profil Foundation Profil MIDP (1.0) 2.0 Profil IMP (NG) Profil PDA Profil Digital Set Top Box JVM JVM CDC (1.0) 1.1 JVM CLDC (1.0) 1.1 KVM Rys. 1. Platforma Java ME w porównaniu ze środowiskami Java SE i EE Profile platformy Java ME CLDC nie zawiera mechanizmów interakcji z użytkownikiem, obsługi sieci i urządzeń masowych. W związku z tym trudno jest tworzyć aplikacje korzystając tylko z konfiguracji CLDC. W celu stworzenia funkcjonalnej aplikacji stosuje się dodatkowo profile. Profile uzupełniają konfiguracje poprzez dodanie klas zapewniających funkcje specyficzne dla określonego typu urządzenia lub segmentu rynku. Profile opracowane dla platformy CLDC to: Mobile Information Device Profile (MIDP) profil udostępniający funkcje sieciowe, komponenty interfejsu użytkownika i lokalną pamięć trwałą (jest podstawą dla specyfikacji Wireless Java) [8], Personal Digital Assistant (PDA) profil przeznaczony dla notesów elektronicznych, o większych ekranach, pamięci i możliwościach GUI; zawiera API Java do funkcji systemu operacyjnego,

4 Information Module Profile (IMP) profil przeznaczony dla urządzeń nie posiadających ekranu, takich jak automaty z napojami, czy urządzenia przemysłowe, Digital Set Top Box profil przeznaczony dla przystawek telewizji kablowych, zawiera Java 2 I/O API, sieć, grafikę oraz podzbiór biblioteki Java TV API odpowiedni dla tych urządzeń. Profil MIDP MIDP jest podstawowym profilem dla telefonów. Oprogramowanie MIDP działa na maszynie KVM lub HotSpot z CLDC i oferuje dodatkowe usługi dla aplikacji korzystających z API MIDP. Strukturę MIDP w kontekście całego środowiska Javy ME przedstawia rys. 2. Rys. 2. Struktura profilu MIDP Diagram przedstawia profil MIDP umieszczony pomiędzy konfiguracją CLDC i MIDletami, czyli aplikacjami wykorzystującymi konfiguracje CLDC i profil MIDP. Reprezentują go cztery podstawowe bloki funkcyjne: środowisko działania MIDletu, graficzny interfejs użytkownika, funkcje do komunikacji sieciowej i pamięć trwała. Z profilu mogą korzystać także aplikacje nie będące MIDletami, które są oparte na API specyficznym dla danej platformy sprzetowo-systemowej. Profil MIDP określa minimalne wymagania dla urządzeń, na których mają działać MIDlety. Należą do nich: przynajmniej monochromatyczny ekran, urządzenie wejściowe w postaci klawiatury jednoręcznej, dwuręcznej, albo ekranu dotykowego, dwukierunkowa komunikacja sieciowa, system operacyjny zapewniający chronione środowisko uruchomieniowe dla maszyny wirtualnej oraz obsługujący przerwania, wyjątki, planowanie, a także udostępniać jednostkę wykonania dla JVM. System operacyjny nie musi wspierać procesów i dzielenia pamięci, a także nie musi gwarantować ich czasowego wykonania i zachowania. Oprogramowanie urządzenia musi także generować zdarzenia na podstawie interakcji użytkownika oraz konwertować kody zdarzeń na kody zdarzeń MIDP. Platforma, na której mają być uruchamiane aplikacje MIDP musi również zarządzać cyklem życia aplikacji. Profil MIDP rozszerza konfigurację CLDC o następujące pakiety: javax.microedition.lcdui pakiet graficznego interfejsu użytkownika dostarcza zbiór funkcjonalności dla implementacji interfejsu użytkownika aplikacji MIDP, javax.microedition.lcdui.game - zbiór klas umożliwiających tworzenie bogatego oprogramowania do gier na urządzeniach bezprzewodowych, javax.microedition.midlet pakiet cyklu życia aplikacji definiuje aplikację MIDP i interakcję aplikacji z otoczeniem, javax.microedition.io pakiet sieciowy; wsparcie dla sieci oparte na Generic Connection Framework,

5 javax.microedition.pki pakiet klucza publicznego obsługuje certyfikaty do uwierzytelniania przesyłanych informacji, javax.microedition.media pakiet przetwarzania multimediów, javax.microedition.rms pakiet obsługujący utrwalanie danych w magazynach danych przechowujących rekordy binarne. Dodatkowo MIDP rozszerza pakiety CLDC, tzn. pakiet java.lang o funkcję Runtime.exit(), java.util o klasy Timer i TimerTask, pakiet javax.microedition.io o implementację protokołu HTTP. MIDlety Aplikacje Java, które możemy pobrać na telefon z sieci, np. po wysłaniu płatnego SMS-a to działające z profilem MIDP MIDlety. MIDlet to program napisany w języku Java posiadający odpowiednią strukturę. MIDlet musi posiadać niezbędne funkcje, które są wywoływane poprzez Application Management Software (AMS), czyli środowisko sprzętowo programowe telefonu zarządzające cyklem życia aplikacji począwszy od ich pobrania, poprzez instalację i uruchomienie do odinstalowywania. MIDlet składa się z co najmniej jednej klasy dziedziczącej po klasie MIDlet z pakietu javax.microedition.midlet. Cykl życia MIDletu kontrolowany jest przez metody klasy MIDlet, które muszą być implementowane przez każdy MIDlet. Do metod tych należą: metoda startapp() wywoływana przez AMS podczas uruchamiania MIDletu (również po jego uśpieniu), metoda pauseapp() służąca do zatrzymywania MIDletu i zapisywania jego stanu, np. w wyniku odebrania połączenia telefonicznego oraz metoda destroyapp() wywoływana przed jego zniszczeniem, w której najczęściej zwalnia się zasoby zajęte przez MIDlet, np. zamyka się nawiązane połączenia sieciowe. Szkielet MIDletu wygląda następująco: import javax.microedition.midlet.*; public class PiewszyMIDlet extends MIDlet{ PierwszyMIDlet(){ protected void startapp() throws MIDletStateChangeException{ protected void pauseapp(){ protected void destroyapp(boolean unconditional) throws MIDletStateChangeException{ MIDlety można dystrybuować pojedynczo lub jako zestawy. Zarówno pojedynczy MIDlet jak i zestaw MIDletów stanowi jeden pakiet (plik *.jar). MIDlety z jednego zestawu są instalowane jako jedna jednostka i współdzielą zasoby statyczne jak i dynamiczne środowiska urządzenia, a także

6 instancje wszystkich klas Javy, zasobów załadowanych do maszyny wirtualnej i danych zapisanych w pamięci trwałej. Przykładowe MIDlety demonstracyjne dostępne ze środowiskiem programistycznym Java ME Platform SDK przedstawia rys. 3. Rys. 3. Przykładowe MIDlety (od lewej): gra 3D, mapy i demonstracja interfejsu graficznego LWUIT Graficzny interfejs użytkownika MIDlety najczęściej są aplikacjami użytkowymi lub rozrywkowymi komunikującymi się z użytkownikiem poprzez interfejs graficzny. MIDlety wykorzystują ekrany telefonów do wyświetlania grafiki i jednocześnie umożliwiają użytkownikowi interakcję z aplikacją poprzez obsługę zdarzeń klawiatury, ekranu dotykowego i czujników wbudowanych w telefon. Ze względu na to, że MIDlety mogą być uruchamiane na różnych urządzeniach konieczne jest tworzenie uniwersalnego interfejsu użytkownika, który zawsze będzie wyglądał tak samo. Ograniczenia systemowe małych platform wyeliminowały bibliotekę Swing z Javy SE, a podstawowy model AWT Javy SE okazał się zbyt skomplikowany. Dlatego zamiast wyodrębniać komponenty z AWT stworzono specjalnie nowy interfejs przygotowany do małych ekranów i pracy w jednym oknie. Składa się on z małego zestawu klas, jest łatwiejszy do użycia i ma małe wymagania. API graficznego interfejsu użytkownika Javy ME składa się z dwóch części: API wysokiego poziomu - umożliwia tworzenie interfejsu graficznego aplikacji użytkowych składającego się z widoków pochodnych po klasie Screen umożliwiających wyświetlanie formularzy, tekstu, list wyboru i komunikatów; ma małe możliwości kontrolowania wyglądu ponieważ wymaga stosowania gotowych komponentów (jedynym wyjątkiem jest możliwość przygotowania własnego komponentu formularza), API niskiego poziomu - umożliwia niskopoziomową pracę z płótnami klasy Canvas, które reprezentują kontekst graficzny ekranu, czyli są zbiorem pikseli; ma większe możliwości zmiany wyglądu i interakcji z użytkownikiem, ponieważ dostarcza narzędzia do rysowania kształtów podstawowych, tekstu oraz wyświetlania obrazów; programista musi narysować wszystko na ekranie samemu i interpretować wszystkie dane wejściowe pochodzące od użytkownika. Zestaw klas składających się na API graficznego interfejsu użytkownika przedstawia diagram na rys. 4.

7 Rys. 4. Zestaw klas graficznego interfejsu użytkownika profilu MIDP Wyświetlanie grafiki możliwe jest dzięki klasie Display reprezentującej ekran urządzenia. Każdy MIDlet ma dostęp do jednego ekranu. Referencję do obiektu Display można uzyskać w programie poprzez metodę statyczną (MIDlet w przykładzie to aplikacja, która chce uzyskać referencję): Display ekran = Display.getDisplay(MIDlet); Stworzenie aplikacji GUI polega na dodaniu komponentów graficznych (w przypadku API wysokiego poziomu) lub rysowaniu (w przypadku API niskiego poziomu) na widoku pochodnym po klasie Displayable. Widok jest niewidoczny dopóki nie zostanie dodany do obiektu typu Display. Dodanie nowej zawartości ekranu, czyli obiektu klasy dziedziczącej po klasie Displayable (w naszym przypadku - formularza) wygląda następująco: Form formularz = new Form( Formularz testowy ); ekran.setcurrent(formularz); Jak było wspomniane powyżej, dwie podstawowe klasy widoków dziedziczących po Displayable to klasy Screen i Canvas. Klasa Screen to klasa podstawowa, z której dziedziczą widoki API wysokiego poziomu. W programie nie trzeba po niej dziedziczyć ponieważ są już przygotowane klasy widoków potomnych: Alert, Form, List i TextBox. Klasa Screen dodaje do Displayable opcjonalny tytuł i przewijający się tekst, ale nie pozwala na bezpośrednie rysowanie. Klasa Canvas służy do bezpośredniego rysowania podczas tworzenia interfejsu niskiego poziomu. Chcąc wykorzystać ją w programie, należy utworzyć klasę dziedziczącą. Na ekranie możemy rysować dzięki metodzie paint(). Po przesłonięciu metod klasy program może również reagować na zdarzenia naciśnięcia klawiszy i przesunięcia wskaźnika. Przykładowy kod źródłowy MIDletu wykorzystującego API wysokiego poziomu i widok TextBox przedstawiono poniżej:

8 import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class TextTest extends MIDlet{ protected Display ekran; protected TextBox oknotekst; protected Ticker banner; protected void startapp(){ oknotext = new TextBox( Okno tekstowe, Hello!!, 256, TextBox.ANY); banner = new Ticker( To jest miejsce na twoją reklamę. ); oknotext.setticker(banner); ekran = Display.getDisplay(this); ekran.setcurrent(oknotext); protected void pauseapp(){ protected void destroyapp(){ Wynik działania przedstawionego MIDletu przedstawia rys. 5. Rys. 5. MIDlet wykorzystujący widok typu TextBox

9 Obsługa zdarzeń MIDlety w celu zapewnienia interakcji z użytkownikiem wykorzystują zdarzenia. W API wysokiego poziomu i niskiego poziomu odbywa się to inaczej. W przypadku poziomu wysokiego wykorzystuje się w tym celu komendy. Komendę reprezentuje obiekt typu Command, który współpracuje z obiektem klasy Displayable i zawiera informacje o wykonanej komendzie, a nie o zachowaniu aktywowanym po wywołaniu komendy. O zachowaniu decyduje algorytm zawarty w klasie odbiorcy zdarzeń. Klasa odbiorcy zdarzeń to klasa implementująca interfejs CommandListener. Komendy reprezentowane są na ekranie urządzenia poprzez ich nazwy w dolnych narożnikach ekranu. Na rys. 5 widoczne są dwie komendy: Exit i Qwerty. Jedna z nich służy do zamknięcia MIDletu, a druga do zmiany trybu działania klawiatury urządzenia. Komendy są aktywowane poprzez naciśnięcia przycisków funkcyjnych telefonu znajdujących się najczęściej z prawej i lewej strony pod ekranem urządzenia lub poprzez dotyk w miejscu nazwy komendy na ekranie dotykowym. Poniżej znajduje się fragment MIDletu demonstrujący dodanie komendy i sposób implementacji algorytmu obsługi zdarzenia. public class MojMIDlet extends MIDlet implements CommandListener{ private static final Command wstecz = new Command( Wstecz, Command.BACK, 0);... //implementacja interfejsu w klasie MIDletu Display ekran = Display.getDisplay(this); okno2.addcommand(wstecz); okno2.setcommandlistener(this);... public void commandaction(command c, Displayable d){ if(c==wstecz){ //lub c.getcommandtype()==command.back ekran.setcurrent(okno1); Klasa MIDletu implementuje interfejs CommandListener. W związku z tym musi przesłaniać jego metodę commandaction(). Dzięki implementacji obiekt klasy może być odbiorcą zdarzeń związanych z wywołaniem komendy. Obiekt ten wiązany jest z komendą poprzez wywołanie metody setcommandlistener(this). Algorytm metody commandaction() zawiera sprawdzenie obiektu lub typu komendy, na podstawie którego podejmowane jest odpowiednie działanie. W tym przypadku po wybraniu komendy Wstecz na oknie2 nastąpi ustawienie na ekranie poprzedniego okna okna1.

10 W API niskiego poziomu do obsługi zdarzeń możemy wykorzystać metody klasy Canvas. W klasie dziedziczącej należy je przesłonić. W poniższym przykładzie, którego działanie polega na przesuwaniu trójkątnego obiektu na ekranie na nadpisano dwie metody: keypressed() - metodę odbiorcy zdarzeń reagującą na wciśnięcie klawisza na klawiaturze telefonu, który skojarzony jest z odpowiednia akcja gry (metoda getgameaction()) oraz metodę paint() posiadającą referencję do kontekstu graficznego ekranu i umożliwiająca rysowanie grafiki. Wciśnięcie klawisza powoduje obrót w kierunku ruchu i zmianę współrzędnych obiektu oraz wywołanie metody repaint(), która odświeża obiekty wyświetlane na ekranie i wywołuje metodę paint() rysującą trójkąt obrócony i przesunięty w odpowiednim kierunku. import javax.microedition.lcdui.*; class MojaKanwa extends Canvas{ private int x=0,y=0; private int kierunek; private Image obraz; MojaKanwa(){ try{ obraz = Image.createImage("/kursor.JPG"); catch(exception ex){ public void keypressed(int kodklawisza){ switch(getgameaction(kodklawisza)){ case Canvas.DOWN: y+=5; kierunek=1; repaint(); break; case Canvas.UP: y-=5; kierunek=2; repaint(); break; public void paint(graphics g){ g.drawimage(obraz, x, y, Graphics.TOP Graphics.LEFT); switch(kierunek){ case 1: g.drawregion(obraz, 0, 0, obraz.getwidth(), obraz.getheight(), Sprite.TRANS_ROT180, x, y, 0); break; case 2: break; Wynik działania opisywanego MIDletu przedstawia pierwsza ilustracja na rys. 6. Druga ilustracja demonstruje możliwości graficzne API niskiego poziomu platformy Java ME. Jest to gra wykonana z wykorzystaniem klasy GameCanvas.

11 a) b) Rys. 6. Przykładowe MIDlety wykorzystujące grafikę niskiego poziomu: a) MIDlet animujący ruch trójkątnego obiektu, b) gra. Podsumowanie Mimo dużej ekspansji smartfonów ciągle największą grupą użytkowanych telefonów komórkowych są prostsze i tańsze telefony funkcyjne. Na tego typu urządzenia możemy tworzyć aplikacje przy wykorzystaniu języka Java. Aplikacje Java są uniwersalne ponieważ nie wymagają modyfikacji w celu uruchomienia na różnych platformach sprzętowosystemowych dzięki zastosowaniu maszyny wirtualnej. Bogate biblioteki Javy ME umożliwiają tworzenie zaawansowanych aplikacji mobilnych korzystających np. z baz danych czy komunikacji sieciowej, a dzięki bibliotece Game API programiści mogą w prosty sposób tworzyć różnego rodzaju gry i aplikacje rozrywkowe. [1] Java SE Overview, [2] Java EE Overview, [3] Java ME Overview, [4] About JAVA for Mobil Devices, [5] Java Community Process, [6] Connected Limited Device Configuration (CLDC); JSR 139, [7] Java ME Technology CDC, html [8] Mobile Information Device Profile (MIDP); JSR 118,

Programowanie aplikacji na urządzenia mobilne

Programowanie aplikacji na urządzenia mobilne Informatyka I Programowanie aplikacji na urządzenia mobilne dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 JME - Java Platform Micro Edition JME platforma Java przeznaczona

Bardziej szczegółowo

ZAPOZNANIE SIĘ Z TWORZENIEM

ZAPOZNANIE SIĘ Z TWORZENIEM LABORATORIUM SYSTEMÓW MOBILNYCH ZAPOZNANIE SIĘ Z TWORZENIEM APLIKACJI MOBILNEJ W J2ME I. Temat ćwiczenia II. Wymagania Podstawowe wiadomości z zakresu języka Java Podstawowa znajomość środowiska Eclipse

Bardziej szczegółowo

Wprowadzenie do J2ME

Wprowadzenie do J2ME 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

Bardziej szczegółowo

Java Platform Micro Edition

Java Platform Micro Edition Java Platform Micro Edition Instalacja środowiska programistycznego Java Platform Micro Edition Software Development Kit 3.0 for Windows z lokalizacji http://www.oracle.com/technetwork/java/javame/downloads/sdk30-jsp-139759.html

Bardziej szczegółowo

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

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 2 z wykorzystaniem języka Java ME ćwiczenia 2 Wykorzystanie plików graficznych w MIDlet ach utworzenie obiektu klasy Image (statyczna metoda createimage()) utworzenie obiektu klasy ImageItem dodanie utworzonego

Bardziej szczegółowo

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

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 1 z wykorzystaniem języka Java ME ćwiczenia 1 Budowa aplikacji MIDP utworzenie klasy dziedziczącej z klasy java.microedition.midlet.midlet Klasa musi posiadać przynajmniej trzy metody: startapp() inicjalizacja

Bardziej szczegółowo

Autor : Mateusz Kupczyk

Autor : Mateusz Kupczyk Technologie biznesu elektronicznego Java 2 Micro Edition J2ME Autor : Mateusz Kupczyk Plan prezentacji Wstęp J2ME - omówienie Szczegółowe omówienie profilu MIDP KVM MIDLet oraz MIDSuite Interfejs użytkownika,

Bardziej szczegółowo

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

M-biznes: Mobile Business. Realizacja aplikacji mobilnych w języku Java. Typy urządzeń przenośnych. Przykłady zastosowań M-biznes: Mobile Business Realizacja aplikacji mobilnych w języku Java E-business (Electronic Business): dostęp do komputerowych systemów sprzedaży towarów, usług i informacji za pomocą komputerów osobistych

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

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

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Piotr Orzechowski. Technologie Biznesu Elektronicznego

Piotr Orzechowski. Technologie Biznesu Elektronicznego Wydział Informatyki i Zarządzania Politechnika Wrocławska Cele prezentacji Urządzenia mobilne Rynek aplikacji dla urządzeń mobilnych Cele prezentacji 1. Zapoznanie się z charakterystyką rynku aplikacji

Bardziej szczegółowo

Multimedia JAVA. Historia

Multimedia JAVA. Historia Multimedia JAVA mgr inż. Piotr Odya piotrod@sound.eti.pg.gda.pl Historia 1990 rozpoczęcie prac nad nowym systemem operacyjnym w firmie SUN, do jego tworzenia postanowiono wykorzystać nowy język programowania

Bardziej szczegółowo

Programowanie obiektowe zastosowanie języka Java SE

Programowanie obiektowe zastosowanie języka Java SE Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z

Bardziej szczegółowo

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

Laboratorium z informatyki sem. III/ćw.11 Wydział Transportu PW 2017/18 INSTRUKCJA DO ĆWICZENIA 11 PIERWSZA APLIKACJA MOBILNA W JAVIE METODYKA POSTĘPOWANIA PRZY TWORZENIU MIDLETU Z TRZEMA EKRANAMI EKRAN 1 GUI WYSOKIEGO POZIOMU (KLASA SCREEN) EKRAN2 GUI WYSOKIEGO POZIOMU (KLASA

Bardziej szczegółowo

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

Laboratorium z informatyki sem. III/ćw.12 Wydział Transportu PW 2018/19 INSTRUKCJA DO ĆWICZENIA 12 PRZYKŁAD APLIKACJI MOBILNEJ W JAVIE METODYKA POSTĘPOWANIA PRZY TWORZENIU MIDLETU Z TRZEMA EKRANAMI EKRAN 1 GUI WYSOKIEGO POZIOMU (KLASA SCREEN) EKRAN2 GUI WYSOKIEGO POZIOMU (KLASA

Bardziej szczegółowo

Programowanie obiektowe. Wprowadzenie

Programowanie obiektowe. Wprowadzenie 1 Programowanie obiektowe Wprowadzenie 2 Programowanie obiektowe Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

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

Podstawy tworzenia aplikacji z wykorzystaniem języka Java ME ćwiczenia 3 z wykorzystaniem języka Java ME ćwiczenia 3 Wykorzystanie klasy List do tworzenie menu Klasa List - tworzenie list wyboru (EXCLUSIVE, MULTIPLE, IMPLICIT) Dodatkowe możliwości (dodatkowe komendy, pliki

Bardziej szczegółowo

STWORZENIE PRZYKŁADOWEJ

STWORZENIE PRZYKŁADOWEJ LABORATORIUM SYSTEMÓW MOBILNYCH STWORZENIE PRZYKŁADOWEJ APLIKACJI MOBILNEJ W J2ME I. Temat ćwiczenia II. Wymagania Wykonanie poprzedniego ćwiczenia III. Ćwiczenie 1. Stworzenie aplikacji Celem ćwiczenia

Bardziej szczegółowo

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

Bardziej szczegółowo

Java programowanie telefonów komórkowych Na podstawie: http://midlety.net/

Java programowanie telefonów komórkowych Na podstawie: http://midlety.net/ Java programowanie telefonów komórkowych Na podstawie: http://midlety.net/ Twórcy Javy reklamują ją słusznym hasłem: Wystarczy raz zapisać kod a program można uruchomić wszędzie Zalety JAVA: Ożywienie

Bardziej szczegółowo

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

Agata Gałecka, Martyna Sikorska, Tomasz Cebula. 28 kwietnia 2009 Politechnika Wrocławska Informatyka 28 kwietnia 2009 Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9 Agenda 1 do J2ME 2 J2ME 3 4 5 6 Profil 7 Klasa 8 Narzędzia 9 Agenda 1 do J2ME 2 J2ME 3

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w

Bardziej szczegółowo

Programowanie w języku Java

Programowanie w języku Java Programowanie w języku Java Wykład 12: Java Platform, Micro Edition (Java ME) Konfiguracje Standard dla pewnych grup urządzeń Connected Limited Devices Configuration (CLDC) procesor 16-bitowy, 192kB RAM

Bardziej szczegółowo

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński

Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 2 Jacek Rumiński 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.

Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

1 Wprowadzenie do J2EE

1 Wprowadzenie do J2EE Wprowadzenie do J2EE 1 Plan prezentacji 2 Wprowadzenie do Java 2 Enterprise Edition Aplikacje J2EE Serwer aplikacji J2EE Główne cele V Szkoły PLOUG - nowe podejścia do konstrukcji aplikacji J2EE Java 2

Bardziej szczegółowo

Wprowadzenie do projektu QualitySpy

Wprowadzenie do projektu QualitySpy Wprowadzenie do projektu QualitySpy Na podstawie instrukcji implementacji prostej funkcjonalności. 1. Wstęp Celem tego poradnika jest wprowadzić programistę do projektu QualitySpy. Będziemy implementować

Bardziej szczegółowo

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

WPROWADZENIE DO JĘZYKA JAVA

WPROWADZENIE DO JĘZYKA JAVA WPROWADZENIE DO JĘZYKA JAVA programowanie obiektowe KRÓTKA HISTORIA JĘZYKA JAVA KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny języka java. Pierwsza nazwa Oak (dąb). KRÓTKA HISTORIA JĘZYKA JAVA 1991 - narodziny

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 2, część 1 1 Język JAVA podstawy Plan wykładu: 1. Rodzaje programów w Javie 2. Tworzenie aplikacji 3. Tworzenie apletów 4. Obsługa archiwów 5. Wyjątki 6. Klasa w klasie! 2 Język

Bardziej szczegółowo

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

public void startapp() { } public void pauseapp() { } public void destroyapp(boolean unconditional) { } INSTRUKCJA DO ĆWICZENIA 2 METODYKA POSTĘPOWANIA PRZY TWORZENIU MIDLETU Z DWOMA EKRANAMI EKRAN 1 GUI WYSOKIEGO POZIOMU (KLASA SCREEN) EKRAN 2 GUI NISKIEGO POZIOMU (KLASA CANVAS) I Podstawowy szkielet MIDetu.

Bardziej szczegółowo

TECHNOLOGIE INFORMACYJNE

TECHNOLOGIE INFORMACYJNE TECHNOLOGIE INFORMACYJNE LAB - SEM IX Prowadzący zajęcia lab: Mgr inŝ. Zbigniew JANIK Dr inŝ. Józef OKULEWICZ Mgr inŝ. GraŜyna SITNICKA Wykład: Prof. Dr inŝ. Lucjan Grochowski TECHNOLOGIE INFORMACYJNE

Bardziej szczegółowo

OSGi Agata Hejmej 4.05.2009

OSGi Agata Hejmej 4.05.2009 OSGi Agata Hejmej 4.05.2009 Plan prezentacji Co to jest OSGi Jakie problemy rozwiązuje Opis standardu Przykładowa aplikacja Podsumowanie korzyści Co to jest OSGi? Standard, który pozwala na tworzenie wysoce

Bardziej szczegółowo

Dokumentacja do API Javy.

Dokumentacja do API Javy. Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu

Bardziej szczegółowo

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:

Bardziej szczegółowo

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki

Grafika i komunikacja człowiek komputer Laboratorium. Część 1: Wstęp do grafiki UNIWERSYTET RZESZOWSKI KATEDRA INFORMATYKI Opracował: mgr inż. Przemysław Pardel, dr hab. Bogdan Kwolek v1.01 2010 Grafika i komunikacja człowiek komputer Laboratorium Część 1: Wstęp do grafiki ZAGADNIENIA

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe. Roman Simiński  Wzorce projektowe Wybrane wzorce strukturalne Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec

Bardziej szczegółowo

Dokumentacja aplikacji Szachy online

Dokumentacja aplikacji Szachy online Projekt z przedmiotu Technologie Internetowe Autorzy: Jakub Białas i Jarosław Tyma grupa II, Automatyka i Robotyka sem. V, Politechnika Śląska Przedmiot projektu: Aplikacja internetowa w języku Java Dokumentacja

Bardziej szczegółowo

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1 Współbieżność i równoległość w środowiskach obiektowych Krzysztof Banaś Obliczenia równoległe 1 Java Model współbieżności Javy opiera się na realizacji szeregu omawianych dotychczas elementów: zarządzanie

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

Bardziej szczegółowo

JAVA W SUPER EXPRESOWEJ PIGUŁCE

JAVA W SUPER EXPRESOWEJ PIGUŁCE JAVA W SUPER EXPRESOWEJ PIGUŁCE Obiekt Obiekty programowe to zbiór własności i zachowań (zmiennych i metod). Podobnie jak w świecie rzeczywistym obiekty posiadają swój stan i zachowanie. Komunikat Wszystkie

Bardziej szczegółowo

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r. Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to

Bardziej szczegółowo

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

J2ME Część II. P.J.Podsiadły J2ME Część II P.J.Podsiadły Stany aplikacji Szkielet aplikacji import javax.microedition.midlet.*; public class MyMIDlet extends MIDlet { public MyMIDlet() { // konstruktor } public void startapp() { //

Bardziej szczegółowo

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż. Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Wstęp Programowanie w Javie 2 mgr inż. Michał Misiak Agenda Założenia do wykładu Zasady zaliczeń Ramowy program wykładu

Bardziej szczegółowo

Aplikacje w środowisku Java

Aplikacje w środowisku Java Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium

Bardziej szczegółowo

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna.

INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna. INSTRUKCJA DO ĆWICZENIA 13. Animacja wielowątkowa w aplikacjach JME. Gra logistyczna. I. UTWORZENIE SZKIELETU APLIKACJI 1. Uruchom środowisko programowania NetBeans. Utwórz aplikację typu JME zakładając

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007 Symulacja samochodu z kamerą stereowizyjną Krzysztof Sykuła 15 czerwca 2007 1 1 Opis wykonanego projektu Symulacja samochodu z kamerą stereowizyjną była pretekstem do napisania Engine u 3D, wykorzystującego

Bardziej szczegółowo

Android - wprowadzenie. Łukasz Przywarty 171018

Android - wprowadzenie. Łukasz Przywarty 171018 Android - wprowadzenie Łukasz Przywarty 171018 Ramowy plan prezentacji Czym jest Android: definicja, krótka historia. Architektura systemu. Architektura aplikacji. Właściwości systemu. Środowisko deweloperskie.

Bardziej szczegółowo

Architektura interfejsu użytkownika

Architektura interfejsu użytkownika Uniwersytet Jagielloński Interfejsy graficzne Wykład 3 Architektura interfejsu użytkownika Barbara Strug 2011 Hall of shame Hall of Shame Hall of Fame O czym dzisiaj Model Widok- Kontroler Hierarchia widoków

Bardziej szczegółowo

Programowanie w języku Java

Programowanie w języku Java Programowanie w języku Java Wykład 1: Wprowadzenie http://eclipse.elektron.pk.edu.pl/~sdeniziak/ Hasło: java2012 języku Java 1 Literatura Bruce Eckel, Thinking in Java edycja polska, wydanie. 4, Helion

Bardziej szczegółowo

Procesowa specyfikacja systemów IT

Procesowa specyfikacja systemów IT Procesowa specyfikacja systemów IT BOC Group BOC Information Technologies Consulting Sp. z o.o. e-mail: boc@boc-pl.com Tel.: (+48 22) 628 00 15, 696 69 26 Fax: (+48 22) 621 66 88 BOC Management Office

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Język Java część 2 (przykładowa aplikacja)

Język Java część 2 (przykładowa aplikacja) Programowanie obiektowe Język Java część 2 (przykładowa aplikacja) Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Java Java przykładowa

Bardziej szczegółowo

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Materiał pomocniczy do kursu Podstawy programowania Autor: Grzegorz Góralski ggoralski.com Pierwsze kroki Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura Co znaczy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych

Bardziej szczegółowo

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ

Java. Wykład. Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ Procesy i wątki Proces posiada samodzielne środowisko wykonawcze. Proces posiada własny zestaw podstawowych zasobów w czasie wykonywania; W szczególności, każdy proces ma własną przestrzeń pamięci. W uproszczeniu

Bardziej szczegółowo

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle EFEKTY KSZTAŁCENIA Wiedza Absolwent tej specjalności

Bardziej szczegółowo

Programowanie obiektowe - 1.

Programowanie obiektowe - 1. Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która

Bardziej szczegółowo

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami. UML a kod w C++ i Javie Projektowanie oprogramowania Dokumentowanie oprogramowania Diagramy przypadków użycia Przewoznik Zarzadzanie pojazdami Optymalizacja Uzytkownik Wydawanie opinii Zarzadzanie uzytkownikami

Bardziej szczegółowo

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski Adapter: opis Wzorce Strukturalne Tomasz Borzyszkowski Alternatywna nazwa: Wrapper (opakowanie) Rola obiektu Adapter: pełni wobec Klienta rolę otoczki, która umożliwia przetłumaczenie jego żądań na protokół

Bardziej szczegółowo

Programowanie w Internecie. Java

Programowanie w Internecie. Java Programowanie w Internecie Java Autor: dr inż. Zofia Kruczkiewicz Literatura: L. Lemay, R. Cadenhead P. Naughton Krzysztof Barteczko Boone Barry Java 2 dla każdego Podręcznik Języka Programowania Java

Bardziej szczegółowo

SEMINARIUM DYPLOMOWE

SEMINARIUM DYPLOMOWE Państwowa Wyższa Szkoła Zawodowa w Elblągu SEMINARIUM DYPLOMOWE Gry na urządzenia mobilne Tomasz Gromek, ASK 23-04-2008 r. Według słownika gra jest to zabawa towarzyska, w której występuje element współzawodnictwa,

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

Bardziej szczegółowo

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej

Interfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,

Bardziej szczegółowo

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia Bezpieczeństwo systemów komputerowych Java i JavaScript mgr Katarzyna Trybicka-Francik kasiat@zeus.polsl.gliwice.pl pok. 503 Java i JavaScript używane w celu dodania cech interaktywności do stron WWW mogą

Bardziej szczegółowo

Android, wprowadzenie do SDK

Android, wprowadzenie do SDK Android, wprowadzenie do SDK Wprowadzenie, konfguracja środowiska, narzędzia, pierwsze aplikacje. prowadzący: Piotr Szymański, student 3 roku informatyki Paweł Rejkowicz, student 1 roku Informatyki 1 Android

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP

Certyfikaty firmy Sun. Ścieżka certyfikacyjna dla Javy Egzamin SCJP Certyfikaty firmy Sun Ścieżka certyfikacyjna dla Javy Egzamin SCJP Ścieżka certyfikacyjna Java Podstawa J2EE J2ME J2SE Sun Certified Programmer Sun Certified Developer Sun Certified Web Component Developer

Bardziej szczegółowo

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Projektowanie, tworzenie aplikacji mobilnych na platformie Android Program szkolenia: Projektowanie, tworzenie aplikacji mobilnych na platformie Android Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Projektowanie, tworzenie aplikacji mobilnych

Bardziej szczegółowo

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r. Programowanie w Javie cz. 1 Wstęp Łódź, 24 luty 2014 r. Prawdy i mity o Javie Java jest techniką webową? (tak, platforma Java EE, aplety) Java jest bezpieczna? (tak, aplety, brak operowania na pamięci)

Bardziej szczegółowo

Schemat blokowy karty

Schemat blokowy karty Obsługa kart I/O Karta NI USB-6008 posiada: osiem wejść analogowych (AI), dwa wyjścia analogowe (AO), 12 cyfrowych wejść-wyjść (DIO), 32-bitowy licznik. Schemat blokowy karty Podstawowe parametry karty

Bardziej szczegółowo

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html

Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Aplikacje RMI https://docs.oracle.com/javase/tutorial/rmi/overview.html Dr inż. Zofia Kruczkiewicz wykład 4 Programowanie aplikacji internetowych, wykład 4 1 1. Zadania aplikacji rozproszonych obiektów

Bardziej szczegółowo

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

Podstawy otwartych języków programowania Język Java

Podstawy otwartych języków programowania Język Java Podstawy otwartych języków programowania Język Java Wiktor Wandachowicz Platforma Java Stworzona przez Sun Microsystems, Inc. J2SE Java 2 Standard Edition (platforma ogólnego przeznaczenia/desktop) J2EE

Bardziej szczegółowo

Struktury systemów operacyjnych

Struktury systemów operacyjnych Struktury systemów operacyjnych Jan Tuziemski Część slajdów to zmodyfiowane slajdy ze strony os-booi.com copyright Silberschatz, Galvin and Gagne, 2013 Cele wykładu 1. Opis usług dostarczanych przez OS

Bardziej szczegółowo

Podstawy Swing. Tomasz Borzyszkowski

Podstawy Swing. Tomasz Borzyszkowski Podstawy Swing Tomasz Borzyszkowski Wprowadzenie Już Java 1.0 zawierała bibliotekę AWT (Abstract Window Toolkit) służącą do oprogramowania GUI. Kolejne wersje Java również wspierały to rozwiązanie. Swing

Bardziej szczegółowo

Szczegółowy opis zlecenia Plugin do oprogramowania dlibra. Szczegółowy opis zlecenia dla Pluginu do oprogramowania dlibra.

Szczegółowy opis zlecenia Plugin do oprogramowania dlibra. Szczegółowy opis zlecenia dla Pluginu do oprogramowania dlibra. Projekt Śląska Internetowa Biblioteka Zbiorów Zabytkowych współfinansowany przez Unię Europejską ze środków Europejskiego Funduszu Rozwoju Regionalnego w ramach Programu Operacyjnego Infrastruktura i Środowisko

Bardziej szczegółowo

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt 1. Wprowadzenie Wymagania wstępne: wykonanie ćwiczeń Adresacja IP oraz Implementacja aplikacji sieciowych z wykorzystaniem interfejsu gniazd

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44 Zaawansowane aplikacje internetowe EJB 1 Rozróżniamy dwa rodzaje beanów sesyjnych: Stateless Statefull Celem tego laboratorium jest zbadanie różnic funkcjonalnych tych dwóch rodzajów beanów. Poszczególne

Bardziej szczegółowo

Enkapsulacja, dziedziczenie, polimorfizm

Enkapsulacja, dziedziczenie, polimorfizm 17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja

Bardziej szczegółowo