Przeczytaj
W listopadzie 2007 roku opublikowano pierwszą wersję Android SDK. W jej skład weszły następujące narzędzie programistyczne:
debbuger (program służący do dynamicznej analizy innych programów, w celu znalezienia i określenia zawartości ich błędów, tzw. bugów),
biblioteki (plik dostarczający dane, podprogramy oraz typy danych, z których można korzystać na poziomie kodu źródłowego programu, dzięki bibliotekom wielokrotnie używamy tego samego kodu),
emulator (program, który po uruchomieniu w danym systemie komputerowym duplikuje funkcje innego systemu komputerowego: pierwszy system to host – gospodarz, a drugi, emulowany przez pierwszy, nazywany jest guest – gość),
dokumentacja (ogół dokumentów stworzony dla określonego programu komputerowego, dokumentację dzielimy na techniczną i dokumentację użytkownika),
tutoriale (samouczki ukazujące krok po kroku, jak nauczyć się obsługi różnych urządzeń, programowania czy tworzenia wybranych plików; tutoriale są interaktywne, dokładniejsze niż instrukcje, bo nastawione na naukę na przykładzie),
FAQ (ang. frequently asked questions – zbiór krótkich porad i odpowiedzi na najczęściej pojawiające się pytania związane z obsługą systemu itp.).

Programiści, instalując Android SDK, mają do uwzględnienia określone parametry sprzętowe, ale mogą też korzystać z narzędzi konsolowych w celu tworzenia i debugowania aplikacji na Androida. Pojawiły się zarzuty, że system nie działa poprawnie, brakuje w nim opcji oficjalnego raportowania błędów, infrastruktura jakości nie jest spójna, a dostęp do materiałów technicznych – utrudniony. Pomimo tych uwag, tuż po upowszechnieniu Androida, do użytku trafiała prosta gra o nazwie Wąż (ang. Snake). Gracz ma za zadanie zjeść jak najwięcej (co sprawi, że wąż będzie coraz dłuższy), a przy tym nie uderzyć w ścianę ani w siebie samego.




Projektowanie aplikacji mobilnych
Co trzeba wziąć pod uwagę, tworząc aplikacje mobilne dla systemu operacyjnego Android? Należy pamiętać, że współpracuje on z urządzeniami mobilnymi, których zasoby są ograniczone, np. przez wydajność procesora lub rozmiar pamięci RAM.
Dodatkowo projektowanie aplikacji działających na urządzeniach z systemem operacyjnym Android wymaga analizy funkcjonalnej proponowanego rozwiązania oraz uwzględnienia specyfikacji warunków, w jakich uruchamiana jest ta aplikacja. Jednym z ważniejszych aspektów jest też sposób komunikacji aplikacji z różnymi podzespołami, w jakie wyposażone jest urządzenie, np. aparat, żyroskop czy GPS.
Przede wszystkim jednak efektywne projektowanie aplikacji, zgodne z założeniami systemu operacyjnego Android, wymaga poznania podstawowych pojęć.
Podstawowe komponenty aplikacji mobilnej
Funkcjonowanie aplikacji mobilnej obejmuje kilka podstawowych elementów składowych. Poznajmy ich definicje.
Kontekst (obiekt typu Context)
Kontekst jest środowiskiem, w którym uruchamiana jest zaprojektowana aplikacja mobilna. Za jego pośrednictwem można zarządzać aplikacją i uzyskiwać dostęp do parametrów aplikacji oraz urządzenia, na którym została uruchomiona.
Aktywność (obiekt typu Activity)
Aktywności to podstawowe elementy, z których tworzone są zaplanowane funkcjonalności aplikacji mobilnej. Oznacza to, że wywoływanie funkcji aplikacji mobilnej odbywa się przez uruchomienie aktywności. W danym zachowaniu można wywoływać kolejne aktywności, dzięki czemu uzyskujemy możliwość realizacji nawet bardzo złożonych scenariuszy. Podstawową właściwością aktywności jest krótki czas jej wykonania oraz kontakt z użytkownikiem aplikacji lub z innymi aplikacjami.
Intencja (obiekt typu Intent)
Intencje stanowią mechanizm obsługi zdarzeń występujących w aplikacji mobilnej (komunikaty asynchroniczne). Z wykorzystaniem mechanizmu intencji możliwe jest uruchomienie aktywności (także w innej aplikacji) lub serwisu w momencie wystąpienia określonego zdarzenia. Mechanizm intencji służy także do komunikacji między różnymi aplikacjami uruchomionymi na urządzeniu mobilnym oraz do obsługi zdarzeń pochodzących z innych aplikacji (np. połączenie przychodzące) i wyposażenia urządzenia (np. niski stan baterii, wykonano zdjęcie).
Usługa/Serwis (obiekt typu Service)
Usługi można traktować jako specyficzne zastosowanie aktywności. Zawierają one implementację funkcji, nie wykorzystują interfejsu komunikacji z użytkownikiem oraz wymagają długiego czasu działania. Może to wynikać z czasochłonnych algorytmów obliczeniowych lub z potrzeby dostępu do baz danych (w tym też tych zewnętrznych) i konieczności wysłania lub pobrania dużej ilości danych. Cechą charakterystyczną usługi jest działanie „w tle”. W postaci usługi często implementuje się funkcje działające cyklicznie.
Dostawcy treści (obiekt typu ContentProvider)
Dostawcy treści zapewniają dostęp do swoich zasobów innym aplikacjom zainstalowanym na urządzeniu. Udostępniane dane mogą być przechowywane przez dostawcę w bazie danych SQLite lub w innej trwałej postaci. Dostawcy treści mogą też być związani komponentami sprzętowymi zainstalowanymi w urządzeniu, takimi jak GPS.
Odbiorcy komunikatów (obiekt typu BroadcastReceiver)
Odbiorcy komunikatów umożliwiają komunikację z innymi aplikacjami dzięki otrzymywaniu konkretnych komunikatów wysyłanych przez inne aplikacje zainstalowane na urządzeniu.
Przyjrzyjmy się dwóm przykładowym implementacjom własnych komunikatów:
Pierwsza aplikacja jest nadawcą komunikatów. Rozesłanie komunikatu możliwe jest z wykorzystaniem przycisku lub zadania cyklicznego. Do rozsyłania komunikatów wykorzystana została metoda
sendBroadcast(intent).Druga aplikacja, obok głównej aktywności, posiada klasę definiującą odbiorcę komunikatów:
MojOdbiorcaKomunikatow, dziedziczącądziedziczącą po klasieBroadcastReceiver. KlasaMojOdbiorcaKomunikatowmusi być zadeklarowana w plikuAndroidmanifest.xml, z podaniem rodzaju komunikatu, na jaki ma reagować (filtr intencji). W przykładzie zdefiniowano własny typ komunikatu:
Przygotowanie środowiska programistycznego

Poznaliśmy już podstawowe pojęcia związane z projektowaniem aplikacji mobilnych. Teraz przeanalizujmy krok po kroku, jak prawidłowo zainstalować Android Studio.
Przechodzimy na stronę internetową programu Android Developers.
Pobieramy wersję instalacyjną odpowiednią dla używanego systemu operacyjnego. W tym celu możemy wybrać opcję
Download options.Postępujmy zgodnie z informacjami wyświetlanymi w trakcie instalacji (dobrze jest wybrać obszar instalacji
Android Studiona partycji dysku, która ma większą pojemność).Usuwamy plik instalacyjny, gdyż nie będzie już potrzebny.
Teraz możemy po raz pierwszy uruchomić Android Studio.
Na ekranie
Welcomeklikamy opcjęNext.Następnie mamy do wyboru opcje
StandardiCustom. W większości przypadków wystarczy opcjaStandard, jednak dobrze jest wybrać opcjęCustom.Następnie wybieramy miejsce instalacji
Java Development Kit (JDK)Java Development Kit (JDK). Wskazujemy partycję, na której zainstalowaliśmyAndroid Studio.W kolejnym kroku wybieramy sposób wyświetlania programu Android Studio – mamy do wyboru jasny (light) oraz ciemny (dark).
Następnie program prosi o wybór
Android SDKSDKi wskazanie miejsca instalacji – podobnie jak podczas instalacjiAndroid Studiodobrze jest wybrać partycję z większą pojemnością. Wybieramy:Android SDKorazAPI 30iPerformance Intel Haxm, dzięki któremu emulatory Androida potrzebne do testowania programów będą uruchamiać się szybciej i sprawnie odpowiadać na nasze działania.Następnie wyznaczamy ilość pamięci RAM, jaką jesteśmy w stanie przeznaczyć na emulator Androida. Sugerowana wartość to
recommended, ale jeśli mamy taką możliwość, możemy wybrać większą wartość.Po przejściu opisanych kroków rozpoczyna się proces instalowania wymaganych komponentów do poprawnego działania
Android Studio. Może to potrwać kilka minut.Jeśli instalacja wymaganych komponentów zakończy się pomyślnie, pojawi się okno z opcjami do wyboru. Jest wśród nich możliwość stworzenia nowego projektu itp.
Słownik
interfejs do komunikacji z urządzeniem; ADB ułatwia wykonywanie różnych akcji na urządzeniu, takich jak instalowanie i debugowanie aplikacji
odmiana formatu JAR; używany jest do dystrybucji i instalacji pakietów na system operacyjny Android
pliki używane są do inicjowania oraz uruchamiania aplikacji dla platformy Android
w programowaniu obiektowym mechanizm współdzielenia atrybutów oraz zachowań pomiędzy klasą bazową a jej pochodną; dzięki dziedziczeniu niektórych zaimplementowanych rozwiązań można z nich wielokrotnie korzystać w aplikacji
darmowe oprogramowanie, udostępniające środowisko niezbędne do programowania w języku Java
zestaw narzędzi niezbędny przy tworzeniu aplikacji korzystającej z określonej biblioteki dla danego systemu, sprzętu itp.