Opracowanie zagadnień na egz PDF

Title Opracowanie zagadnień na egz
Course Programowanie aplikacji mobilnych
Institution Politechnika Lubelska
Pages 7
File Size 299.3 KB
File Type PDF
Total Downloads 320
Total Views 435

Summary

Aktywność i cykl życia aktywności Intencje i przekazywanie wartości przez intencje Uruchamianie nowych aktywności i aplikacji programowo, filtry intencji Tworzenie GUI w Javie Tworzenie GUI w XML Wagi i jednostki w graficznym interfejsie użytkownika Tworzenie okien dialogowych Tworzenie i obsługa po...


Description

1. Aktywność i cykl życia aktywności 2. Intencje i przekazywanie wartości przez intencje 3. Uruchamianie nowych aktywności i aplikacji programowo, filtry intencji 4. Tworzenie GUI w Javie 5. Tworzenie GUI w XML 6. Wagi i jednostki w graficznym interfejsie użytkownika 7. Tworzenie okien dialogowych 8. Tworzenie i obsługa powiadomień 9. Zachowanie stanu aplikacji podczas zmian konfiguracji 10. Obsługa zdarzeń poprzez odbiorców zdarzeń 11. Obsługa gestów 12. Tworzenie dostawcy treści 13. Obsługa bazy danych SQLite 14. Uprawnienia aplikacji 15. Komunikacja sieciowa w Androidzie - HTTP 16. Wysyłanie SMS i MMS 17. Rysowanie na ekranie 18. Obsługa kamery - robienie zdjęć 19. Odtwarzanie i zapis dźwięku 20. Obsługa czujników ruchu

1. Aktywnośc i cykl życia aktywności Aktywność: • Podstawowy składnik aplikacji dla systemu Android • Reprezentują czynność, którą może wykonać użytkownik • Wywoływane przez użytkownika (za pomocą tzw. launchera) lub przez inne aktywności (nawet w innych aplikacjach) Cykl życia aktywności: • aktywna – aktywność na pierwszym planie, użytkownik może jej używać • wstrzymana – aktywność jest częściowo przesłonięta przez inny element (nie otrzymuje informacji o zdarzeniach). Powinna: - zatrzymać animacje i inne działania obciążające CPU - zachować niezapisane zmiany (tylko gdy użytkownik oczekuje, że zostaną zapisane na stałe) - zwolnić zasoby takie jak odbiorcy komunikatów, sensory (np. GPS, aparat) itp. • zatrzymana – całkowicie niewidoczna (w tle). - powinna zwolnić wszystkie zasoby, które nie są potrzebne - może zostać zniszczona przez system gdy potrzebuje system pamięci

2. Intencje i przekazywanie wartości przez intencje Intencje obok Aktywności są jednym z podstawowych komponentów z których zbudowane są Androidowe aplikacje. Mechanizm ten odpowiedzialny jest przede wszystkim za obsługę rozkazów wydawanych przez użytkownika. Za pomocą intencji możemy wprowadzić komunikację pomiędzy aplikacjami (lub mniejszymi komponentami, jak Usługi, Aktywności itp.). Jednak najważniejszym zadaniem tego komponentu jest uruchamianie odpowiednich aplikacji/Aktywności. Intencje uruchamiające podzielone zostały na dwa główne typy: • Jawne (explicit) – czyli takie, w których jasno precyzujemy obiekt, który chcemy stworzyć. W tym wypadku jednym z argumentów konkstruktora Intencji jest obiekt typu Class (np. MainActivity.class) wskazujący na klasę, której obiekt chcemy stworzyć. Najprostszy przykład to: Intent intent = new Intent(context, MainActivity.class); Intencja tak, jak łatwo się domyślić, uruchomi aktywność MainActivity. Niejawne (implicit) – są to intencje, w których zawieramy informacje o tym co chcemy zrobić, bez podawania konkretnych klas, które mają to zrealizować. Najczęściej opisujemy to dwoma informacjami – co chcemy zrobić i na jakich danych chcemy tą czynność wykonać. W takim wypadku to system (za pomocą Filtrów Intencji) decyduje jaka Aktywność ma być uruchomiona. Przykład: •

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); W tym wypadku informujemy nasz system o tym, że chcemy zobaczyć dane (Intent.ACTION_VIEW) zapisane pod adresem URI (w tym wypadku adres URL strony) Przesyłanie danych Oprócz uruchamiania komponentów Intencje pozwalają na dołączanie informacji, które mogą być przesłane do uruchamianego obiektu. Służy do tego zestaw metod putExtra(…), które pozwalają na dołączanie danych w postaci typów prostych (lub paczek Bundle). Przykładem takiej operacji niech będzie: intent.putExtra("UserID", 123); Aby pobrać powyższe dane w nowo uruchomionej Aktywności należy wykonać komplet poniższych operacji: Intent intent = getIntent(); int userId = intent.getIntExtra("UserID", 0); Pierwsza linijka pobiera Intencję, która uruchomiła Aktywność (należy pamiętać o sprawdzeniu czy przypadkiem zawracana wartość nie jest nullem). Druga linijka to pobranie wartości za pomocą jednej z metod get…Extra(…). Pierwszym argumentem tych metod jest nazwa pod którą dana wartość została zapisana. Drugim natomiast – wartość domyślna, na wypadek gdyby Intencja nie zawierała żadnych danych zapisanych pod podanym ciągiem znaków.

3. Uruchamianie nowych aktywności i aplikacji programowo, filtry intencji Aktywność może uruchomić inną aktywność i przekazać do niej dane. Może otrzymać wyniki. Uruchamiane aktywności układane są na stosie (tzw. back stack). Do poprzedniej aktywności można wrócić za pomocą przycisku wstecz. Wszystkie aktywności muszą być zadeklarowane w manifeście Przykład uruchomienia aktywności: Intent zamiar=new Intent(this, Druga.class); startActivity(zamiar); pierwszy parametr przy tworzneiu nowej intencji to kontekst a drugi to nazwa klasy aktywności którą chcemy wywołać. Przykład uruchomienia przeglądarki w celu wyswietlenia strony (niejawnie) private void openUrlAddress() { Uri url = Uri.parse("http://www.google.com"); Intent intent = new Intent(Intent.ACTION_VIEW, url); startActivity(intent); } Filtry Intencji w Androidzie są bardzo ważnym elementem, który pozwala decydować systemowi jaki komponent (Aktywność, Usługa, Odbiorca treści) ma zostać wywołany dla Intencji posiadającej konkretną akcję lub dane. Aby zarejestrować nasz komponent do obsługi konkretnej intencji w pliku AndroidManifest.xml, wewnątrz elementu (lub service, receiver) musimy dodać element . Oto przykładowy szkielet takiego kodu:





Element posiada jeden atrybut – android:name, w którym podajemy unikalny ciąg znaków identyfikujący akcję. również posiada tylko jeden atrybut: android:name. Ciąg znaków, który podajemy tutaj możemy pobrać z android.intent.category.* jest elementem, która wskazuje jaki typ danych ma obsługiwać nasz komponent. W przeciwieństwie do powyższych elementów posiada kilka atrybutów pozwalających dokładnie określić typ danych

4. Tworzenie GUI w Javie Polega na stworzeniu kodu, ktory tworzy obiekty klas pochodnych View i budowaniu hierarchii komponentow w kodzie Java KTO TEGO UŻYWA?

5 Tworzenie GUI w XML Tworzenie plików XML opisujących układ elementów. Obiekty zostaną stworzone na podstawie XML w momencie wywołania metody setContentView(id) w aktywności. Nazwy elementów w XML odpowiadają nazwom klas np. ↔ TextView, ↔ LinearLayout Elementy posiadają atrybuty. Najbardziej typowe to: • android:id="@+id/unikalnyIdentyfikator" definiuje unikalny identyfikator elementu • android:text="@string/unikalnyIdentyfika tor" określa tekst etykiety lub początkową wartość pola tekstowego (zalecane odwołanie do zasobów) • android:orientation="vertical" lub "horizontal" pozwala (m.in.) na określenie sposobu rozmieszczenia elementów przez liniowego zarządcę układu • android:layout_width="match_parent" lub "wrap_content" i android:layout_height="match_parent" lub "wrap_content" pozwalają na ustalenie szerokości oraz wysokości zarządcy/komponentu. Wartość: - match_parent - zarządca/komponent wypełni cały obszar zajmowany przez swojego rodzica - wrap_content - rozmiar komponentu zostanie dopasowany do zawartości android:paddingBottom = "@dimen/activity_vertical_margin", android:paddingLeft = "@dimen/activity_horizontal_margin", android:paddingRight = "@dimen/activity_horizontal_margin", android:paddingTop = "@dimen/activity_vertical_margin" określają odpowiednio dolny, lewy, prawy i górny margines wewnętrzny. Są podobne do atrybutu margin, który określa margines zewnętrzny.



Najważniejsze typy układów to: • Układ liniowy - • Układ względny • Układ tabelaryczny Przykład układu w XML:



6. Wagi i jednostki w graficznym interfejsie użytkownika Atrybut komponentu android:layout_weight="1" - określa, w jakim stopniu komponenty są rozciągane przez liniowego zarządcę układu (LinearLayout) ● 0 - komponent nie jest rozciągany. ● w innym wypadku piksele dostępne w układzie będą rozdysponowane proporcjonalnie do wartości atrybutu (np. gdy layout_weight jest równe 2 i 3, to pierwszy otrzyma 2/5 a drugi 3/5 wolnej przestrzeni. Przykład: mamy 3 elementy w layoucie o układzie poziomym. Pierwszy element ma wagę 5, drugi 3,a trzeci 2. Musimy zsumować te wagi, wychodzi nam 10. Pierwszy element zajmuje połwę całego layoutu (bo ma wagę 5, a suma wag wynosi 10: 5/10=0,5), drugi element zajmuje 3/10 całego layoutu, a trzeci 2/10.



Jednostki: Zalecane jest stosowanie układów elementów, które się skalują (duża różnorodność urządzeń). Czasami trzeba podać konkretne wymiary. Można stosować następujące jednostki: ● dp (=dip) – density-independent pixels (na ekranie 160dpi 1dp ≈ 1px) ● sp – jak dp dla rozmiarów czcionek (uwzględniają ustawienia rozmiaru czcionki) ● pt – punkt 1/72 cala na ekranie ● px – piksel ● mm – milimetr na ekranie ● in – cale na ekranie Przykład zastosowania :...


Similar Free PDFs