Do nauki

Android - zasoby domyślne oraz zasoby alternatywne, w jaki sposób system określa z których zasobów skorzystać.

Pisząc o zasobach mamy na myśli napisy, kolory, obrazki, dźwięki czy animacje. Dla każdego typu zasobu możemy ustawić zasób domyślny oraz dowolną ilość zasobów alternatywnych, przypisanych do konkretnego urządzenia czy konkretnych ustawień. Wskazówką dla Androida z jakimi zasobami ma do czynienia jest nazwa folderu, w którym się znajdują. Android daje możliwość zdefiniowania alternatywnych zasobów w zależności od konfiguracji środowiska, w którym uruchamiana jest aplikacja. Aby skorzystać z tej możliwości, wystarczy alternatywną wersję zasobu umieścić w katalogu zawierającym w nazwie jeden lub kilka kwalifikatorów (Gdy podajemy ich więcej, wszystkie muszą być od siebie oddzielone myślnikiem) zdefiniowanych przez Androida. Takim kwalifikatorem może być np. język, orientacja ekranu czy jego rozdzielczość. Jak Android określa, który zasób powinien wykorzystać? Algorytm eliminuje najpierw te foldery, które zawierają ustawienia sprzeczne z aktualnymi ustawieniami urządzenia (jeżeli nie zapewniamy szczególnych zasobów dla aktualnych ustawień na tym etapie jedynym folderem jaki pozostanie jest folder domyślny). Następnie odrzuca te foldery, które nie zawierają ustawień odpowiadających ustawieniom urządzenia (jeżeli język jest pl, to każdy folder, który nie zawiera pl zostanie odrzucony, tak domyślny folder też na tym etapie wyleci). Całość jest powtarzana dopóki nie pozostanie tylko jeden folder z zasobami. Pewien wyjątek stanowią obrazy dla różnych rozdzielczości ekranu. Jeżeli odpowiednie nie zostaną znalezione, mogą zostać użyte te o mniejszej rozdzielczości. Jeżeli nie ma odpowiednich lub mniejszych, są tylko większe, aplikacja zgłosi błąd.

Stos programowy systemu android.

Android posiada warstwową architekturę, System operacyjny Android oparty jest na jądrze Linuksa w wersji 2.6, które zapewnia obsługę najniższych warstw takich jak zarządzanie pamięcią, procesami, siecią czy sterownikami Wyższą warstwę systemu stanowią biblioteki, odpowiedzialne m.in. za media (obsługa audio, wideo i zdjęć), wyświetlanie grafiki 2D i 3D (OpenGL), czcionek (FreeType) czy dostęp do bazy danych (SQLite). Środowisko działania dla aplikacji stanowi maszyna wirtualna Dalvik – do kodu tejże maszyny komplikowane są aplikacje napisane w Javie. Jest to specjalna wersja maszyny wirtualnej zaprojektowana przez Google dla urządzeń mobilnych, niekompatybilna ze standardową maszyną wirtualną Java. Najwyższe warstwy systemu stanowią framework aplikacji oraz same aplikacje.

Android: GUI Podstawą GUI w Androidzie jest widok, reprezentowany przez klasę View. Jest to podstawowy element GUI, który służy do wyświetlania konkretnych elementów interfejsu, takich jak przyciski czy pola tekstowe. Specjalnym wariantem widoku jest klasa ViewGroup , która reprezentuje grupę widoków. Jest to element, który najczęściej sam nic sobą nie reprezentuje, służy jako kontener dla innych widoków. Obiekty tych dwóch klas tworzą hierarchiczną, drzewiastą strukturę, w której liśćmi są widoki z grupą widoków jako rodzicem. Korzeniem hierarchii, która ma więcej niż jeden poziom, będzie obiekt typu ViewGroup . Grupa widoków jest najczęściej określana mianem layoutu, czyli obiektu definiującego sposób umieszczania kontrolek w ramach pewnego obszaru. Aby podpiąć taką hierarchę widoków do ekranu celem wyświetlenia, należy skorzy-stać z metody setContentView() klasy Activity.

Omów cykl życia aplikacji systemu android

Cykl życia składa się z kilku metod

onCreate(Bundle) – jest to metoda wywoływana przy pierwszym uruchomieniu aplikacji. Można ją zastosować do jednorazowej inicjacji. Najczęściej tworzymy w niej interfejs użytkownika oraz wywołujemy własne metody. onCreate() jako jedyna z całego cyklu przyjmuje parametr, jest nim najczęściej uprzednio zapisany stan aplikacji. onStart() – wywoływana jest za każdym razem, gdy aktywność jest wyświetlona użytkownikowi. onResume() – jest to bardzo ważny element całego cyklu życia. Metoda ta działa za każdym razem, gdy możliwa jest interakcja z użytkownikiem (np. rozpoczęcie odtwarzania, czy przywrócenie zasobów do pamięci). onPause() – jest to pierwsza wywołana metoda, gdy aplikacja przesunięta jest w tło. Należy w niej zwolnić wszystkie zasoby oraz zatrzymać interakcję z użytkownikiem. onStop() – gdy aplikacja nie jest już potrzebna podlega zatrzymaniu. Niestety na urządzeniach z małą ilością pamięci RAM często jest ona pomijana na rzecz całkowitego wyłączenia aplikacji. onRestart() – metoda wywoływana jedynie po wznowieniu ze stanu zatrzymania.
onDestroy() – działa przed samym wyłączeniem aplikacji.

Aktywnością jest ekran interfejsu użytkownika odpowiedzialny za wykonywanie danej fazy programu. W jednej aplikacji może występować ich wiele. Obowiązkiem każdej z nich jest zapisywanie swojego stanu. Aktywności układają się w stos, to znaczy ostatnio otwarty ekran znajduje się na samej górze stosu.

Dostawca treści Współdzielenie danych pomiędzy aplikacjami urządzenie przenośnego jest powszechne stosowaną praktyką. Android definiuje więc standardowy mechanizm dzielenia danych (takich jak listy kontaktów) wśród aplikacji bez konieczności odsłaniania podstawowych magazynów struktury oraz implementacji. Dzięki dostawcom treści można ujawniać dane oraz pozwalać jednym aplikacjom korzystać z zasobów innych programów.

Intencją opisujemy określone działanie, najprostsze przykłady to „uruchom nową aktywność”, „zadzwoń na podany numer”, czy też ”uruchom kamerę”. Każda czynność w Androidzie przechodzi przez intencje. Oto bardzo prosty przykład uruchamiania nowej aktywności: Intent I = new Intent(this, MyActivity.class); StartActivity(I); Intencja I ma uruchomić klasę rozszerzającą aktywność o nazwie MyActivity.

Usługi są zadaniami uruchomionymi w tle. Jeżeli chcemy wykonać jakieś dłuższe obliczenia, lub pobierać dane, a nawet odtwarzać muzykę, musimy wykorzystać usługi.

Klasa View stanowi klasę bazową dla wszystkich widgetów GUI (Button, RadioButton, TextView, itd...) zwanych Widokami (Views). Nie należy przy tym mylić aplikacji typu widget z widgetami GUI. Te pierwsze stanowią miniaturowe aplikacje, które mogą być włączane w inne (np. aplikacjie dla Home screen'a). Widgety GUI zaś stanowią widoki w obrębie aktywności (Activities). Warto tutaj dodać, że GUI zdefiniowane jest w plikach XML a następnie tłumaczone na język Java. Proces polega na parsowaniu XML i przekształceniu go w odpowiadające obiekty Java (inflating XML).

Klasa Activity Aktywności (Activities) są najczęściej stosowane, gdyż aktywność to jeden ekran twojej aplikacji. Każda aktywność to klasa dziedzicząca klasę "Activity". Klasa aktywności wyświetli interfejs użytkownika złożony z Widoków (Views) i będzie reagować na zdarzenia. Wiele aplikacji będzie miało więcej niż jeden ekran. Każdy z nich byłby oddzielną aktywnością, a przejście do innego ekranu równałoby się w kodzie z uruchomieniem nowej aktywności. Gdy nowy ekran zostanie otwarty, to poprzedni ekran jest zatrzymywany i przechowywany w stosie historii. Użytkownik może nawigować wstecz po wcześniej otwartych ekranach w historii. Ekrany mogą też "wybrać" opcję ich usunięcia z historii.

Klasa ContentProvider Aplikacje mogą przechowywać swoje dane w plikach, bazie SQLite, czy za pomocą innych mechanizmów. Dostawcy Treści (Content Providers) to klasy implementujące standardowy zestaw metod umożliwiając innym aplikacjom dostęp do składowany danych.

Klasa BroadcastReceiver oraz klasa Intent "Subskrybenci" (Broadcast Receivers) oraz "Zamierzenia" (Intents) umożliwiają wspólnie wykonanie aplikacji w reakcji na zewnętrzne zdarzenie - np. telefon zaczyna dzwonić, lub jest południe.

Klasa BroadcastReceiver i jej subklasy działają jako "subskrybenci" w mechaniźmie komunikacji typu publish/subscribe (pub/sub) zaimplementowanym w systemie Android. Jest to klasa bazowa dla kodu, który odbiera "zamierzenia" (Intents) wysłane za pomocą sendBroadcast(). Z kolei klasa Intent i jej subklasy stanowią w tym mechanizmie "wiadomości". Zamierzenia zawierają ponadto informację pozwalającą systemowi Android zdecydować, która aplikacja przejąć i odpowiedzieć na zdarzenie. Klasa ServiceUsługi (Services) to kod, który działa nieprzerwanie przez dłuższy okres czasu i nie zawiera interfejsu użytkownika. Przykładowo tworząc odtwarzacz multimedialny mielibyśmy kilka Aktywności pozwalających wybrać listę piosenek do odtwarzania, lecz samo ich odtwarzanie powinno być obsługiwane przez usługę, która będzie działać nawet po przejściu do innych ekranów.

Manifest jest kolejną ważną częścią aplikacji opartej na systemie Android. Jest to plik XML, który pełni wiele zasadniczych funkcji. W pierwszej kolejności określa pakiety Javy dla aplikacji – jest to mechanizm organizacji klas. Nazwy pakietów są unikatowymi identyfikatorami w obrębie aplikacji. Ponadto opisuje komponenty aplikacji. Określa klasy oraz ich możliwości. Przykładem może być określenie dla aplikacji, które zamierzenie (Intent) będzie mogła obsłużyć. Są to informacje dla systemu Android, który potem decyduje, której aplikacji przekazać prawo do działania. Inne funkcje to : determinacja procesów do obsługi poszczególnych komponentów aplikacji, określenie zakresu uprawnień dla aplikacji w przypadku dostępu do chronionych części API oraz interakcją z innymi aplikacjami, określenie uprawnień jakie inne aplikacje powinny zawierać aby mieć dostęp do naszej aplikacji, określenie minimalnego poziomu API, który aplikacja wymaga. Znamiennym jest fakt, że nawet pomimo obecności klas rozszerzających Activity, ContentProvider , BroadcastReceiver czy Service – klasy nie mogą zostać użyte dopóki nie zostaną wpisane w Manifescie. Zasoby Każda nowoczesna technologia aplikacji zawierająca graficzny interfejs użytkownika GUI wykorzystuje Zasoby (Recources) w różnej postaci. Są to : elementy graficzne, GUI layouts (pliki XML), definicje Menu (pliki XML), łańcuchy znaków (Textual strings) Specjalna klasa R zawiera referencje do poszczególnych zasobów. Zapewnia to system kontroli już na etapie kompilowania w przypadku gdyby pojawiły się błędy z wykrywaniem nieistenijących zasobów.

Tworzenie interfejsu graficznego

Interfejs aplikacji pisanych dla systemu Android składa się z layoutów, zawierających szereg elementów tzw. widoków.

Dostępnych jest kilka rodzajów layoutów:

LinearLayout – layout liniowy, w którym elementy wyświetlane są jeden pod drugim lub obok drugiego, w zależności od orientacji (pionowa/pozioma),

RelativeLayout – rozmieszczenie elementów następuje względem siebie – poszczególne widoki mogą być wyświetlane np. po prawej stronie czy nad innym elementem,

FrameLayout – najprostszy layout, zawierający tylko jeden element,

TableLayout – widok tabelaryczny,

AbsoluteLayout – layout, w którym poszczególne elementy są rozmieszczone względem lewego górnego punktu na ekranie.

Najczęściej stosowane są dwa pierwsze rozwiązania, przy czym należy pamiętać, że poszczególne layouty można zagnieżdżać (czyli np. LinearLayout może zawierać w sobie kilka RelativeLayout).

 Wśród widoków do najczęściej stosowanych elementów należą:

TextView – prosta kontrolka do wyświetlania tekstu,

EditText – pole tekstowe do wprowadzania tekstu przez użytkownika,

ListView – wyświetlanie list elementów,

Button – przyciski.

Każdy z tych elementów dziedziczy po klasie View i posiada ogólne właściwości, takie jak szerokość, wysokość, id, pozycję etc. Layouty jak i poszczególne kontrolki można tworzyć zarówno z poziomu kodu Java jak i XML.

Stosowanie animacji przejść
W przypadku animacji przejść można wykorzystać jeden zasób graficzny — grafikę rastrową obiekt ShapeDrawable, TextView lub dowolny inny typ obiektu View — a poszczególne klatki animacji są generowane i wyświetlane przez system. Android udostępnia możliwość wykorzystania kilku najczęściej stosowanych przekształceń, takich jak zmiany kanału alfa, obroty, skalowania i przesunięcia. Takim przekształceniom można poddawać dowolny obiekt typu View, niezależnie od tego, czy będzie to kontrolka ImageView z wyświetlonym obrazkiem rastrowym lub kształtem, czy też cały układ (taki jak TableLayout).

Elementy składowe aplikacji sys. Android: src - Folder przechowujący kod źródłowy aplikacji. res - Folder zawierający zasoby aplikacji. Jest to folder nadrzędny wobec węzłów drawable, anim, layout, menu, values, xml oraz raw. Anim - W folderze tym są umieszczone pliki deskryptora na pisane w języku XML, opisujące animacje wykorzystywane przez aplikacje; layout - mieszczą. się tu widoki aplikacji. Bardziej opłaca się tworzenie widoków poprzez deskryptory języka XML, niż poprzez pisanie kodu. menu - Folder zawierający pliki deskryptorów list menu aplikacji. values - Przechowywane są w nim pozostałe zasoby wykorzystywane przez aplikacje. Wszystkie znajdujące się tu zasoby są opisane za pomocą deskryptorów XML. xml - Przykładowymi zasobami mogą być ciągi znaków, style oraz kolory. raw - Znajdują się tu dodatkowe pliki XML wykorzystywane przez aplikacje. Folder z dodatkowymi danymi — prawdopodobnie nieopisanymi w języku XML — wymaganymi przez aplikacje.

Przejście pomiędzy aktywnościami(activities)

Załóżmy więc, że posiadamy aplikację zawierającą 3 aktywności (pierwsza, druga i trzecia). Na każdej z nich zawarta jest informacja o nazwie aktywności oraz przycisk przenoszący na kolejną (1->2, 2->3, 3->1). Jeżeli przejdziemy w naszej uruchomionej aplikacji na 2 a następnie 3 aktywność i naciśniemy przycisk "BACK" wrócimy na element wcześniejszy czyli na aktywność 2. Działanie to wynika z domyślnego sposobu zarządzania aktywnościami w systemie Android i naszej aplikacji. Kolejne aktywności odkładane są na stos(heap), a każde naciśnięcie przycisku BACK powoduje zamknięcie bieżącej aktywności i tej z "góry" stosu.

Interpolatory wskazują animacji, w jaki sposób dana właściwość, na przykład gradient koloru zmienia się w dziedzinie czasu. Czy będzie się ona zmieniała w sposób liniowy, czy w sposób wykładniczy? Czy rozpocznie się szybko, lecz będzie zwalniała z biegiem czasu?

Animacja poklatkowa Animacja jest prostym procesem przedstawiającym serie obrazów następujących po sobie w krótkich przedziałach czasowych, w wyniku czego powstaje wrażenie poruszania obiektu. W taki sposób działają projektory filmowe.

Macierze transformacji są używane do przekształcenia w jakiś sposób widoku. Proces ten polega na przetłumaczeniu wejściowego zestawu współrzędnych pikseli i kombinacji kolorów na nowy zestaw współrzędnych pikseli i kombinacji kolorów. Po przeprowadzeniu transformacji ujrzymy obraz zmieniony po względem rozmiaru, pozycji, orientacji lub koloru.

Zastosowanie klasy Camera do wprowadzenia postrzegania przestrzeni w obrazie dwuwymiarowym Pakiet graficzny w Androidzie zawiera jeszcze jedną klasę związaną z animacja — a dokładniej transformacja — klasę Camera. Można ja wykorzystać do wprowadzenia postrzegania postrzegania rzutowanie obrazu dwuwymiarowego, poruszającego się w przestrzeni trójwymiarowej po płaszczyźnie. Możemy na przykład wysłać nasz widok ListView o 10 pikseli w głąb ekranu po osi z i obr6cic ja o 30 stopni wokół osi y.

CLDC Urządzenia mobilne o ograniczonych zasobach, 160 -512 kB pamięci ulotnej, 16-bitowylub32-bitowyprocesor, Częsta praca z wykorzystaniem zasilania bateryjnego, Komunikacja z ograniczoną przepustowością.

CDC 2 MB lub więcej pamięci ulotnej na platformę Javy, 32-bitowyprocesor, Wysoka przepustowość połączenia sieciowego, najczęściej przy wykorzystaniu protokołu TCP/IP.

Podstawowe typy animacji przejść Animacja skali. Ten typ animacji umozliwia powiększanie lub zmniejszanie vidoku w osi x oraz w osi y. Można także określić punkt zwrotny, wokół którego bedzie odtwarzana animacja.

■ Animacja rotacyjna. Dzięki niej można obracać widok widoki punktu zwrotnego o określony kąt. ■ Animacja translacyjna. Służy ona do przesuwania widoku wzdłuż osi x 1 ■ Animacja typu alfa. Służy do zmieniania przezroczystości widoku


Wyszukiwarka

Podobne podstrony:
(1) Wprowadzenie do nauki o finansach 1id 778 ppt
kolocki logo do nauki, glottodydaktyka
elektryka, Kierunki studiów, Architektura, Materiały do nauki=), Budownictwo, Segregacja tematyczna,
test z przedmiotu wstep do nauki o panstwie i prawie (1), testy, wstęp
X Wykładnia prawa ćw, Politologia, Wstęp do nauki o państwie a prawie, Ćwiczenia
ppj - wypisywanie liczb pierwszych w javie, Do nauki, Pytania, rozwiązania, prace
wersja do nauki, Studia - inżynieria & ochrona środowiska (inż. mgr.), Technologie wody i ścieków, P
Wydalanie i regulacja do nauki, WSKFIT 2007-2012, V semestr, fizjologia człowieka
Pytania - OTWP 81pyt, OTWP - Ogólnopolski Turniej Wiedzy Pożarniczej - Materiały do nauki
WIERSZYK DO NAUKI PIERWSZEJ POMOCY
wszysko do nauki wtorek
DO NAUKI Zarządzanie jakością
Kilka refleksji na temat budowania systemu motywowania uczniów do nauki
EIE egz do nauki!
Pomoc do nauki na mieszanki v1 0 1
WPROWADZENIE DO NAUKI SOCJOLOGII PRAWA$ 10 10 do skonczenia
Ekonomia kolokwium pojęcia do nauki
ESPERANTO Wprowadzenie do nauki języka międzynarodowego

więcej podobnych podstron