Miasto Programistów – trochę teorii, trochę praktyki część 1

Krzysztof Kulpiciński Android 2012-01-16

Miasto Programistów

Większość kursów programowania na Androida jest zdecydowanie praktyczna. Dostajemy kod, ale czy to ma sens skoro go nie rozumiemy?

Chcę by Miasto Programistów było długofalowym kursem praktycznym, jednak o podłożu teoretycznym. Chcę pokazać Wam jak należy programować na przykładach, ale również tworząc z Wami aplikacje. Najpierw chcę, żebyście zrozumieli jakimi mechanizmami posługują się aplikacje na Androida. Jednym zdaniem; nie chcę, aby ktoś, kto znalazł ten cykl, jedynie kopiował kod, chcę by go zrozumiał. Android ma bardzo klasyczne podejście do programowania, jednak należy zaznaczyć, że nie posiadamy tutaj żadnej metody main(). Program na Androida może mieć kilka punktów wejścia. Każdy element aplikacji odpowiada za inne działanie.

Niestety urządzenia mobilne mają bardzo ograniczoną moc obliczeniową oraz pamięć, dlatego ważne jest, aby zrozumieć, kiedy należy zwolnić zasoby, a kiedy je znowu przywrócić. Pomoże nam w tym zapoznanie się z cyklem życia aktywności. Aplikacje korzystają z wielu aktywności, aby uruchomić jedną z nich należy zrozumieć działanie kontekstu aplikacji oraz intencji. Te wszystkie rzeczy postaram się zawrzeć w pierwszej części nowego cyklu. Oczywiście do czynienia mamy z językiem Java. Jest to dosyć popularny język programowania, dlatego przed rozpoczęciem czytania kursu radzę zapoznać się z podstawami Javy (warto wiedzieć na przykład co to jest Garbage Collector, czy Maszyna Wirtualna).

Teoria jest ważna!

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. Aktywność jest jak najprawdziwszy organizm, posiada swój cykl życia i jego zrozumienie pozwoli Wam na dobre zarządzanie zasobami.

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.

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.

Kontekst pomaga nam w otrzymywaniu dostępu do wszystkich danych systemowych. Dzięki niemu możemy pobierać numer identyfikacyjny elementu (ID), uruchamiać aktywności lub określać gdzie dany element ma zostać uruchomiony.

Praktyka również…

Po przerobieniu teorii czas na obiecaną praktykę, a więc przygotujemy Sobie środowisko pracy.

Krok 1. Pobieramy Java JDK z adresu http://www.oracle.com/technetwork/java/javase/downloads/index.html

JDK

Krok 2.
Wchodzimy na stronę http://www.eclipse.org/downloads/ skąd pobieramy Eclipse IDE for Java Developers (wybieramy wersję odpowiednią dla naszego systemu operacyjnego).

Krok 3. Pobieramy ostatnią wersję Android SDK dostępną pod tym adresem: http://developer.android.com/sdk/index.html – najprościej, gdy pobierzecie  wersję instalowaną.Android SDK
Krok 4.
Instalujemy SDK. Bardzo często wyskakuje błąd informujący nas o braku JDK. W takim wypadku jedynym ratunkiem jest kliknięcie back, a następnie next, wtedy powinno wszystko działać.

Krok 5. Wybieramy interesujące nas elementy i czekamy cierpliwie na pobranie.

Android SDK
Krok 6.
Brawa! Zbliżamy się do końca, uruchamiamy Eclipse. Po załadowaniu wchodzimy w Help -> Install New Software… Dodajemy tam adres wtyczki ADT, a następnie ją pobieramy.

ADT
Wtyczkę znajdujemy pod adresem: http://dl-ssl.google.com/android/eclipse/

Krok 7. Wchodzimy w Window -> Preferences, wybieramy zakładkę Android i wskazujemy ścieżkę do SDK.

Gratulacje, pierwsza część kursu ukończona i to w 7 prostych krokach!

Źródło: własne





x