Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID

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

Download "Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID"

Transkrypt

1 Politechnika Opolska Wydział Elektrotechniki, Automatyki i Informatyki Instytut Układów Elektromechanicznych i Elektroniki Przemysłowej PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne Informatyka REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID Promotor: dr inż. Grzegorz Paweł Korbaś Pracę wykonał: Wojciech STEC nr albumu: Opole, styczeń 011

2 REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID S T R E S Z C Z E N I E W pracy przedstawiony został opis realizacji oraz sposób działania parsera wyrażeń matematycznych, na podstawie programu oraz biblioteki własnego autorstwa, napisanych w języku Java oraz skompilowanych pod platformę mobilną Google Android. Program, który można uruchomić wyłącznie na maszynie wirtualnej Javy działającej na systemie operacyjnym Google Android jest tylko nakładką graficzną, zawierającą edytor wyrażeń matematycznych oraz klawiaturę numeryczną, na bibliotekę, która pełni tutaj główną rolę całego systemu zawierając w sobie wszelkie funkcje matematyczne i jest w pełni przenośna na każdą platformę oraz system operacyjny. PARSER IMPLEMENTATION OF MATHEMATICAL EX- PRESSIONS ON ANDROID PLATFORM S U M M A R Y This document presents a description and how work the mathematical expression parser based on the program and the library own authorship, written in Java and compiled into Google Android platform. A program that can be run exclusively on a Java virtual machine running on Google's Android platform is just a graphical frontend to the library, which serves here as a really key role the entire system and is fully portable to any platform and operating system.

3 SPIS TREŚCI 1. CEL I ZAKRES PRACY WSTĘP NARZĘDZIA ORAZ ŚRODOWISKO PROGRAMISTYCZNE ANDROID SDK PROGRAM ECLIPSE JĘZYK PROGRAMOWANIA JAVA SYSTEM OPERACYJNY ANDROID WIRTUALIZACJA ŚRODOWISKA ANDROID PROJEKT KALKULATOR PLUS ISTNIEJĄCE ROZWIĄZANIA PROJEKT INTERFEJSU UŻYTKOWNIKA MENU GŁÓWNE APLIKACJI KONFIGURACJA PROGRAMU OKIENKO INFORMACYJNE OKNO HISTORIA ORAZ OBSŁUGIWANE FUNKCJE STRUKTURA FUNKCJI W APLIKACJI BIBLIOTEKA OBLICZENIA OKNO GŁÓWNE APLIKACJI PODSUMOWANIE LITERATURA

4 1. CEL I ZAKRES PRACY Celem pracy było stworzenie programu oraz biblioteki na mobilną platformę Google Android, wykonywujących podane przez użytkownika dane wejściowe oraz wyświetlenie wyniku w postaci graficznej, jak i listy kolejnych wykonanych obliczeń. Dane nie muszą być prawidłowym wyrażeniem matematycznym, ponieważ jedną z dodatkowych funkcji biblioteki jest znalezienie oraz zaznaczenie użytkownikowi popełnionych błędów. Biblioteka programu została całkowicie napisana w języku Java, dzięki czemu jest między-platformowa i można ją umieszczać w projektach napisanych dla każdego systemu operacyjnego (mającego zainstalowaną własną maszynę wirtualną Javy). Zostanie ona w przyszłości udostępniona innym programistom wraz z jej specyfikacją, dzięki czemu w łatwy sposób będą ją mogli implementować w swoich projektach. Biblioteka została zaopatrzona w algorytmy wykonujące szybkie operacje na dużych liczbach [6]. Program komunikuje się z biblioteką w celu przesłania jej wpisywanych przez użytkownika wyrażeń, a w zamian oczekuje zwrócenie graficznej interpretacji wyrażenia zawierającej wyniku (w przypadku, gdy wyrażenie będzie skończone oraz prawidłowe), wskazania ewentualnych miejsc, w których znajdują się błędy oraz osobnej tablicy, zawierającej listę kolejnych wykonanych obliczeń, które następnie można zapisać do pliku tekstowego i przekazać do innego urządzenia. 4

5 . WSTĘP W dzisiejszych czasach rozwiązanie skomplikowanych obliczeń łatwiej jest wykonać za pomocą kalkulatorów, niż pisemnie za pomocą kartki oraz długopisu. Istnieją różne rodzaje kalkulatorów, od tych popularnych, służących do domowego użytku zawierających jedynie cztery podstawowe typy działań dodawanie, odejmowanie, mnożenie i dzielenie aż do naukowych, zawierające możliwość wykonywania skomplikowanych działań. Autor nie spotkał się do tej pory z klasyfikacją innego typu kalkulatorów, a mianowicie wyświetlającego kolejność wykonanych działań. Jest to opcja przydatna szczególnie osobom uczącym się, którzy korzystają z kalkulatora jako narzędzia do rozwiązywania skomplikowanych działań matematycznych czy po prostu takich, które wymagają od użytkownika wiedzy na temat kolejności wykonywania działań, a której on nie ma. W programie Kalkulator Plus zostały wdrożone różne funkcje matematyczne, których obliczanie zostało zaimplementowane według wzorów znajdujących się w [3]. Właśnie z powodu największego zainteresowania takim typem programów przez osoby uczące się, można by bez problemu taki typ programu nazwać szkolnym. Autor nie spotkał się do tej pory z żadnym urządzeniem, które umożliwiałoby wykonywanie takich obliczeń prawdopodobnie z powodu ilości pamięci instalowanych w dotychczas znanych typu kalkulator. Istnieją już natomiast strony internetowe, umożliwiające wykonywanie takich działań. Niestety tutaj pojawia się problem mobilności, ponieważ do obsługi tych stron potrzebne jest połączenie z Internetem, a co najważniejsze posiadanie komputera, co wyklucza całkowicie mobilność. Można by skorzystać z laptopa wtedy o mobilności możemy mówić, lecz takie rozwiązanie będzie nieodpowiednie dla użytkowników, próbujących wykonywać obliczenia w szkole czy na uczelni. Istniejące na rynku smartfony w teorii mogły by umożliwiać otwieranie takich stron w swoich przeglądarkach Internetowych, lecz są one napisane w różnych językach programowania (jak np. Java), do obsługi których nawet telefony potrzebują specjalnych wtyczek (ang. Plug-ins). Można się natknąć na aplikacje pośredniczące w przekazywaniu wpisanych przez użytkownika wyrażeń do aplikacji Internetowej 1, lecz tutaj pojawia się problem z połączeniem Internetowym, które nie zawsze jest dostępne, a nawet jeśli, to odebranie wyniku może wiązać się z dosyć dużymi dodatkowymi kosztami. Najlepszym w tym wypadku rozwiązaniem jest program, który umożliwia wykonywanie większości problemów matematycznych bez konieczności połączenia z Internetem, na urządzeniu o niewielkich rozmiarach i bez potrzeby korzystania z ogromnej ilości pamięci i działający na wszystkich dotychczas wyprodukowanych urządzeniach mobilnych i udostępniający dodatkowe funkcjonalności dla programistów tworzących podobne rozwiązania, dlatego autor zdecydował się na platformę mobilną Google Android

6 3. NARZĘDZIA ORAZ ŚRODOWISKO PROGRAMI- STYCZNE W niniejszym rozdziale zostały opisane wykorzystane narzędzia programistyczne wraz z językiem programowania oraz środowiskiem uruchomieniowym pisanych aplikacji. Autor niniejszej pracy nie miał wyboru języka programowania pod system Android, ponieważ Java jest jedynym oficjalnie wspieranym językiem. Wszelkie programy uruchamiane na systemie Android są uruchamiane w osobnych wirtualnych maszynach, które interpretują jedynie język Java. Istnieją już oczywiście próby napisania aplikacji, które będą tłumaczyły kod napisany w innym języku na kod języka Java, a następnie na język wirtualnej maszyny, lecz jeżeli sama Java jest wolna, to takie rozwiązanie będzie katastrofą. W każdym razie, takie rozwiązania nie są wspierane przez Google, twórcę systemu Android. Zanim będzie możliwość zainstalowania niżej wymienionych narzędzi, należy zaopatrzyć się w JDK (ang. Java Development Kit) w wersji co najmniej 5, którą można pobrać z oficjalnej strony Sun Java 3. Pakiet ten jest potrzebny, ponieważ wszystkie narzędzia napisane zostały właśnie w tym języku, a wszystkie niżej wymienione narzędzia są wymaganymi do pracy nad programami dla systemu Android ANDROID SDK Android SDK (ang. Software Development Kit) jest jednym z podstawowych narzędzi, które należy zainstalować przed rozpoczęciem pracy z programem Eclipse i pisaniem aplikacji pod system Android. Znajduje się tam między innymi odpowiedni kompilator, dzięki któremu będzie możliwe uruchomienie aplikacji w jej naturalnym środowisku. Instalacja i konfiguracja tego pakietu sprowadza się jedynie do pobrania jego pliku instalacyjnego (lub spakowanego archiwum) z oficjalnej strony oprogramowania 4 i uruchomienie go. 3.. PROGRAM ECLIPSE Eclipse jest platformą typu framework napisaną w języku Java, którą można uruchomić na praktycznie każdym systemie operacyjnym, posiadającym zainstalowaną wirtualną maszynę Java (która rozpowszechniana w tym momencie jest na praktycznie każdym systemie operacyjnym). Schemat aplikacji został przedstawiony na Rys 3.1. Sama aplikacja nie dostarcza żadnych narzędzi służących do tworzenia kodu i budowania aplikacji, oferuje jednak obsługę wtyczek rozszerzających jej funkcjonalność, umożliwiających m.in. rozwijanie aplikacji w językach Java, C/C++, PHP, tworzenie GUI (ang

7 Graphical User Interface, pol. Graficzny Interfejs Użytkownika) i wiele innych ( Rys 3.1 Schemat interfejsu aplikacji Eclipse (źródło: Deweloperzy zadbali o to, aby aplikacja była dostarczona w takiej formie, jakiej użytkownicy od niej oczekują, a mianowicie przygotowane są odpowiednie paczki instalacyjne zawierające wszystkie potrzebne narzędzia do rozpoczęcia pracy z wybranym językiem programowania, takie jak kompilatory i sprawdzanie poprawności kodu. Dla celów pisania niniejszej pracy, autor pobrał z oficjalnej strony internetowej projektu Eclipse wersję programu Eclipse IDE for Java Developers, która standardowo zawiera wszelkie wtyczki potrzebne do pisania aplikacji w języku Java. Środowisko jest gotowe do pisania aplikacji w języku Java, lecz pod systemy desktopowe. W celu rozpoczęcia pracy nad tworzeniem oprogramowania pod system mobilny Android, należy pobrać dodatkową wtyczkę ADK (ang. Android Development Kit), który znacznie ułatwia pisanie takich aplikacji, ponieważ posiada m.in. narzędzia do debugowania (ang. debugging, pol. odrobaczanie, tutaj: usuwanie błędów) oraz do tworzenia graficznego interfejsu użytkownika. W celu przystąpienia do pobrania ADK, należy w programie Eclipse otworzyć menu Help i wybrać opcję Install New Software.... W nowym oknie, w polu Work with: należy wpisać adres internetowy do wtyczki ADK i zatwierdzić klawiszem Enter. Po chwili zostanie pobrana lista oprogramowania dostępnego pod podanym adresem internetowym (taka, jak widoczna na Rys 3.). Rys 3. Lista wtyczek oraz ich wersji dostępnych do pobrania, znajdujących się pod wpisanym adresem serwera internetowego. Źródło własne. 7

8 Po zakończeniu pobierania najlepiej zrestartować program Eclipse, a po ponownym uruchomieniu skonfigurować odpowiednio pobrane wtyczki. W tym celu należy w menu Window wybrać opcję Preferences i w sekcji Android wpisać ścieżkę do zainstalowanego SDK Androida w polu SDK Location JĘZYK PROGRAMOWANIA JAVA Obiektowy język programowania Java został stworzony w firmie Sun Microsystem (została ona przejęta przez firmę Oracle w 010 roku) głównie przez Jamesa Goslinga i przedstawiony światu w 1995 roku razem z JVM (ang. Java Virtual Machine, pol. Maszyna Wirtualna Java). Język ten został stworzony zapożyczając niektóre jej elementy składni z popularnego C++ 5, natomiast sposób uruchamianie, tzn. poprzez maszynę wirtualną czy sposób automatycznego zwalniania pamięci ze Smalltalk 6. Od początku firma Sun wyznaczyła najważniejsze cechy Javy jako platformy: - powinien być prosty w użyciu, z "przyjazną" składnią, - powinien bezpieczny i "solidny", - powinien być neutralny architektonicznie i łatwy w rozszerzeniu, - powinien zapewniać wysoką wydajność, - powinien być interpretowany, wielowątkowy i dynamiczny. Język faktycznie posiada składnię uproszczoną w stosunku do C++. Autorzy zrezygnowali również z podwójnej możliwości dostępu do zmiennych, tzn. przez wartość i referencję stosując przekazywanie obiektów przez referencję. Java została zaopatrzona w kilka mechanizmów zabezpieczających programistów przed najczęściej popełnianymi błędami. Jednym z nich jest automatyczne zwalnianie pamięci, dzięki czemu programista nie musi pamiętać o usuwaniu nieużywanych obiektów. Kolejnym jest sposób obsługi wyjątków i wydzielenie grupy wyjątków wymaganych do obsłużenia przez programistę. Ostatnim istotnym elementem jest tzw. security policy (pol. polityka bezpieczeństwa) czyli zestaw uprawnień pozwalających na definiowanie uprawnionych działań dla programów na danej JVM. Hasłem reklamowym Javy było "napisz raz uruchom wszędzie" (ang. Write once, run anywhere 7, WORA). Jest to faktycznie ogromna zaleta tego języka, ponieważ rozgraniczone zostały elementy platformy systemowej od elementów dostępnych bez konieczności wywołań systemowych. Ograniczyło to także ilość kodu, który trzeba implementować w zależności od platformy, na której program jest wykonywany. Teoretycznie implementacja wirtualnej maszyny JVM powinna wymagać tylko systemowych funkcji I/O (ang. Input / Output, pol. Wejście / Wyjście), lecz w praktyce implementowane są również niektóre operacje, takie jak Math.sqrt(). Na samym początku nowo utworzony język był uważany z prosty i powolny i wymagający dużej ilości pamięci do wykonywania, jednak w późniejszym czasie głównie poprzez kompilatora JIT 8 (ang. Just In Time) w kolejnych aktualizacjach spowodowano, iż Java stała się językiem w którym niektóre problemy programistyczne można było rozwiązać w znacznie prostszy sposób niż w C, jednak nadal Java nie należy do najszybciej interpretowanych języków w informatyce

9 System Android został tak naprawdę wyposażony w maszynę wirtualną Dalvik, a nie tak jak na innych systemach JVM. Dalvik zbudowany jest w bardzo podobny sposób co JVM, lecz używa innej składni kodu bytowego [17]. Jest ona napisana tak, aby działała prawidłowo na urządzeniach z małą ilością pamięci RAM oraz słabymi procesorami, aby płynność wczytywania i działania takich aplikacji nie odbiegała zbyt daleko od tych, które są pisane pod komputery klasy PC. Taki stan rzeczy nie podoba się firmie Oracle, aktualnemu właścicielowi Javy która twierdzi (zresztą słusznie), iż Google pozbawiło jego produkt przenośności i wieloplatformości, ponieważ aplikacji napisanych pod Android nie można uruchomić na żadnym innym urządzeniu, posiadającym JVM SYSTEM OPERACYJNY ANDROID Google Android jest systemem operacyjnym o otwartym kodzie źródłowym stworzonym dla urządzeń mobilnych, takich jak telefony komórkowe oraz tablety, aktualnie rozwijany przez firmę Google. System jest bardzo młody został zaprojektowany w 005 roku przez mało znaną firmę o takiej samej nazwie, jaką nadano teraz stworzonemu systemowi. Pierwsza publiczna wersja tego systemu wraz z pierwszym obsługującym go systemem została wydana 30 kwietnia 009 roku również w Polsce w tym samym czasie. System stale zyskuje coraz większą popularność, ponieważ coraz więcej urządzeń jest w niego wyposażanych. Według raportu 9 opublikowanego przez Grupę NPD, w zeszłym roku udział systemu Android w rynku telefonów klasy smartfon wynosił 8% i był większy niż udział iphone a (1%), natomiast w lipcu tego roku statystycznie urządzeń z systemem od Google na rynku jest aż 4% [15]. Rys 3.3 Architektura systemu Android. Źródło :

10 Struktura systemu Android została zbudowana z kilku warstw, które zostały przedstawione na Rys 3.3. Budowa taka jest prawdopodobnie spowodowana tym, iż jest on stworzony w oparciu o system Linux, którego struktura wygląda bardzo podobnie. Wszystkie dotychczas oficjalnie wydane wersje systemu Android bazują na jądrze systemu Linux w wersji.6, które na potrzeby nowego systemy zostało wzbogacone przede wszystkim o pełną obsługę sieci GSM, o specyficzne sterowniki dla urządzeń telefonicznych, a także o zaawansowany mechanizm komunikacji między-procesorowej. Na systemie tym została zainstalowana wirtualna maszyna Dalvik, która jest wersję zoptymalizowaną na systemy mobilne wirtualnej maszyny Javy. Maszyna Dalvik jest tak napisana, aby na urządzeniu mogło efektywnie pracować wiele kopii tej maszyny. Jest to także zbiór bibliotek i interfejsów programistycznych 10, które mogą zostać wykorzystane przez programistów Java. Framework dostarczony wraz z systemem daje dostęp do wielu elementów systemu takich jak informacje o urządzeniu, lokalizacji, alarmów czy powiadomień. System Android jest to także zbiór aplikacji, które dystrybuowane są w formie pakietów.apk. Aplikacje pisane są w języku Java i uruchamiane w osobnych procesach w maszynach wirtualnych Dalvik co jest bezpiecznym posunięciem, ponieważ osobne instancje wirtualnej maszyny uniemożliwiają dostępu jednej aplikacji do pamięci drugiej. Jeżeli chodzi o architekturę, to aplikacje są tak naprawdę zbiorami komponentów, zarządzanych przez system. Najważniejszym z nich są tzw. Activities. Termin Activity można rozumieć jako wyświetlany ekran w aplikacji. Do niego przypisuje się widoki (komponenty View), które zawierają zbiór innych kontrolek tworzących interfejs graficzny dla użytkownika programu. To właśnie Activity decyduje, który z widoków jest aktualnie wyświetlany na ekranie urządzenia. Obiekty widoków można tworzyć zarówno w kodzie jak i przy pomocy szablonów <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="pl.weer.kalkulator" android:versioncode="4" android:versionname=" "> <uses-sdk android:minsdkversion="10" /> <uses-permission android:name="android.permission.write_external_storage"/> <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> <activity android:name=".kalkulatoractivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name=".mypreferences" android:label="@string/app_name" /> </application> </manifest> Listing 3.1 Plik AndroidManifest.xml, który odpowiada w programie Kalkulator Plus za najważniejsze ustawienia aplikacji. Źródło własne. 10 Android Developers, Package Index [online] [dostęp 14 grudnia 011]. Dostęp w Internecie 10

11 Tworzenie interfejsu użytkownika przypomina w tym drugim przypadku bardziej tworzenie stron HTML niż programowanie interfejsu w Javie znane z bibliotek takich jak Java Swing. Szablony te zapisywane są w plikach XML i dostępne są jako zasób w naszej aplikacji. Każda aplikacja musi posiadać plik Manifest, który służy do wyspecyfikowania z jakich komponentów składa się aplikacja, który z nich powinien zostać uruchomiony po włączeniu aplikacji oraz jakich specjalnych uprawnień wymaga aplikacja (spis uprawnień dostępny jest także w [1] oraz [4]). Przedstawiony w powyższym listingu (Listing 3.1) został plik manifest używany w aplikacji Kalkulator Plus. Oprócz opisanej wyżej zawartości, posiada on także informacje na temat wersji aplikacji (linijka 5), czy minimalnej wersji systemu Android, w której aplikacja może pracować (linijka 6), nazwę aplikacji i jej ikonę (linijka 9-10, stałe app_name oraz icon) oraz listę activity, które posiada aplikacja wraz z ich nazwami (linijki 10 18). W linijce siódmej został dodany element, który odpowiedzialny jest za przydzielanie aplikacji odpowiednich uprawnień [13]. Użyta tutaj stała odpowiedzialna jest za możliwość zapisywania danych na zewnętrznej karcie pamięci. Podczas instalacji aplikacji zostaje wyświetlone okienko z listą uprawnień, z których chce skorzystać aplikacja (Rys 3.4). Rys 3.4 Instalacja aplikacji Kalkulator Plus wykaz uprawnień, do których aplikacja chce mieć dostęp. Źródło własne. Dodanie listy uprawnień do aplikacji jest czynnością bardzo ważną, ponieważ bez tego aplikacja się zainstaluje, a nawet uruchomi, lecz dostęp do funkcji, która wymaga uprawnień będzie nie możliwe, a aplikacja nawet o tym nie poinformuje. Jest to bardzo dobra funkcja systemu, ponieważ żadna aplikacja nie ma dostępu do ważnych ustawień i danych w telefonie bez świadomego zezwolenia samego użytkownika programu. 11

12 4. WIRTUALIZACJA ŚRODOWISKA ANDROID Wirtualizacja środowiska Android jest potrzebna twórcy oprogramowania, który chce przetestować napisaną aplikację w różnych środowiskach systemu przy różnych konfiguracjach, nie posiadając fizycznych urządzeń spełniających jego wymagań. Twórca zazwyczaj posiada tylko jedno urządzenie, na którym testuje prawdziwe zachowanie aplikacji, ponieważ emulatory nigdy nie zastąpią prawdziwego połączenia telefonicznego, wysłania smsa czy połączenie z GPS. Za taki stan rzeczy odpowiada brak środków finansowych początkujących programistów oraz różnorodność urządzeń, które pojawiły się i wciąż pojawiają się na rynku. Każde z nich posiada inną rozdzielczość ekranu (także inny jego rozmiar co sprawia, że dwa ekrany o tych samych rozdzielczościach lecz o różnych wielkościach zupełnie inaczej są obsługiwane), inny procesor i wersję systemu operacyjnego. Okazuje się jednak, iż nie tylko z powodu braku odpowiednich urządzeń wykorzystuje się emulatory. Mogą się one także przydać podczas prezentacji napisanego oprogramowania, ponieważ nie wszystkie smartfony posiadają wyjścia cyfrowe wideo, a jeżeli już posiadają to nie wszystkie urządzenia wyświetlające obraz posiadają odpowiednie wejścia. W urządzeniach z systemem Android stosuje się wyjścia HDMI typu D (opis tego standardu znajduje się pod adresem więc urządzenia wyświetlające muszą posiadać również wejście HDMI dowolnego typu (przy zastosowaniu tzw. przejściówki). Zestaw oprogramowania służącego do pisania programów na platformę Android zawiera między innymi emulator tego środowiska [1], który jest niestety bardzo powolny, co jest jego największym minusem. Jest on jednak bardzo dobrym rozwiązaniem dla programistów, którzy tworzą duże oprogramowanie, które docelowo powinno działać na wszelakiej maści urządzeniach o różnych rozdzielczościach ekranu, mocy procesorów oraz układach graficznych. Emulator ten pozwala utworzyć różne profile reprezentujące różne modele telefonów z ich indywidualnymi konfiguracjami oraz z różnymi wersjami systemu Android. Aktualnie obsługuje aplikacje napisane pod Android wersję (najnowszy ROM). Kolejną metodą emulacji dowolnej wersji systemu Android znalezioną przez autora, jest pobranie odpowiedniego ROMu ze strony i zainstalowanie go na dysku komputera, bądź na wirtualnej maszynie. Na podanej stronie znajdują się wersje systemu Android od 1.6 do 4.0.1, które zostały zoptymalizowane pod procesory x86 i są gotowe do zainstalowania na nich. Niektóre zostały przeportowane na odpowiedni sprzęt, np. na netbooki z rodziny ASUS Eee PC i ma standardowo zainstalowane wszystkie sterowniki, które są potrzebne do korzystania ze wszystkich funkcji tego systemu operacyjnego. Minusem tego rozwiązania jest to, iż nadal jest to wirtualna maszyna (bądź instalacja na dysku twardym, bez możliwości przełączania się do systemu Windows, w celu wgrania odpowiednich aplikacji na tenże emulator) i nie działa z taką wydajnością, z jaką pracuje oryginalny system na urządzeniu fizycznym. Kolejnym sprawdzonym przez autora emulatorem był program YouWave (wersja testowa do pobrania za darmo ze strony który niestety jest płatny, lecz można go testować za darmo przez 30 dni. Niestety, obsługuje on tylko system Android w wersji.3, co dla developerów jest dużym problemem. Dla autora był by to odpowiedni emulator gdyby nie fakt, że jest to nic innego jak nakładka na popularny program do emulacji 1

13 wirtualnych systemów operacyjnych Oracle VirtualBox. Co prawda został zmodyfikowany specjalnie dla testowania aplikacji w ten sposób, iż posiada pasek z dostępnymi aplikacjami, które można uruchomić po dwukrotnym kliknięciu na nie. Zostaną wtedy załadowane do wirtualnej maszyny, lecz nadal pozostaje problem iż jest to powolna, wirtualna maszyna oraz co gorsza nie jest to darmowe rozwiązanie. Ostatnim testowanym rozwiązaniem była aplikacja o nazwie Bluestack App Player (dostępna do pobrania ze strony producenta Jest ona zupełnie innego typu niż pozostałe, ponieważ nie jest to wirtualna maszyna ani emulator całego systemu operacyjnego. Jest to po prostu program instalowany pod Microsoft Windows 7 (jak na razie tylko na ten system operacyjny), który zawiera wszystkie potrzebne biblioteki do uruchamiania programów napisanych w Javie i skompilowanych pod platformę Android. Po instalacji aplikacja zawiera 11 preinstalowanych programów, które uruchamiają się bardzo szybko i pracują bardzo płynnie, a są wśród nich również gry wymagające od urządzenia dużej mocy obliczeniowej. Minusem tego rozwiązania jest sposób instalacji nowych programów, ponieważ aby to uczynić, musimy mieć wcześniej zainstalowaną daną aplikacje na urządzeniu fizycznym, pracującym pod kontrolą systemu Android w dowolnej wersji. Powinniśmy także pobrać ze sklepu Android aplikację o nazwie BlueStacks Cloud Connect (dostępna za darmo z aplikacji Android Market zainstalowanej standardowo na każdym urządzeniu z systemem Android), która będzie pośredniczyła między wymianą aplikacji pomiędzy systemem Android a programem BlueStacks App Player. Po uruchomieniu aplikacji na mobilnym systemie, zostaniemy poproszeni o podanie kodu PIN do aplikacji. W celu jego uzyskania, należy wejść na odpowiednią stronę Internetową ( przejść na zakładkę Cloud Connect (pol. połączenie przez chmurę [14]), gdzie zostanie on dla nas wygenerowany. Po wpisaniu go na urządzeniu przenośnym, zostaniemy przeniesieni do listy aplikacji zainstalowanych w naszym systemie. Po zaznaczeniu potrzebnych aplikacji należy kliknąć przycisk Synchronize (pol. synchronizuj) i odświeżyć stronę internetową, gdzie po chwili pokażą się wybrane przez nas aplikacje. Teraz już wystarczy wybrać przy nich przycisk Subscribe (pol. subskrybuj), a po chwili zostaną przesłane do aplikacji zostanie to potwierdzone poprzez wyświetlenie dymku z odpowiednią informacją na pulpicie systemu Windows w obszarze powiadomień, obok zegarka. Po uruchomieniu aplikacji na komputerze, aplikacja zostanie automatycznie załadowana do listy aplikacji i będzie możliwe jej uruchomienie poprzez kliknięcie na niej myszką. Wszystkie aplikacje w programie BlueStacks App Player uruchamiane są w trybie landscape (pol. tryb krajobrazowy, pozioma orientacja ekranu) i jak na razie nie można zmienić tego stanu rzeczy. Być może zmieni się to w końcowej wersji aplikacji, ponieważ aktualna jest tylko w fazie Alpha i działa jedynie na systemach Windows. Program BlueStacks App Player wykonuje aplikacje bardzo płynnie i wydaje się, iż jest on na ten moment najlepszym programem do uruchamiania aplikacji napisanych dla systemu Android. Co prawda, w żadnym miejscu na stronie, ani w specyfikacji aplikacji nie jest napisane, pod jakie wersje systemu Android muszą być napisane uruchamiane aplikacje, lecz autor nie spotkał się z nieprawidłowo działającą emulowaną aplikacją w programie Blue- Stacks App Player, dlatego jego wybór padł właśnie na ten program. 13

14 5. PROJEKT KALKULATOR PLUS Projekt został stworzony spełniając zadane wcześniej cele i założenia pracy, na które składają się przede wszystkim łatwość i szybkość obsługi, możliwie jak największa liczba docelowych urządzeń oraz darmowy dostęp do aplikacji i udostępnianych przez niej bibliotek, ponieważ użytkownikami docelowymi z założenia powinni być przede wszystkim osoby uczące się. Aplikacja została zaprojektowana tak, aby można ją było uruchomić na smartfonach pracujących pod kontrolą systemu Google Android, ponieważ w ostatnich czasach jest to najpopularniejszy system mobilny [7], dzięki czemu zostanie spełnione główne założenie, jakim jest dostępność dla jak największej liczby użytkowników. Google wraz z wydawaniem kolejnych wersji systemu operacyjnego zwiększa stabilność oraz szybkość jego pracy, tak więc docelową wersją systemu, pod którym będzie pracowała aplikacja jest wersja.3.x o nazwie kodowej Gingerbread [16] (pol. piernik) i nowsze ISTNIEJĄCE ROZWIĄZANIA Próżno szukać w Internecie aplikacji matematycznych, które pokazują krok po kroku jak rozwiązać dane wyrażenie. Autor podczas przeszukiwania Internetu spotkał się tylko z jedną stroną Internetową ( spełniającą ten warunek (i drugą taką samą i tych samych autorów, lecz w języku angielskim ale interfejs graficzny jest bardzo mało intuicyjny, a edytor wyrażeń i obsługiwane funkcje również nie powalają na kolana. Jednak wyświetlanie kolejnych kroków obliczeń jest tylko dodatkową opcją projektu Kalkulator Plus. Główną funkcją jest odpowiednie przetwarzanie wyrażeń matematycznych i podawanie prawidłowego wyniku tutaj konkurencja już jest ogromna. Przykładem może być tutaj chociażby najpopularniejsza wyszukiwarka internetowa - Google, która bardzo dobrze radzi sobie z rozwiązywaniem równań matematycznych. Kolejnym przykładem, może być program Wolfram Mathematica (dostępny do pobrania na stronie który jest potężnym narzędziem służącym do wykonywania zaawansowanych obliczeń naukowych. Możemy do tej listy dodać także program Matlab (strona główna programu z jego wieloma dodatkowymi modułami rozszerzającymi jego funkcjonalność. Przytoczone programy mają kilka minusów w pierwszym wypadku potrzebny jest dostęp do Internetu, a w dwóch pozostałych dostęp do komputera. Oczywiście te ostatnie są programami płatnymi, a ich funkcje są aż za bardzo zaawansowane dla zwykłego użytkownika, który ich po prostu nie będzie używał. Autor niniejszej pracy na pewno nie dokonał by zakupu produktu, których funkcji w pełni nie wykorzysta zwłaszcza mając do wyboru darmowe programy o tych samych funkcjach. Przytoczone dotychczas programy są rozwiązaniami stacjonarnymi, niemającymi swoich odpowiedników na urządzenia mobilne. Na urządzenia z Google Android jest dostępnych mnóstwo programów do obliczeń, lecz posiadając one zbyt mało funkcji, niektóre funkcje w ogóle nie działają, a niektóre programy nie są aktualizowane od wieków co sprawia, że posiadają wiele znalezionych już przez użytkowników błędów o czym można przeczytać m.in. w komentarzach dostępnych do danych aplikacji ( Jeśli połączyć zalety wszystkich tych programów, to było by wtedy nad czym dyskutować, 14

15 niestety tak się nie da. Większość dostępnych programów jest płatnych (co widać przeglądając listę aplikacji w programie Android Market), tak więc można albo wszystkie kupić albo ściągnąć z Internetu pirackie wersje, co jest niezgodne z prawem. Istnieje jeszcze jeden typ kalkulatorów, a mianowicie kalkulatory jako samodzielne urządzenia. Głównymi ich wadami jest cena, która często jest dosyć wysoka, wymiary, które są bardzo duże, brak możliwości dodawania nowych funkcji, przez co trzeba kupować coraz to nowsze urządzenia, aby móc korzystać z nowszych funkcji. 5.. PROJEKT INTERFEJSU UŻYTKOWNIKA Interfejs użytkownika powstał z myślą o jak najbardziej intuicyjnej możliwości obsługi programu. Posiada edytor wyrażeń matematycznych, który był wzorowany na przeglądniętych programach na PC oraz Android i programową klawiaturę numeryczną. W związku z różnymi typami urządzeń, na które docelowo ma działać aplikacja, różniącymi się między sobą rozdzielczościami ekranu oraz tym, czy posiadają klawiaturę czy nie, a także szybkością procesora, aplikacja miała zajmować bardzo mało pamięci w telefonie i umieć dostosować się do odpowiedniej rozdzielczości oraz orientacji ekranu, co udało się osiągnąć w stu procentach. Na poniższym rysunku (Rys 5.1) został przedstawiony podstawowy wygląd aplikacji, uruchomionej na fizycznym urządzeniu. Rys 5.1 Wygląd okna głównego aplikacji Kalkulator Plus, pokazujący się standardowo chwilę po jej uruchomieniu na smartfonie w orientacji poziomej. Źródło własne. Edytor wyrażeń matematycznych to fragment ekranu, który odpowiedzialny jest za wyświetlanie wprowadzonych przez użytkownika cyfr oraz funkcji zadeklarowanych w programie Kalkulator Plus (Rys 5.). Edytor posiada znak zachęty koloru zielonego, który informuje użytkownika o pozycji i możliwości wpisania kolejnej wartości z wirtualnej klawiatury, wbudowanej w program. Dodatkową funkcją edytora wyrażeń matematycznych jest informowanie użytkownika o niezamkniętych nawiasach, bądź błędnie wpisanych wyrażeniach. W przypadku pojawienia się w edytorze jakiegoś błędu (kolorem czerwonym), bądź ostrzeżenia (kolorem zielonym), nie jest możliwe pokazania wyniku działania wpisanego wyrażenia matematycznego, dzięki czemu aplikacja jest odporna na błędy użytkowników i nie wyświetla błędnych wyników. 15

16 Rys 5. Edytor wyrażeń matematycznych z programu Kalkulator Plus, uruchomionego na urządzeniu fizycznym w orientacji pionowej. Źródło własne. Program zaznacza następujące błędy, napisane przez użytkownika: - rozpoczęcie wyrażenia wpisując znak +, *,!, bądź /, - wpisanie dwukrotnie tego samego znaku, bądź dwóch różnych znaków, które nie są oddzielone między sobą żadną cyfrą, - wpisanie znaku końca nawiasu zaraz po wpisaniu znaków +, -, *, \, bądź po otwarciu nawiasu, - nie wpisanie, bądź wpisanie złej liczby argumentów do którejś z otwartych funkcji. Ostrzeżenia zostaną wyświetlone, gdy : - użytkownik otworzy nawias, lecz go nie zamknie, - ostatnim wpisanym znakiem będzie +, -, * bądź /. Rys 5.3 Programowa klawiatura zaprezentowana w widoku pionowym aplikacji. Klawiatura jest widoczna przez cały czas działania aplikacji (tylko w trybie wpisywania wyrażeń). Źródło własne. Na tym samym ekranie, po wprowadzeniu wszystkich obliczeń i przyciśnięciu odpowiedniego przycisku na wirtualnej klawiaturze, zostają wyświetlane obliczenia wykonane krok po kroku, aż do wyprowadzenia pełnego wyniku, jeżeli w opcjach ustawione jest pokazywanie tych rozwiązań. 16

17 Wirtualna klawiatura (Rys 5.3), która została wbudowana w program Kalkulator Plus służy do wpisywania wyrażeń matematycznych przez użytkownika. Jest skonstruowana tak, aby nie zasłaniała całego ekranu, żeby w widoku poziomym oraz pionowym wszystkie klawisze były widoczne oraz aby nie było żadnych problemów przy wpisywaniu kolejnych cyfr. Jej funkcje zmieniają się w zależności od tego, jaką funkcję akurat użytkownik wykonuje w programie. Jeżeli wpisuje tylko kolejne wyrażenia, to jest widoczna klawiatura przedstawiona na Rys 5.3. Jeżeli natomiast jesteśmy w trybie przeglądania kolejności wykonywania działań, jest możliwe tylko przełączanie się między nimi i wyczyszczenie równania tak, aby można było wpisać nowe. Przy innych czynnościach klawiatura jest nie widoczna, aby nie przeszkadzała w wykonywaniu zamierzonych działań. Jak widać na poprzednim rysunku, w centrum każdego klawisza znajduje się duży znak, oznaczający główną funkcję wykonywaną po jego zwykłym przyciśnięciu. Rys 5.4 Wizualizacja działania przycisków z programowej klawiatury. Źródło własne. Na Rysunku (Rys 5.4) został zaprezentowany sam schemat działania przycisków, znajdujących się w programie Kalkulator Plus, lecz sam zaprezentowany przycisk w takiej postaci nie istnieje. Przycisk został podzielony na cztery części, a każda z tych części odpowiada za inną funkcję, na przykład na klawiszu w prawym górnym rogu znajduje się napis cos, oznaczający funkcję Cosinus. W celu dostania się do niej, należy przeciągnąć palec z dowolnego miejsca na przycisku w prawą stronę po ukosie w górę tak, jak zostało to zilustrowane przy pomocy żółtej strzałki na Rys 5.4. Do funkcji należących do tego samego klawisza, lecz znajdujących się w dolnych rogach przycisku można dostać się w sposób analogiczny, przeciągając palec od góry przycisku po skosie w dół w odpowiednim kierunku (lewo bądź prawo), bez znaczenia pod jakim kątem. Należy jednak pamiętać o tym, aby palec przesunąć w dosyć znaczącą odległość, ponieważ może nie zostać rozpoznany zaprogramowany gest. W przypadku nie rozpoznania gestu lub po prostu przy próbie użycia nie przypisanego rogu przycisku (tak jak w przypadku Rys 5.4 z górnego, lewego rogu), zostanie zastosowana domyślna akcja, czyli ta, która przypisana jest jako duży, biały napis. Odległość, jaką musi pokonać palec, aby gest został rozpoznany to 50 pikseli od miejsca zbliżenia palca do wyświetlacza musi to być co najmniej 50 pikseli po osi X jak i po osi Y. Podczas niektórych operacji, np. wyświetlania kolejności wykonywanych działań, na większości przycisków nie są wyświetlane żadne znaki, co czyni je po prostu nieużywalnymi, ponieważ nie mają przypisanych żadnych akcji domyślnych, ani po użyciu gestów. 17

18 5.3. MENU GŁÓWNE APLIKACJI Aplikacja została wyposażona w menu, z którego jest bardzo łatwy dostęp do takich opcji, jak konfiguracja programu, historii obliczeń, obsługiwanych funkcji, możliwości zapisania aktualnego działania do pliku, otwarcia okienka informacyjnego na temat aplikacji, oraz możliwość jej zamknięcia. Menu zostało zaprezentowane na Rys 5.5. W aplikacjach pisanych pod systemy Android przyjęło się, iż zamykanie jej następuje poprzez naciśnięcie przycisku fizycznego Wstecz. W aplikacji Kalkulator Plus przycisk ten służy tylko i wyłącznie do powracania do głównego okna aplikacji bez względu na to, jaki widok jest aktualnie otwarty. Z tego właśnie powodu w menu głównym aplikacji istnieje opcja o nazwie Zakończ. Rys 5.5 Menu główne aplikacji, dostępne pod klawiszem Menu. Źródło własne. Menu dla aplikacji pisanych dla środowiska Android można utworzyć na dwa różne sposoby [11] (szerzej i w języku polskim zostało również opisane w [1]). Pierwszym z nich jest utworzenie wszystkich elementów w kodzie, co wygląda tak, jak to zostało przedstawione na następnym listingu (Listing 5.1) public boolean oncreateoptionsmenu (Menu menu) { menu.add (0, MENU_OPTIONS, 0, "Opcje"); menu.add (0, MENU_HISTORY, 0, "Historia obliczeń"); menu.add (0, MENU_FUNCTIONS, 0, "Obsługiwane funkcje"); menu.add (0, MENU_SAVE, 0, "Zapisz działanie"); menu.add (0, MENU_ABOUT, 0, "O programie..."); menu.add (0, MENU_EXIT, 0, "Zakończ"); } Listing 5.1 return true; Kod w języku Java odpowiedzialny za wyświetlenie menu, wersja pierwsza. Źródło własne. Przedstawione rozwiązanie nie jest jednak tym, które autor niniejszej aplikacji wybrał za odpowiedzialne utworzeniu menu w programie, ponieważ posiada ono kilka niedogodności. Takie rozwiązanie nie sprzyja tworzeniu różnych wersji językowych aplikacji. Mimo, iż autor nie utworzył obsługi wielu języków, to w sposób wybrany przez niego będzie to w przyszłości bardzo prostym zabiegiem, ponieważ system Android doskonale wspiera wielojęzyczność aplikacji, korzystając z różnych zasobów, gdy telefon pracuje w różnych językach [10]. Jest to powód, dla którego najlepiej wszelkie stałe tekstowe, takie jak podpisy na 18

19 przyciskach, czy komunikaty wyświetlane użytkownikowi, najlepiej zapisywać w pliku strings.xml katalogu res/values (w strukturze projektu programu Eclipse) public boolean oncreateoptionsmenu(menu menu){ } // wczytywanie menu z plików zasobów, res/menu/menu.xml MenuInflater inflater = getmenuinflater(); inflater.inflate(r.menu.menu, menu); return true; Listing 5. Kod w języku Java odpowiedzialny za wyświetlenie menu, wersja druga. Źródło własne. <menu xmlns:android=" xmlns:android1=" <item android1:id="@+id/options" android1:title="opcje" android:icon="@drawable/options" /> <item android1:id="@+id/history" android1:title="historia obliczeń" android:icon="@drawable/history" /> <item android1:id="@+id/functions" android1:title="obsługiwane funkcje" android:icon="@drawable/function"/> <item android1:id="@+id/save" android1:title="zapisz działanie" android:icon="@drawable/save" /> <item android1:id="@+id/about" android1:title="o programie..." android:icon="@drawable/about" /> <item android1:title="zakończ" android1:id="@+id/exit" android:icon="@drawable/exit" /> </menu> Listing 5.3 Zawartość pliku menu.xml znajdującego się w katalogu res/menu, odpowiedzialnego za utworzenie menu wraz z ikonami. Źródło własne. Kolejnym powodem, dla którego dobrze jest zastosować drugi sposób, to wsparcie dla ikon dla elementów menu i większa możliwość konfiguracji elementów menu, takich jak np. submenu. Drugim sposobem na utworzenie menu, jest właśnie zapisanie go w pliku xml w postaci odpowiednich struktur. Wczytywanie takiego pliku zostało przedstawione we wcześniejszym listingu (Listing 5.), natomiast zawartość menu w następnym (Listing 5.3). Drugi kod tworzenia menu jest mniej skomplikowany i bardziej przejrzysty, niż pierwszy, dlatego autor zdecydował się na właśnie jego wykorzystanie. Z tego powodu, iż w programie może być używane kilka różnych menu, w linijce numer 6 (Listing 5.) utworzone jest odwołanie do właściwego menu poprzez jego nazwę. W przedstawionym kodzie (Listing 5.3) widać dokładnie sposób, w jaki menu jest zbudowane. Elementy o id android1:id przechowują identyfikatory danej opcji, aby móc się później do niego odwołać (chociażby podczas wybrania jej z menu, aby wykonać odpowiednią operację). Kolejnym elementem jest android1:title, zawierający tekst, który wyświetlany jest na danej opcji menu, natomiast zmienna android:icon zawiera odnośnik do nazwy pliku, który służy jako ikonka danego elementu menu. Dokładnie ten kod, odpowiedzialny jest za wyświetlenie menu, które znajduje się na Rys

20 5.4. KONFIGURACJA PROGRAMU Program jak każdy inny, posiada możliwość skonfigurowania jego niektórych funkcji. Posiada on opcje podzielone na dwie kategorie pierwsza z nich jest mało ważna, ponieważ zawiera tylko możliwość skonfigurowania kolorowania różnych elementów w składni edytora wyrażeń, takich jak kolor błędów czy ostrzeżeń (na Rys 5.6 zostały przedstawione obie kategorie konfiguracji) <ListPreference android:defaultvalue="8" android:key="history" android:dialogtitle="wybierz ilość cyfr" android:title="objętość historii" android:entries="@array/options_precision" android:entryvalues="@array/options_precision_values" android:summary="wybierz liczbę wpisów, które przechowywać w historii obliczeń" /> Listing 5.4 Jedna z opcji programu w pliku preferences.xml. Źródło własne. W listingu (Listing 5.4) została zaprezentowana budowa elementów okienka konfiguracyjnego. Całe menu jest zapisane w pliku preferences.xml w katalogu /res/xml i w razie chęci autora do utworzenia wersji wielojęzycznej, można utworzyć folder xml-en, w celu utworzenia amerykańskiej wersji językowej. Rys 5.6 Konfiguracja główna programu. Ponieważ jest w niej wiele opcji, została przedstawiona na dwóch rysunkach. Źródło własne. Każdy element rozpoczyna się od definicji typu elementu, a na przedstawionym listingu znajduje się on w pierwszej linicje. Typ ListPreference oznacza, iż elementem będzie lista wyboru, umożliwiająca wybrać tylko jeden element. Pliki są tak skonstruowane, iż 0

21 lista elementów może być zadeklarowana w zupełnie innym miejscu, a wartości, które kryją się pod danym elementem mogą być również w zupełnie innym. W przypadku tego elementu, lista wartości do wybrania jest zadeklarowana w pliku /res/values/arrays.xml, a używana lista w tym przykładzie jest zaprezentowana na kolejnym listingu (Listing 5.5). Miejsce, gdzie należy podać lokalizację elementów listy, znajduje się w linijkach 6 (elementy listy) i 7 (wartości listy), w poprzednim listingu (Listing 5.4). Do menu można dodać oczywiście również inne elementy, lecz nie wszystkie wymagają takich samych atrybutów <string-array name="options_precision"> <item>1</item> <item></item> <item>3</item> <item>4</item> <item>5</item>... <item>19</item> <item>0</item> </string-array> Listing 5.5 Zadeklarowana lista wyboru w pliku /res/values/arrays.xml. Źródło własne. Takie atrybuty, które powinny znaleźć się w każdego typu elementów, to : - android:key klucz pola. To za jego pomocą będziemy pobierać wartość zapisaną w konkretnym elemencie. Jest to też identyfikator elementu, lecz nie musi być unikalny, - android:title tytuł pola wyświetlany na liście opcji, - android:summary tekst wyświetlany pod tytułem, zazwyczaj jest to rozszerzony opis, do czego wybrana opcja służy, - android:defaultvalue domyślna wartość pola. System Android umożliwia tworzenie różnego rodzaju pól dla ustawień aplikacji, a wynika to oczywiście z potrzeb programistów, którzy chcą dać użytkownikowi aplikację umożliwiającą w jak najbardziej przyjazny sposób na skonfigurowanie wybranych ustawień. Poniżej zostały wymienione możliwe elementy szablonu dla konfiguracji [9] (szerzej w języku polskim zostały opisane w [4]): - PreferenceScreen jest to jednocześnie element główny (jeżeli jest rootem w naszym pliku), jak i przycisk otwierający kolejne okno z elementami ustawień, które zawiera wewnątrz siebie (jeżeli nie jest rootem), - PreferenceCategory służy do tego by uporządkować elementy ustawień, przechowując je w niewidocznym kontenerze z widocznym nagłówkiem, - Preference element służący do ustawień typu "Custom" - działa jak zwykły przycisk, który należy oprogramować by robił coś konkretnego, - CheckBoxPreference element z checkboxem, przyjmujący wartości tylko true i false, - EditTextPreference element, który po kliknięciu wyświetla okno dialogowe z polem EditText, w które użytkownik może wpisać dowolny ciąg tekstowy, - ListPreference element wyświetlający okno dialogowe z listą radiobuttonów. Użytkownik może wybrać tylko jeden z tych elementów, 1

22 - MultiSelectListPreference element w funkcjonalności bardzo podobny do elementu ListPreference, lecz użytkownik może wybrać z niej kilka opcji, - RingtonePreference jest również elementem podobnym do funkcjonalności ListPreference, ale wyświetla listę dzwonków, które użytkownik może wybrać dla naszej aplikacji (możliwość wybrania tylko jednego elementu). W aplikacji Kalkulator Plus, oprócz kolorowania składni można ustawić odpowiednie opcje potrzebne do prawidłowego korzystania z programu i otrzymywaniu poprawnych wyników, takie jak : - Precyzja liczb, dzięki czemu użytkownik może zdecydować, z jakim zaokrągleniem program powinien wyświetlać wyniki. Standardowo liczba ta wynosi 10 znaków, jednak urządzenia mobilne nie posiadają zbyt dużej mocy obliczeniowej, dlatego przy wykonywaniu niektórych działań należy zmienić na możliwie jak najmniejszą liczbę cyfr po przecinku, - Zapisuj historię, przyjmująca wartości True (tak) lub False (nie). Program domyślnie zapisuje historię dokonanych obliczeń do pliku wraz z datą, kiedy zostały one wykonane, - Objętość historii, opcja wskazująca maksymalną ilość wpisów, które program powinien zapisywać w pliku. Możliwe jest wybranie przedziału od 1 (tylko ostatnie działania) do maksymalnie 0. Dane są zapisywane w pliku tekstowym w tym samym folderze, co rozwiązane wyrażenie, - Krok po kroku, przyjmująca wartości True (tak) lub False (nie), standardowo True. Opcja odpowiedzialna jest za to, że automatycznie po przyciśnięciu znaku równa się (=), zostanie wyświetlone rozwiązanie pierwszego działania z możliwością przejścia do kolejnych, - Folder zapisu, gdzie zostanie zapisana historia oraz sposób wykonania równania, gdy użytkownik wyrazi na to ochotę. Standardowo zapisuje się w folderze głównym karty pamięci, a po wpisaniu nazwy folderu zostanie utworzony folder na karcie pamięci, - Nazwa pliku, do którego będą zapisywane utworzone przez użytkownika równania. Będą one zapisywane w folderze, który zostanie wybrany w menu Folder Zapisu, pod nazwą nazwa_pliku_data.txt OKIENKO INFORMACYJNE Większość producentów aplikacji na platformę Android, tworząc wszelkie okienka informacyjne tworzy je w taki sposób, aby zawierały wszystkie niezbędne informacje i bez żadnych przycisków służących do zamykania tych okien. Tak samo zostało to zrobione w aplikacji Kalkulator Plus. W kolejnym listingu (Listing 5.6) został przedstawiony kod źródłowy xml dla okienka informacyjnego O programie w aplikacji Kalkulator Plus. Do zbudowania szablonu, wykorzystane zostały trzy komponenty ImageView oraz dwie kontrolki TextView. Został wykorzystany także pojemnik TableLayout. Poniżej zostały opisane użyte komponenty:

23 ImageView komponent umożliwiający wyświetlanie dowolnego obrazu, np. ikony czy zdjęcia. Klasa ta pozwala na ładowanie zdjęć z różnego rodzaju źródeł, np. z zasobów czy z karty pamięci telefonu, - TextView komponent umożliwiający wyświetlanie dowolnego tekstu i ewentualnie jego edycję przez użytkownika programu. Jest to tak naprawdę edytor tekstu, który domyślnie ustawiony jest tylko na wyświetlanie, - TableLayout jest to tak zwany kontener, który zawiera wszystkie inne komponenty. Dzięki niemu można ułożyć w odpowiedni sposób pozostałe kontrolki tak, aby użytkownik nie miał problemów w użytkowaniu aplikacji. <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchcolumns="*"> <TableRow> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/calculator" android:layout_gravity="left center"/> <TextView android:id="@+id/info_text" android:gravity="center" android:layout_gravity="center" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </TableRow> <TableRow> <TextView android:id="@+id/legal_text" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textsize="10dip" android:textstyle="italic" android:layout_span="" android:layout_margin="8dip" android:textcolor="#cccccc" /> </TableRow> </TableLayout> Listing 5.6 Kod źródłowy okna informacyjnego w programie Kalkulator Plus, wyświetlającego informacje na temat autora i jego aplikacji. Źródło własne. Dla wszystkich kontrolek można ustawiać takie właściwości jak szerokość, wysokość, formatowanie czcionki, identyfikator dzięki któremu można się do nich dowolnie odwoływać z poziomu kodu. Okienko informacyjne utworzone w ten sposób zostało przedstawione na poniższym rysunku (Rys 5.7). Jak widać na Rys 5.7, na formatce pokazują się również teksty, które nie są zapisane w szablonie. Dzieje się tak dzięki temu, iż w kodzie wywołującym okno znajduje się odwołanie do zadeklarowanych w szablonie kontrolek setcontentview(r.layout.maindialog); TextView legal = (TextView)findViewById(R.id.legal_text); legal.settext(readrawtextfile(r.raw.legal)); TextView info = (TextView)findViewById(R.id.info_text); info.settext(html.fromhtml(readrawtextfile(r.raw.info))); Listing 5.7 Odwoływanie się do okienka informacyjnego. Źródło własne. 3

24 Rys 5.7 Okno przedstawiające informacje na temat programu Kalkulator Plus. Źródło własne. W powyższym listingu (Listing 5.7) został przedstawiony sposób odwoływania się do praktycznie każdego komponentu, znajdującego się na formatce przypisanej do aplikacji. W pierwszej linijce ostatniego Listingu zostało pokazane, w jaki sposób wywołuje się dany widok. Należy podać jedynie nazwę pliku, w którym znajduje się jej szablon, a ponieważ znajduje się on w lokalizacji /res/layout/maindialog.xml, to właśnie taką lokalizację podajemy przy wywoływaniu (a dokładniej R.nazwa_folderu.nazwa_zasobu). Odwoływanie się do obiektu znajdującego się na formatce odbywa się w bardzo podobny sposób, co widać w linijce -3 w tymże listingu. Wystarczy zadeklarować zmienną, do której przypiszemy dany komponent, typem określającym typ komponentu, a następnie rzutujemy na tenże typ i szukamy komponentu o nazwie tutaj legal_text. Po tej czynności możemy się do wyszukanego komponentu odwoływać w taki sam sposób, jak do innych zmiennych deklarowanych w programie. Na tym przykładzie odwołanie nastąpiło do pliku tekstowego o nazwie legal.txt umieszczonego w zasobach w folderze /res/raw. 1 public class AboutDialog extends Dialog{ Listing 5.8 Początek klasy wskazujący na typ tworzonego okienka. Źródło własne. Opisywane okienko jest o tyle wyjątkowe, iż pojawia się ponad aktualnie wyświetlanym i jest przeźroczyste tak, że widać formę z której została wywołana. Dzieje się tak, ponieważ podczas tworzenia owego widoku, dziedziczona jest klasa Dialog (Listing 5.8), która sama w sobie odpowiedzialna jest za wywołanie tego typu okienek. Nie jest to docelowa funkcja klasy Dialogs, zadeklarowana przez twórców systemu Android, ponieważ została ona utworzona z myślą o tworzeniu różnego rodzaju okienek dialogowych, które służą np. to wyświetlania pytania czy informacji lub wizualizacji postępu określonej operacji [8] (Rys 5.8). 4

25 Rys 5.8 Okienko wizualizacji postępu operacji. Źródło: W okienku utworzonym dzięki klasie Dialogs można osadzić dowolne elementy, co widać na rysunku (Rys 5.8), ponieważ jej źródłem jest szablon utworzony w pliku xml podobnie jak każdą inną formatkę OKNO HISTORIA ORAZ OBSŁUGIWANE FUNKCJE Okna te zostały opisane w jednym podpunkcie, ponieważ utworzone zostały na bazie tej samej klasy, tylko same widoki bazujące na niej mają inne funkcje. Klasa została utworzona tylko i wyłącznie do celu prezentacji danych w postaci listy, która w API Windows nazywa się ListView. System Android standardowo nie zawiera tej klasy jako gotowy komponent który można wstawić na formę, lecz umożliwia jego obsługiwanie, co zostanie pokazane na przykładzie klasy Zbiorek. Jest to dobry pomysł, ponieważ programista w łatwy sposób ma możliwość stworzenia listy, która będzie przechowywać dowolną wartość i zostanie ona w elemencie rozmieszczona w dowolny sposób, dzięki wykorzystaniu szablonu xml (Listing 5.9). Listing 5.9 zawiera tylko dwa elementy TextView, które zostały utworzone na potrzeby programu Kalkulator Plus, ponieważ tylko tyle jest potrzebne do wyświetlania wyznaczonych elementów. Plik z zawartością zapisany jest w folderze /res/layout/row.xml i wczytywany dopiero z kodu, przy tworzeniu widoku. ListView, do którego ma być przypisana ta linijka (row.xml) może zostać umieszczona w dowolnym miejscu i nie wymaga żadnego specjalnego dostosowania, co widać na następnym listingu (Listing 5.10) <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/linearlayout01" android:layout_width="fill_parent" xmlns:android=" android:paddingleft="10sp" android:paddingright="10sp" android:layout_height="wrap_content" android:orientation="vertical" android:paddingtop="sp"> <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/tytul" android:typeface="sans" android:textsize="sp" android:textstyle="bold"></textview> <LinearLayout android:id="@+id/linearlayout0" android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextView android:id="@+id/opis" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textsize="1sp"></textview> </LinearLayout> </LinearLayout> Listing 5.9 Zawartość pliku row.xml, stanowiącego zawartość każdego elementu w zbiorze ListView. Źródło własne. 5

26 Pierwszy element linijki (TextView) będzie służył za wyświetlanie tytułu elementu (nagłówek), dlatego posiada atrybut android:textsize o wartości sp, oraz android:textstyle ustawione na wartość bold i posiada identyfikator o wartości po prostu tytul. Drugi komponent TextView jest mniejszy, po ma tylko 1sp i nie jest pogrubiony. 1 3 <ListView android:id="@+id/listview01" android:layout_width="fill_parent" android:layout_height="wrap_content"></listview> Listing 5.10 Przykładowy kod wstawionego komponentu ListView, umożliwiającego wyświetlanie utworzonej linijki w pliku row.xml. Źródło własne. Posiada on funkcję wyświetlania mniej ważnego tekstu, takiego jak opis funkcji, której dotyczy dany element listy (dla okna Obsługiwane Funkcje) lub wyświetla datę ostatniego wyszukiwania wybranego elementu (dla okna Historia). Rys 5.9 prezentuje porównanie obu okien, wypełnionych danymi. Została utworzona również specjalna klasa, nazwana Zbiorek. Służyć ma ona do obsługi elementów w ListView, dlatego z założenia przechowuje tylko dwie właściwości oraz udostępnia cztery metody dwie z nich odpowiedzialne są za dostęp do zmiennej tytuł (pierwszy TextView w pliku row.xml), a dwie kolejne za dostęp do zmiennej opis. Za dostęp rozumiane jest tutaj, iż znajduje się metoda do odczytywania danej zmiennej oraz druga do modyfikowania zmiennej. Na kolejnym listingu (Listing 5.11) zostało przedstawione rozwiązanie w postaci kodu, które zostało wdrożone do programu Kalkulator Plus. Rys 5.9 Okienko korzystające z ListView, zawierającego utworzony plik row.xml. Źródło własne. W utworzonej klasie obecny jest również oczywiście konstruktor. Jest on odpowiedzialny w tym wypadku jedynie o przypisanie do tworzonego elementu tytułu oraz opisu. 6

27 package pl.weer.kalkulator; public class Zbiorek { private String tytul; // zawiera tytuł, pogrubiony private String opis; // zawiera opis tego, do czego służy opcja } // kontstruktor klasy Zbiorek public Zbiorek(String tytul, String opis) { super(); this.tytul = tytul; this.opis = opis; } // funkcje odpowiedzialne za dostęp do danych (odczyt / zapis) public String gettytul() { return tytul; } public void settytul(string tytul) { this.tytul = tytul; } public String getopis() { return opis; } public void setopis(string opis) { this.opis = opis; } Listing 5.11 Kod źródłowy klasy Zbiorek, obsługującej elementy listy ListView. Źródło własne. setcontentview(r.layout.lista); ListView list = (ListView) findviewbyid(r.id.listview01); list.setclickable(true); final List<Zbiorek> lista = new ArrayList<Zbiorek>(); for (int i = 0; i < Obliczenia.FUNKCJE.length; i++) { lista.add(new Zbiorek("Naglowek", "Opis")); } zbiorekadapter adapter = new zbiorekadapter(this, lista); list.setonitemclicklistener(new OnItemClickListener() { } public void onitemclick(adapterview<?> arg0, View arg1, int arg, long arg3) { String txt = lista.get(arg).gettytul(); txt = txt.substring(0, txt.length()-1); // wstawianie funkcji do edytora rownan Pisz(txt); // przełączanie z powrotem do widoku głównego setcontentview(widok); list.setadapter(adapter); Listing 5.1 Kod źródłowy, umożliwiający wyświetlenie okienka zawierającego ListView, z potrzebną użytkownikowi zawartością. Źródło własne. 7

28 Metody pozwalają na modyfikację tych ustawień w czasie działania programu, co jest bardzo przydatną opcją. Kolejnym krokiem, aby zapewnić obsługę nowej klasie, jest utworzenie kolejnej klasy, która będzie bezpośrednio zarządzała elementami w zbiorniku ListView, a zostanie nazwana po prostu zbiorekadapter. Nie zawiera on tak naprawdę żadnych poważnych fragmentów kodu, jednak na Listingu (Listing 5.13) został przedstawiony najważniejszy z nich mianowicie sposób na skojarzenie z wybranym komponentem ListView odpowiedni szablon elementów, w tym wypadku zawarty w pliku row.xml. Znajduje się tam także odwołanie do poszczególnych pól wstawianego elementu, właśnie w celu ustawienia domyślnych wartości Zbiorek entry = lista.get(position); if (convertview == null) { LayoutInflater inflater = (LayoutInflater) context.getsystemservice(context.layout_inflater_service); convertview = inflater.inflate(r.layout.row, null); } TxtView tytul = (TextView) convertview.findviewbyid(r.id.tytul); tytul.settext(entry.gettytul()); TextView opis = (TextView) convertview.findviewbyid(r.id.opis); opis.settext(entry.getopis()); Listing 5.13 Fragment kodu odpowiedzialny za przypisanie odpowiedniego szablonu elementu, dla elementów ListView, oraz wczytanie tekstów dla tych elementów. Źródło własne. Na pierwszy listingu (Listing 5.1) przedstawiony został sposób wywoływania i obsługi utworzonej poprzednio listy ListView. Różnice pomiędzy obsługą okna z Historią, a z listą Obsługiwanych funkcji polega tylko i wyłącznie na wypełnianiu listy (znajduje się to w linijkach 8-10) oraz przy obsługiwaniu wybrania elementu (linijki 18-). Lista obsługiwanych funkcji (linki 8-10) generowana jest z biblioteki Obliczenia, w której znajduje się obsługa wszelkich obliczeń programu Kalkulator Plus. Jest tam zadeklarowana tablica o nazwie FUNKCJE, zawierająca wszystkie funkcje, wraz z ich opisem oraz minimalną liczbą argumentów, które powinna zawierać // zmienna lista, do której zapisujemy historię List<String> Historia = new ArrayList<String>(); // najpierw wczytujemy wszystko z pliku try { File f = new File(Environment.getExternalStorageDirectory() + "/Notes/historia.txt"); FileInputStream fileis = new FileInputStream(f); BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS)); String readstring = new String(); } // po prostu wczytywanie kolejnych linii z pliku while((readstring = buf.readline())!= null) { // dodawanie kolejnych wpisów na listę historii Historia.add(readString); } } catch (FileNotFoundException e) { } catch (IOException e){ Listing 5.14 Fragment kodu odpowiedzialny za wczytywanie historii z pliku. Źródło własne. 8

29 W opisywanym listingu, linijka pierwsza odpowiedzialna jest za ustawienie odpowiedniego widoku w którym znajduje się wypełniana później lista. W następnej linijce następuje przypisanie komponentu ListView do zmiennej list po to, aby można było się do niej później odwołać, co następuje już w linijce 4. Komponentowi zostaje włączona funkcja, dzięki której będzie można wybrać jakiś element (bo bez tego była by to tylko lista informacyjna). W linijce szóstej następuje utworzenie kolejnej zmiennej lista. Jest ona od razu zadeklarowana jako klasa, która została stworzona dla potrzeb tego programu i będzie przechowywała wszystkie dodawane elementy. Kolejne trzy linijki pokazane na listingu prezentują samo dodawanie elementów do listy. O ile wczytywanie listy funkcji jest bardzo proste bo jest to tylko przekopiowanie jednej listy do drugiej to wczytywanie historii jest już nieco trudniejsze, ponieważ jest ona wczytywana z plik. Patrząc na Listing 5.14 widzimy, iż na początku tworzona jest nowa lista, która będzie zawierała tylko elementy typu String (linijka 1). Ten sposób tworzenia listy jest najwygodniejszy, ponieważ nie musimy wiedzieć ile ona będzie miała elementów końcowych, a tylko jakiego będą one typu. W linijce 6 tworzona jest zmienna, odpowiedzialna za uchwyt pliku oraz automatycznie następuje próba otwarcia tego pliku. Zmienna Environment.getExternalStorageDirectory() zawiera pełną ścieżkę dostępu do zewnętrznej karty pamięci, a zwracana wartość nie jest zakończona znakiem /. W razie gdyby próba otwarcia pliku nie powiodła się z powodu nie istnienia tegoż pliku, to nastąpi wyjątek, który został obsłużony w linijce 19. Jeżeli plik nie istnieje, to po prostu lista historii będzie pusta i nie zostanie nic wczytane do okienka z Historią. Deklaracja zmiennych potrzebnych do samego odczytywania linii z pliku znajduje się w linijkach 9-10, natomiast w 11 została zadeklarowana zmienna przechowująca ostatnio wczytaną linijkę. Pętla while w linijkach wczytuje linijka po linijce tekst z pliku i automatycznie (po zakończeniu wczytywania danej linijki) zostaje ona dodana do tablicy Historia. Wracając do kodu źródłowego odpowiedzialnego za wyświetlenie widoku z listą (Listing 5.1), w linijce 13 zostaje zadeklarowana akcja, wykonywana po wybraniu któregoś z elementów listy. Dla obu przypadków program po prostu wstawia do edytora wyrażeń wartość, która jest podana jako tytuł wybranego elementu dla historii jest to treść równania, a dla listy funkcji sama funkcja. 9

30 6. STRUKTURA FUNKCJI W APLIKACJI W poprzednich rozdziałach zostało wspomniane, iż aplikacja Kalkulator Plus została napisana z wykorzystaniem zewnętrznej biblioteki Obliczenia, która przechowuje w sobie funkcje i udostępnia je do używania przede wszystkim przez program Kalkulator Plus jak i inne (w przyszłości) aplikacje. Na poniższym rysunku (Rys 6.1) przedstawiony został schemat działania aplikacji, wyszczególniając jednocześnie opisane w dalszej części rozdziału funkcje i zasady ich działania. Rys 6.1 Schemat działania programu wyszczególniając listę funkcji, które w sobie zawiera. Źródło własne BIBLIOTEKA OBLICZENIA Biblioteka Obliczenia jest zbiorem poleceń i funkcji dla program Kalkulator Plus, więc bez niej program by nie funkcjonował poprawnie. Zawiera ona od podstawowych funkcji jak dodawanie, odejmowanie, mnożenie oraz dzielenie, aż po funkcje trygonometryczne czy obliczanie pierwiastka dowolnego stopnia. Biblioteka może zostać w przyszłości udostępniona innym programistom, w celu użycia funkcji obliczających we własnych programach, ponieważ biblioteka posiada ogromną precyzję przy obliczeniach. Udostępnia ona również kilkanaście procedur, które mogą zostać użyte do budowy innych aplikacji. Poniżej zostały opisane zadeklarowane stałe oraz zmienne, które zostały udostępnione publicznie. 30

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID Politechnika Opolska Wydział Elektrotechniki, Automatyki i Informatyki Instytut Układów Elektromechanicznych i Elektroniki Przemysłowej PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne Informatyka

Bardziej szczegółowo

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID Politechnika Opolska Wydział Elektrotechniki, Automatyki i Informatyki Instytut Układów Elektromechanicznych i Elektroniki Przemysłowej PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne Informatyka

Bardziej szczegółowo

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID Politechnika Opolska Wydział Elektrotechniki, Automatyki i Informatyki Instytut Układów Elektromechanicznych i Elektroniki Przemysłowej PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne Informatyka

Bardziej szczegółowo

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID

Politechnika Opolska. PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne REALIZACJA PARSERA WYRAŻEŃ MATEMATYCZNYCH NA PLATFORMIE ANDROID Politechnika Opolska Wydział Elektrotechniki, Automatyki i Informatyki Instytut Układów Elektromechanicznych i Elektroniki Przemysłowej PRACA DYPLOMOWA Studia pierwszego stopnia stacjonarne Informatyka

Bardziej szczegółowo

Pokaz slajdów na stronie internetowej

Pokaz slajdów na stronie internetowej Pokaz slajdów na stronie internetowej... 1 Podpisy pod zdjęciami... 3 Publikacja pokazu slajdów w Internecie... 4 Generator strony Uczelni... 4 Funkcje dla zaawansowanych użytkowników... 5 Zmiana kolorów

Bardziej szczegółowo

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3 DODAJEMY TREŚĆ DO STRONY 1. Dockbar, CMS + wyszukiwarka aplikacji... 2 2. Dodawanie portletów... 3 Widok zawartości stron... 3 Omówienie zawartości portletu (usunięcie ramki itd.)... 4 3. Ikonki wybierz

Bardziej szczegółowo

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku. Aktywności to podstawowe elementy związane z platformą Android. Dzięki poznaniu aktywności będziesz w stanie napisać pierwszą aplikację przeznaczoną na urządzenie mobilne. Po dodaniu kontrolek możesz w

Bardziej szczegółowo

Expo Composer. www.doittechnology.pl 1. Garncarska 5 70-377 Szczecin tel.: +48 91 404 09 24 e-mail: info@doittechnology.pl. Dokumentacja użytkownika

Expo Composer. www.doittechnology.pl 1. Garncarska 5 70-377 Szczecin tel.: +48 91 404 09 24 e-mail: info@doittechnology.pl. Dokumentacja użytkownika Expo Composer Dokumentacja użytkownika Wersja 1.0 www.doittechnology.pl 1 SPIS TREŚCI 1. O PROGRAMIE... 3 Wstęp... 3 Wymagania systemowe... 3 Licencjonowanie... 3 2. PIERWSZE KROKI Z Expo Composer... 4

Bardziej szczegółowo

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1)

Cel: Przypisujemy przyciskom określone funkcje panel górny (Panel1) W odcinku III tworzyliśmy paski narzędzi. Umieszczaliśmy na panelach ikony, reprezentujące czynności (charakterystyczne dla edytorów tekstu). Musimy teraz przypisać każdemu przyciskowi jego czynność (wycinanie,

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

1. Instalacja Programu

1. Instalacja Programu Instrukcja obsługi dla programu Raporcik 2005 1. Instalacja Programu Program dostarczony jest na płycie cd, którą otrzymali Państwo od naszej firmy. Aby zainstalować program Raporcik 2005 należy : Włożyć

Bardziej szczegółowo

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia nowego projektu (poniżej są utworzone projekty) Po kliknięciu

Bardziej szczegółowo

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

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna Język JAVA podstawy wykład 1, część 2 1 Język JAVA podstawy Plan wykładu: 1. Krótka historia Javy 2. Jak przygotować sobie środowisko programistyczne 3. Opis środowiska JDK 4. Tworzenie programu krok po

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

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS)

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS) Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania KOMPUTEROWE SYSTEMY STEROWANIA (KSS) Temat: Platforma Systemowa Wonderware cz. 2 przemysłowa baza danych,

Bardziej szczegółowo

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem. WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM NetBeans Wykonał: Jacek Ventzke informatyka sem. VI 1. Uruchamiamy program NetBeans (tu wersja 6.8 ) 2. Tworzymy

Bardziej szczegółowo

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego 2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 23 czerwca 2014 Spis treści 3 Spis treści...5

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

APLIKACJA SHAREPOINT

APLIKACJA SHAREPOINT APLIKACJA SHAREPOINT Spis treści 1. Co to jest SharePoint?... 2 2. Tworzenie nowej witryny SharePoint (obszar roboczy)... 2 3. Gdzie znaleźć utworzone witryny SharePoint?... 3 4. Personalizacja obszaru

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

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

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7 5.0 5.3.3.5 Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows 7 Wprowadzenie Wydrukuj i uzupełnij to laboratorium. W tym laboratorium, będziesz korzystać z narzędzi administracyjnych

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM 1.1. PODSTAWOWE INFORMACJE PC to skrót od nazwy Komputer Osobisty (z ang. personal computer). Elementy komputera można podzielić na dwie ogólne kategorie: sprzęt - fizyczne

Bardziej szczegółowo

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: 1. Listener dla przycisku. Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod: W linii 24 tworzymy globalną metodę mglobal_onclicklistener,

Bardziej szczegółowo

Instrukcja obsługi programu Do-Exp

Instrukcja obsługi programu Do-Exp Instrukcja obsługi programu Do-Exp Autor: Wojciech Stark. Program został utworzony w ramach pracy dyplomowej na Wydziale Chemicznym Politechniki Warszawskiej. Instrukcja dotyczy programu Do-Exp w wersji

Bardziej szczegółowo

Podręcznik użytkownika programu. Ceremonia 3.1

Podręcznik użytkownika programu. Ceremonia 3.1 Podręcznik użytkownika programu Ceremonia 3.1 1 Spis treści O programie...3 Główne okno programu...4 Edytor pieśni...7 Okno ustawień programu...8 Edycja kategorii pieśni...9 Edytor schematów slajdów...10

Bardziej szczegółowo

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie

Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie RBT API v2.3 Nowa Netia administrator firmy Nagrywanie połączeń-zarządzanie Spis treści I. WPROWADZENIE 2 II. OPIS FUNKCJONALNOŚCI..3 1. LOGOWANIE I ZMIANA HASŁA...3 1.1 LOGOWANIE..3 1.2 WIDOK PO ZALOGOWANIU...4

Bardziej szczegółowo

Podstawy technologii cyfrowej i komputerów

Podstawy technologii cyfrowej i komputerów BESKIDZKIE TOWARZYSTWO EDUKACYJNE Podstawy technologii cyfrowej i komputerów Budowa komputerów cz. 2 systemy operacyjne mgr inż. Radosław Wylon 2010 1 Spis treści: Rozdział I 3 1. Systemy operacyjne 3

Bardziej szczegółowo

System obsługi wag suwnicowych

System obsługi wag suwnicowych System obsługi wag suwnicowych Wersja 2.0-2008- Schenck Process Polska Sp. z o.o. 01-378 Warszawa, ul. Połczyńska 10 Tel. (022) 6654011, fax: (022) 6654027 schenck@schenckprocess.pl http://www.schenckprocess.pl

Bardziej szczegółowo

Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda

Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda Programowanie urządzeń mobilnych dr inż. Juliusz Mikoda Instalacja środowiska 1 Wymagane składniki środowiska Eclipse wersja 3.4 (Ganymede) lub 3.5 (Galileo classic) http://www.eclipse.org/downloads/packages/release/galileo/r

Bardziej szczegółowo

PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI

PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI PRODUKCJA BY CTI INSTRUKCJA INSTALACJI I KONFIGURACJI Spis treści Ważne informacje przed instalacją... 3 1. Instalacja oprogramowania... 4 2. Konfiguracja połączenia z serwerem SQL oraz z programem OPTIMA...

Bardziej szczegółowo

[1/15] Chmury w Internecie. Wady i zalety przechowywania plików w chmurze

[1/15] Chmury w Internecie. Wady i zalety przechowywania plików w chmurze Chmury w Internecie Nota Materiał powstał w ramach realizacji projektu e-kompetencje bez barier dofinansowanego z Programu Operacyjnego Polska Cyfrowa działanie 3.1 Działania szkoleniowe na rzecz rozwoju

Bardziej szczegółowo

DODAJEMY TREŚĆ DO STRONY

DODAJEMY TREŚĆ DO STRONY DODAJEMY TREŚĆ DO STRONY SPIS TREŚCI Pasek narzędzi i wyszukiwarka aplikacji... 2 Dodawanie portletów... 3 Widok zawartości stron... 4 Zawartość portletu... 5 Ikonki wybierz oraz dodaj zawartość stron...

Bardziej szczegółowo

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Część XXII C++ w Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie. Ćwiczenie 1 1. Utwórz nowy projekt w Dev C++ i zapisz go na

Bardziej szczegółowo

Rozdział 5. Administracja kontami użytkowników

Rozdział 5. Administracja kontami użytkowników Rozdział 5. Administracja kontami użytkowników Ćwiczenia zawarte w tym rozdziale pozwolą przygotować oddzielne środowisko pracy dla każdego użytkownika komputera. Windows XP, w porównaniu do systemów Windows

Bardziej szczegółowo

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS

PROBLEMY TECHNICZNE. Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS PROBLEMY TECHNICZNE Co zrobić, gdy natrafię na problemy związane z użytkowaniem programu DYSONANS Jeżeli stwierdziłeś występowanie błędów lub problemów podczas pracy z programem DYSONANS możesz skorzystać

Bardziej szczegółowo

e-podręcznik dla seniora... i nie tylko.

e-podręcznik dla seniora... i nie tylko. Pliki i foldery Czym są pliki? Plik to w komputerowej terminologii pewien zbiór danych. W zależności od TYPU pliku może to być: obraz (np. zdjęcie z imienin, rysunek) tekst (np. opowiadanie) dźwięk (np.

Bardziej szczegółowo

Windows XP - lekcja 3 Praca z plikami i folderami Ćwiczenia zawarte w tym rozdziale pozwolą na tworzenie, usuwanie i zarządzanie plikami oraz folderami znajdującymi się na dysku twardym. Jedną z nowości

Bardziej szczegółowo

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30

MS Word 2010. Długi dokument. Praca z długim dokumentem. Kinga Sorkowska 2011-12-30 MS Word 2010 Długi dokument Praca z długim dokumentem Kinga Sorkowska 2011-12-30 Dodawanie strony tytułowej 1 W programie Microsoft Word udostępniono wygodną galerię wstępnie zdefiniowanych stron tytułowych.

Bardziej szczegółowo

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel etrader Pekao Podręcznik użytkownika Strumieniowanie Excel Spis treści 1. Opis okna... 3 2. Otwieranie okna... 3 3. Zawartość okna... 4 3.1. Definiowanie listy instrumentów... 4 3.2. Modyfikacja lub usunięcie

Bardziej szczegółowo

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze ABC komputera dla nauczyciela Materiały pomocnicze 1. Czego się nauczysz? Uruchamianie i zamykanie systemu: jak zalogować się do systemu po uruchomieniu komputera, jak tymczasowo zablokować komputer w

Bardziej szczegółowo

Padlet wirtualna tablica lub papier w Internecie

Padlet wirtualna tablica lub papier w Internecie Padlet wirtualna tablica lub papier w Internecie Umiejętność gromadzenia, a potem przetwarzania, wykorzystania i zastosowania informacji w celu rozwiązania jakiegoś problemu, jest uważana za jedną z kluczowych,

Bardziej szczegółowo

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED Podręcznik użytkownika Katowice 2010 Producent programu: KAMSOFT S.A. ul. 1 Maja 133 40-235 Katowice Telefon: (0-32) 209-07-05 Fax:

Bardziej szczegółowo

Edytor tekstu OpenOffice Writer Podstawy

Edytor tekstu OpenOffice Writer Podstawy Edytor tekstu OpenOffice Writer Podstawy OpenOffice to darmowy zaawansowany pakiet biurowy, w skład którego wchodzą następujące programy: edytor tekstu Writer, arkusz kalkulacyjny Calc, program do tworzenia

Bardziej szczegółowo

Synchronizator plików (SSC) - dokumentacja

Synchronizator plików (SSC) - dokumentacja SZARP http://www.szarp.org Synchronizator plików (SSC) - dokumentacja Wersja pliku: $Id: ssc.sgml 4420 2007-09-18 11:19:02Z schylek$ > 1. Witamy w programie SSC Synchronizator plików (SZARP Sync Client,

Bardziej szczegółowo

Włączanie/wyłączanie paska menu

Włączanie/wyłączanie paska menu Włączanie/wyłączanie paska menu Po zainstalowaniu przeglądarki Internet Eksplorer oraz Firefox domyślnie górny pasek menu jest wyłączony. Czasem warto go włączyć aby mieć szybszy dostęp do narzędzi. Po

Bardziej szczegółowo

Komputery I (2) Panel sterowania:

Komputery I (2) Panel sterowania: Komputery I (2) Paweł Jamer Panel sterowania: Podstawowym miejscem z którego zarządzamy ustawieniami systemu Windows jest panel sterowania. Znaleźć tam możemy wszelkiego rodzaju narzędzia umożliwiające

Bardziej szczegółowo

Temat: Organizacja skoroszytów i arkuszy

Temat: Organizacja skoroszytów i arkuszy Temat: Organizacja skoroszytów i arkuszy Podstawowe informacje o skoroszycie Excel jest najczęściej wykorzystywany do tworzenia skoroszytów. Skoroszyt jest zbiorem informacji, które są przechowywane w

Bardziej szczegółowo

KASK by CTI. Instrukcja

KASK by CTI. Instrukcja KASK by CTI Instrukcja Spis treści 1. Opis programu... 3 2. Pierwsze uruchomienie... 4 3. Okno główne programu... 5 4. Konfiguracja atrybutów... 6 5. Nadawanie wartości atrybutom... 7 6. Wybór firmy z

Bardziej szczegółowo

Nagrywamy podcasty program Audacity

Nagrywamy podcasty program Audacity Pobieranie i instalacja Program Audacity jest darmowym zaawansowanym i wielościeżkowym edytorem plików dźwiękowych rozpowszechnianym na licencji GNU GPL. Jest w wersjach dla systemów typu Unix/Linux, Microsoft

Bardziej szczegółowo

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych

Piotr Dynia. PowerPivot. narzędzie do wielowymiarowej analizy danych Piotr Dynia PowerPivot narzędzie do wielowymiarowej analizy danych Od autora Wraz z wprowadzeniem na rynek nowej wersji pakietu Office: Microsoft Office 2010 udostępniono darmowy dodatek dla Excela o nazwie

Bardziej szczegółowo

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0 Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0 UWAGA 1: Przed dokonaniem jakichkolwiek zmian, zalecamy skopiować wcześniej kod html modułu do pliku na lokalnym dysku. W przypadku problemów ułatwi

Bardziej szczegółowo

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows Cel ćwiczenia: Zapoznanie się z: zarządzaniem systemami plików, zarządzaniem atrybutami plików, prawami do plików

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

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Dokumentacja dla Scandroid. Minimalna wspierana wersja systemu Android to 2.3.3 zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4. Scandroid to aplikacja przeznaczona

Bardziej szczegółowo

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności:

Szanowni Państwo. Należy przy tym pamiętać, że zmiana stawek VAT obejmie dwie czynności: Szanowni Państwo Zapowiedź podniesienia stawek VAT stała się faktem. Zgodnie z ustawą o podatku od towarów i usług z dniem 1 stycznia 2011 roku zostaną wprowadzone nowe stawki VAT. Obowiązujące aktualnie

Bardziej szczegółowo

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja.

Kontrola topto. 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. Kontrola topto Obsługa aplikacji Kontrola topto 1. Informacje ogólne. 2. Wymagania sprzętowe i programowe aplikacji. 3. Przykładowa instalacja topto. 4. Komunikacja. 5. Dodawanie, edycja i usuwanie przejść.

Bardziej szczegółowo

S P I S T R E Ś C I. Instrukcja obsługi

S P I S T R E Ś C I. Instrukcja obsługi S P I S T R E Ś C I Instrukcja obsługi 1. Podstawowe informacje o programie.................................................................................... 2 2. Instalacja programu.....................................................................................................

Bardziej szczegółowo

VinCent Administrator

VinCent Administrator VinCent Administrator Moduł Zarządzania podatnikami Krótka instrukcja obsługi ver. 1.01 Zielona Góra, grudzień 2005 1. Przeznaczenie programu Program VinCent Administrator przeznaczony jest dla administratorów

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

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC.

Rozdział ten zawiera informacje o sposobie konfiguracji i działania Modułu OPC. 1 Moduł OPC Moduł OPC pozwala na komunikację z serwerami OPC pracującymi w oparciu o model DA (Data Access). Dzięki niemu można odczytać stan obiektów OPC (zmiennych zdefiniowanych w programie PLC), a

Bardziej szczegółowo

Poradnik użytkownika pomoc techniczna

Poradnik użytkownika pomoc techniczna Poradnik użytkownika pomoc techniczna Poradnik dotyczy komputerów z zainstalowanym systemem Windows 1 Spis treści I. POSTĘPOWANIE W PRZYPADKU PROBLEMÓW Z URUCHOMIENIEM APLIKACJI SUPERMAKLER... 3 1. JAVA

Bardziej szczegółowo

Backend Administratora

Backend Administratora Backend Administratora mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011 W tym celu korzystając z konsoli wydajemy polecenie: symfony generate:app backend Wówczas zostanie stworzona

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

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

Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki.

Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki. Opis zmian funkcjonalności platformy E-GIODO wprowadzających możliwość podpisania wniosku bezpośrednio w oknie przeglądarki. Wstęp. Opisane poniżej zmiany wprowadzają modyfikacje platformy e-giodo w zakresie

Bardziej szczegółowo

Instrukcja Instalacji

Instrukcja Instalacji Generator Wniosków Płatniczych dla Programu Operacyjnego Kapitał Ludzki Instrukcja Instalacji Aplikacja współfinansowana ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Spis treści

Bardziej szczegółowo

5.2. Pierwsze kroki z bazami danych

5.2. Pierwsze kroki z bazami danych 5.2. Pierwsze kroki z bazami danych Uruchamianie programu Podobnie jak inne programy, OO Base uruchamiamy z Menu Start, poprzez zakładkę Wszystkie programy, gdzie znajduje się folder OpenOffice.org 2.2,

Bardziej szczegółowo

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe Fiery Remote Scan Program Fiery Remote Scan umożliwia zarządzanie skanowaniem na serwerze Fiery server i drukarce ze zdalnego komputera. Programu Fiery Remote Scan można użyć do wykonania następujących

Bardziej szczegółowo

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname="mainregion" />

xmlns:prism=http://www.codeplex.com/prism c. <ContentControl prism:regionmanager.regionname=mainregion /> 1 Tworzenie Shella a. W pierwszej kolejności tworzymy nowy projekt: WPF Application. Name: Shell SolutionName: PrismApp b. Dodajemy bibliotekę PRISM za pomocą NuGet Managera (dla.net Framework 4.5 Prism

Bardziej szczegółowo

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista

Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista 5.0 5.3.3.6 Laboratorium - Monitorowanie i zarządzanie zasobami systemu Windows Vista Wprowadzenie Wydrukuj i uzupełnij to laboratorium. W tym laboratorium, będziesz korzystać z narzędzi administracyjnych

Bardziej szczegółowo

Dodawanie grafiki i obiektów

Dodawanie grafiki i obiektów Dodawanie grafiki i obiektów Word nie jest edytorem obiektów graficznych, ale oferuje kilka opcji, dzięki którym można dokonywać niewielkich zmian w rysunku. W Wordzie możesz zmieniać rozmiar obiektu graficznego,

Bardziej szczegółowo

INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH

INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH INSTRUKCJA INSTALACJI OPROGRAMOWANIA MICROSOFT LYNC 2010 ATTENDEE ORAZ KORZYTANIA Z WYKŁADÓW SYNCHRONICZNYCH Wstęp Warunkiem uczestnictwa w wykładzie zdalnym jest zainstalowanie na komputerze ucznia uczestnika

Bardziej szczegółowo

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main. Część XVI C++ Funkcje Jeśli nasz program rozrósł się już do kilkudziesięciu linijek, warto pomyśleć o jego podziale na mniejsze części. Poznajmy więc funkcje. Szybko się przekonamy, że funkcja to bardzo

Bardziej szczegółowo

1. Przypisy, indeks i spisy.

1. Przypisy, indeks i spisy. 1. Przypisy, indeks i spisy. (Wstaw Odwołanie Przypis dolny - ) (Wstaw Odwołanie Indeks i spisy - ) Przypisy dolne i końcowe w drukowanych dokumentach umożliwiają umieszczanie w dokumencie objaśnień, komentarzy

Bardziej szczegółowo

Na komputerach z systemem Windows XP zdarzenia są rejestrowane w trzech następujących dziennikach: Dziennik aplikacji

Na komputerach z systemem Windows XP zdarzenia są rejestrowane w trzech następujących dziennikach: Dziennik aplikacji Podgląd zdarzeń W systemie Windows XP zdarzenie to każde istotne wystąpienie w systemie lub programie, które wymaga powiadomienia użytkownika lub dodania wpisu do dziennika. Usługa Dziennik zdarzeń rejestruje

Bardziej szczegółowo

Instrukcja obsługi systemu zarządzania treścią dwajeden.pl

Instrukcja obsługi systemu zarządzania treścią dwajeden.pl Instrukcja obsługi systemu zarządzania treścią dwajeden.pl Tworzenie i edycja danych na stronie www 1. Rozpoczęcie pracy. Logowanie się do systemu zarządzania treścią dwajeden.pl ropocząć należy od podania

Bardziej szczegółowo

Załącznik 1 instrukcje instalacji

Załącznik 1 instrukcje instalacji Załącznik 1 instrukcje instalacji W poniższym załączniku przedstawione zostaną instrukcje instalacji programów wykorzystanych w trakcie tworzenia aplikacji. Poniższa lista przedstawia spis zamieszczonych

Bardziej szczegółowo

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Pracownia internetowa w każdej szkole (edycja Jesień 2007) Instrukcja numer D1/04_01/Z Pracownia internetowa w każdej szkole (edycja Jesień 2007) Opiekun pracowni internetowej cz. 1 (D1) Tworzenie kopii zapasowej ustawień systemowych serwera - Zadania do wykonania

Bardziej szczegółowo

Dokumentacja użytkowa

Dokumentacja użytkowa 1 Dokumentacja użytkowa 2 Spis treści 1. Ekran wprowadzenia do aplikacji. 3 2. Rejestracja i logowanie 4 2.1. Ekran logowania do aplikacji 4 2.2. Ekran przypomnienia hasła 5 2.3. Ekran rejestracji 6 3.

Bardziej szczegółowo

Zadanie 1. Stosowanie stylów

Zadanie 1. Stosowanie stylów Zadanie 1. Stosowanie stylów Styl to zestaw elementów formatowania określających wygląd: tekstu atrybuty czcionki (tzw. styl znaku), akapitów np. wyrównanie tekstu, odstępy między wierszami, wcięcia, a

Bardziej szczegółowo

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom: 1. QT creator, pierwsze kroki. Qt Creator wieloplatformowe środowisko programistyczne dla języków C++, JavaScript oraz QML, będące częścią SDK dla biblioteki Qt. Zawiera w sobie graficzny interfejs dla

Bardziej szczegółowo

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką Autor: Paweł Konieczny Promotor: dr Jadwigi Bakonyi Kategorie: aplikacja www Słowa kluczowe: Serwis

Bardziej szczegółowo

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania 1) Cel ćwiczenia Celem ćwiczenia jest zapoznanie się z podstawowymi elementami obiektowymi systemu Windows wykorzystując Visual Studio 2008 takimi jak: przyciski, pola tekstowe, okna pobierania danych

Bardziej szczegółowo

Edytor materiału nauczania

Edytor materiału nauczania Edytor materiału nauczania I. Uruchomienie modułu zarządzania rozkładami planów nauczania... 2 II. Opuszczanie elektronicznej biblioteki rozkładów... 5 III. Wyszukiwanie rozkładu materiałów... 6 IV. Modyfikowanie

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

Aktualizacja do systemu Windows 8.1 przewodnik krok po kroku

Aktualizacja do systemu Windows 8.1 przewodnik krok po kroku Aktualizacja do systemu Windows 8.1 przewodnik krok po kroku Windows 8.1 instalacja i aktualizacja Zaktualizuj BIOS, aplikacje, sterowniki i uruchom usługę Windows Update Wybierz typ instalacji Zainstaluj

Bardziej szczegółowo

System imed24 Instrukcja Moduł Analizy i raporty

System imed24 Instrukcja Moduł Analizy i raporty System imed24 Instrukcja Moduł Analizy i raporty Instrukcja obowiązująca do wersji 1.8.0 Spis treści 1. Moduł Analizy i Raporty... 3 1.1. Okno główne modułu Analizy i raporty... 3 1.1.1. Lista szablonów

Bardziej szczegółowo

Instrukcja użytkownika

Instrukcja użytkownika Instrukcja użytkownika Bydgoszcz 2017 Strona: 1/12 Spis treści 1 Konfiguracja i obsługa funkcjonalności... 3-1.1 Wstęp... 3 1.2 Konfiguracja stacji klienckiej... 3 1.3 Weryfikacja istniejącego dokumentu...

Bardziej szczegółowo

Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0

Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0 Instrukcja obsługi SafeIT - modułu zdalnego sterowania do sterowników kotłów CO firmy Foster v1.0 Wersja z dnia: 2017-08-21 Spis treści Opis... 3 1. Zasady bezpieczeństwa... 3 Instalacja... 3 Użytkowanie...

Bardziej szczegółowo

Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej (CAS) przez użytkowników podobszaru PS

Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej (CAS) przez użytkowników podobszaru PS Instrukcja wczytywania i przekazywania zbiorów centralnych w Centralnej Aplikacji Statystycznej (CAS) przez użytkowników podobszaru PS Uwaga! Opisane w niniejszej instrukcji funkcje Centralnej Aplikacji

Bardziej szczegółowo

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800.

Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800. Jak zainstalować i skonfigurować komunikator MIRANDA, aby wyglądał i funkcjonował jak Gadu Gadu Tutorial by t800. Wraz z niniejszym tutorialem, dołączone są 4 pliki (krok0, krok1, itd). Nie należy ich

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

Przewodnik Szybki start

Przewodnik Szybki start Przewodnik Szybki start Program Microsoft Access 2013 wygląda inaczej niż wcześniejsze wersje, dlatego przygotowaliśmy ten przewodnik, aby skrócić czas nauki jego obsługi. Zmienianie rozmiaru ekranu lub

Bardziej szczegółowo

INSTRUKCJA EDYCJI PROFILU OSOBOWEGO W SERWISIE WWW.UMCS.PL

INSTRUKCJA EDYCJI PROFILU OSOBOWEGO W SERWISIE WWW.UMCS.PL INSTRUKCJA EDYCJI PROFILU OSOBOWEGO W SERWISIE WWW.UMCS.PL Lublin, 16 stycznia 2014 r. 1. Logowanie do systemu Aby rozpocząć edycję profilu osobowego wejdź na stronę główną www.umcs.pl w zakładkę Jednostki

Bardziej szczegółowo

Logowanie do aplikacji TETA Web. Instrukcja Użytkownika

Logowanie do aplikacji TETA Web. Instrukcja Użytkownika Logowanie do aplikacji TETA Web Instrukcja Użytkownika Spis treści 1 Wstęp... 2 1.1 O tym dokumencie... 2 1.2 Przyjęte oznaczenia... 2 1.3 Cel i zakres systemu... 2 1.4 Instalacja wtyczki Silverlight...

Bardziej szczegółowo