publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
19 skomentuj »

TAGI: android , google , programowanie , kurs

2009-11-09 08:22  |  Grzegorz Rozpara

Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych

Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych

Choć od ogłoszenia platformy Android minęły już dwa lata, dopiero od niedawna obecne są na rynku telefony obsługujące to mobilne dziecko giganta z Mountain View. Zainteresowanie Androidem rośnie jednak szybko, czego najlepszym dowodem są zapowiedzi ze strony różnych wiodących producentów elektroniki wydania kolejnych produktów wspierających tę platformę. Czy Android odniesie sukces na miarę swojego patrona, czas pokaże. Już teraz warto się jednak przyjrzeć najważniejszych cechom tej platformy i spróbować swoich sił w programowaniu. Zapraszamy więc na krótki, praktyczny kurs pisania aplikacji dla systemu Android.

Spis treści

Czym jest Android?
Zarys architektury aplikacji
Instalacja i przygotowanie środowiska roboczego z wykorzystaniem Eclipse IDE
Tworzymy przykładową aplikację Podsumowanie


Czym jest Android?

Android to platforma programowa przeznaczona dla urządzeń mobilnych, w której skład wchodzi system operacyjny, warstwa oprogramowania pośredniczącego (middleware) i kluczowe aplikacje. Software Development Kit w wydaniu Androida dostarcza narzędzia i interfejs (API) umożliwiający tworzenie aplikacji z użyciem języka Java.

Główne elementy, które cechują opisywaną platformę to komponenty aplikacji – używane wielokrotnie i w różnych konfiguracjach. Należą do nich: maszyna wirtualna Dalvik, zaprojektowana i specjalnie zoptymalizowana dla urządzeń mobilnych (niekompatybilna z JVM), wbudowana przeglądarka bazująca na WebKit, biblioteki umożliwiające wykorzystanie grafiki 2D (własna biblioteka platformy) oraz 3D w oparciu o OpenGL ES 1.0, a także baza danych SQLite. Ponadto Android udostępnia projektantowi różne formaty multimediów (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF), otwiera dostęp do technologii komunikacyjnych takich jak GSM, Bluetooth, EDGE, 3G i WiFi, oraz ułatwia wykorzystanie aparatu fotograficznego, kamery, kompasu, ekranu dotykowego, GPS i akcelerometru. Uzupełnieniem tego zestawu, kluczowym z naszego punktu widzenia, jest środowisko programistyczne zawierające emulator, debugger, profiler wydajności pamięci oraz plugin do IDE Eclipse (ADT – Android Development Tools).

Tak szeroki asortyment komponentów oraz nieskrępowany dostęp do nich stwarzają ogromne możliwości w zakresie tworzenia innowacyjnych programów dla urządzeń mobilnych. Przyjrzyjmy się zatem w ogólnym zarysie szkieletowi aplikacji.


Zarys architektury aplikacji

Jak już wspomnieliśmy wyżej, deweloperzy programów dla Androida mają pełny dostęp do API używanego przez rdzenne aplikacje systemu. Architektura sprzyja również ponownemu użyciu komponentów – dowolna aplikacja może korzystać z już zaimplementowanych w innych programach funkcjonalności, takich chociażby jak lista rozwijana.

Wszystkie programy po skompilowaniu, wraz z dodatkowymi zasobami, są umieszczane przez narzędzie apt w pakiecie Androida o rozszerzeniu APK. Jeden plik APK jest traktowany jako jedna aplikacja, uruchamiana w osobnym procesie i wykorzystująca swoją własną wirtualną maszynę Java. Dopuszczalne jest również współdzielenie maszyn wirtualnych przez różne programy.

W celu użycia poszczególnych komponentów aplikacji system musi mieć możliwość wystartowania każdego z nich i powołania dla niego odpowiednich obiektów Java. Dlatego aplikacje na Androida nie posiadają pojedynczego punktu wejścia (np. brak funkcji main), ale pewne elementy, które system może uruchamiać w zależności od potrzeb. Elementy te możemy ująć w cztery grupy: aktywności, usługi, odbiorcy transmisji i dostawcy treści.

Aktywność (activity) prezentuje element interfejsu użytkownika w postaci pojedynczego okna zawierającego kontrolki aplikacji. W ramach jednej aktywności można także zastosować dodatkowe okna wyskakujące. Przykładową aktywnością może być lista kontaktów czy też okno do wpisywania wiadomości SMS. Zaprojektowana aplikacja może oczywiście zawierać cały zbiór aktywności

Usługi (services) uruchamiane są w tle, najczęściej na nieokreślony z góry okres czasu. Przykładem może być tutaj odtwarzacz muzyczny, który działa także wtedy, gdy użytkownik pisze wiadomość tekstową lub surfuje po Sieci.

Odbiorcy transmisji (broadcast receivers), jak sama nazwa wskazuje, to komponenty odpowiedzialne za odbiór i reagowanie na komunikaty. Wiele z nich jest już wbudowanych w kod Androida (powiadamianie o niskim stanie baterii czy o zmianie strefy czasowej), ale aplikacje użytkownika również mogą inicjować swoje własne transmisje komunikatów żeby powiadomić inne programy o otrzymanych, gotowych do użycia danych.

Dostawcy danych (content providers) zapewniają dostęp do swoich zasobów innym aplikacjom. Dane mogą być przechowywane w bazie danych SQLite lub w jakiejkolwiek innej, sensownej postaci. Komponenty te posiadają zaimplementowany cały zbiór metod pozwalających aplikacjom na pozyskiwanie i zapisywanie odpowiednich informacji. Należy jednak pamiętać, że metody nie są wywoływane bezpośrednio przez aplikacje, lecz za pomocą obiektu ContentResolver, który pośredniczy w komunikacji między programami i dostawcami danych.

Aktywności, usługi i odbiorcy transmisji, w przeciwieństwie do dostawców danych, aktywowane są za pomocą asynchronicznych komunikatów zwanych intencjami (intents). Intencja jest to obiekt, który przechowuje treść wiadomości. W wypadku usług i aktywności zawiera ona nazwę czynności do podjęcia i URI do odpowiednich zasobów, natomiast w wypadku odbiorców transmisji tylko nazwę czynności.

Głównym elementem, który pozwala Androidowi uruchomić aplikację, jest plik manifestu w postaci dokumentu XML o nazwie AndroidManifest.xml. Zawiera on przede wszystkim deklaracje wszystkich potrzebnych komponentów, a także nazwy niezbędnych bibliotek czy też definicje uprawnień.

W zakresie interfejsu użytkownika mamy do dyspozycji całą paletę widoków, które możemy grupować i zagnieżdżać na różne sposoby, a także rozszerzalnych layoutów i widżetów – zarówno tych prostych (przycisk czy pole tekstowe), jak i bardziej skomplikowanych (wybór daty lub zegar). Nic nie stoi na przeszkodzie, by pisać własne widżety, jednakże ich predefiniowany zestaw pozwala znacząco przyspieszyć proces implementacji.

Powyżej przedstawiliśmy jedynie ogólne informacje dotyczące architektury i funkcjonowania aplikacji. Wyczerpującą wiedzę na ten temat można uzyskać, korzystając z materiałów źródłowych projektu. Lekturę najlepiej zacząć od strony http://developer.android.com/guide/basics/what-is-android.html gdzie został przedstawiony odpowiedni diagram wraz ze szczegółowym opisem poszczególnych warstw systemu. Swoją wiedzę można również uzupełnić, zapoznając się z treścią bloga dla developerów lub korzystając ze wsparcia społeczności skupionej wokół Androida, która jest już dość liczna. Tymczasem przejdźmy jednak do opisu instalacji i przygotowania środowiska developerskiego dla naszej przykładowej aplikacji.

«poprzednia 1 2 3 4 ... 7 następna »

publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
19 skomentuj »

Polecane książki

Czytaj Webhosting

Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.

Zarejestruj domenę

Sprawdź dostępność swojej domeny:

.pl: 0 zł   .com: 19.90 zł
.com.pl: 0 zł   .eu: 19.90 zł