Translacja
Aplikacja.java -> aplikacja.class -> aplikacja.dex +zasoby -> aplikacja.apk
Instalacja
Aplikacja.apk + prawa dostępu -> urządzenie Komponenty aplikacji
Komponenty stanowią odrębne od siebie i autonomiczne składniki aplikacji. Różnią się cyklem życia i przeznaczenie. Część z nich może pełnić rolę punktów wejścia sterowania z systemu do aplikacji.
Cztery rodzaje komponentów
• Aktywność - pojedynczy ekran z Ul, np.: lista wpisów, edycja pojedynczego opisu, odczyt pojedynczego wpisu
• Usługa - proces drugoplanowy wykonujący długotrwałe przetwarzanie lub obsługujący zewnętrzne zlecenia. Brak Ul. Może być uruchamiana przez aktywność. Aktywności mogą komunikować się z uruchomionymi usługami. Przykład odtwarzanie muzyki w tle.
• Dostawca treści - pozwala innym aplikacjom uzyskać dostęp do danych i źródeł danych (pliki, baza, sieć) zarządzanych przez naszą aplikację. Ponadto zarządza danymi prywatnymi aplikacji.
• Odbiornik komunikatów - komunikaty emitowane w systemie są przejawem zdarzeń pochodzenia sprzętowego, lub programowego. Zwykle pozwala dodać obsługę do przechwytywanego komunikatu jako obiektu klasy intent[]
Aktywowanie komponentów
Aktywności, usługi i odbiorniki komunikatów są aktywowane za pomocą asynchronicznych komunikatów zwanych intencjami. Intencje przesyłane są między komponentami niezależnie, czy komponenty należą do jednej, czy do wielu aplikacji.
Intencje definiowane są dla konkretnych komponentów lub rodzajów komponentów. Dzielą się na publiczne (nazwane) i anonimowe.
Dla aktywności i usług nadchodząca intencja określa działanie jakie ma być podjęte (np. odtwórz, wyślij) oraz parametr danych do przetworzenia (np. adres)
Intencje zawierają również komunikaty rozsyłane w systemie i przeznaczane do przechwycenia przez określone odbiorniki. Źródłem intencji mogą być również aktywności kończące swe działanie.
Dostawcy treści nie są aktywowani bezpośrednio przez intencje , lecz przez konkretne żądania dostępu do danych przetwarzane przez klasę ContentResolver[]. Komponent aplikacji pobierający/zapisujący dane posługuje się metodami klasy...
Uruchomienie aktywności przez przekazanie intencji metodzie startActivity() lub metodzie startActivityForResult() jeśli oczekujemy intencji zwrotnej