Teoria Android

Programowanie na platformę Android różni się nieco od zwykłego programowania w Javie. W tym przypadku łączone są dwa języki Java i XML. Pliki XML odpowiadają głównie za wygląd okna, czyli Layout, a pliki javowe odpowiadają za kod programu. Eclips zmienia te pliki w dwóch językach na jeden plik R.java, który jest wykonywany przez daną maszynę. Plik R.java można znaleźć w projekcie. Warto go otworzyć i zobaczyć co tam jest.

Aby połączyć pliki XML i java programiści z Google dorzucili kilka mechanizmów ułatwiających połączenie. Najważniejsze z tych mechanizmów to aktywności, intencje, usługi i dostawcy treści.

Aktywnością nazywamy ekran interfejsu użytkownika. Każda aplikacja może posiadać jedną lub kilka aktywności odpowiedzialnych za poszczególne fazy programu. Obowiązkiem każdej aktywności jest zapisywanie własnego stanu po to, aby można go później przywrócić w cyklu życia.

cykl życia aplikacji można przedstawić na wykresie:

Intencją nazywamy mechanizm opisujący określone działanie, na przykład "zadzwoń", "wyślij maila". W przypadku Androida każda czynność przechodzi przez intencje, więc jest to dosyć istotna klasa.

Usługi są to programy uruchamiane w tle bez konieczności ingerencji użytkownika. Najlepszym przykładem usługi jest odtwarzać muzyki, który działa nawet jak zmienimy okno odtwarzacza na inne.

Dostawca treści stanowi zbiór danych umieszczonych w niestandardowym interfejsie API, umożliwiającym ich odczytanie i zapisywanie. Jest to najlepszy sposób do dzielenia globalnych danych pomiędzy aplikacjami. Przykładem takiej usługi są kontakty z telefonu, które można dzielić pomiędzy różnymi aplikacjami.

Zasobem nazywamy bitmapę, ciąg znaków lub jakąś inną informację, która jest wymagana przez aplikację. Wszystkie zasoby są umieszczone w katalogu res. Każdy zasób powinien być ułożony w odpowiednich katalogach informujących o ich przeznaczeniu, np: grafika w katalogu drawable, a pliki XML odpowiadające za wygląd powinny być umieszczone w katalogu Layout. Podczas kompilacji są one wrzucane do wnętrza aplikacji, a plik R.java ma tylko odnośniki (adres) do odpowiednich zasobów.

Oczywiście niezastąpiona jest dokumentacja wszystkich dostępnych klas, którą można znaleźć na stronie http://developer.android.com/reference/packages.html