publikuj: Opublikuj w wykop.pl Opublikuj we flaker.pl Opublikuj na OSnews.pl Opublikuj w delicious wydrukuj
15 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
15 skomentuj »

Polecamy

Reklama

Komentarze

  • d-d

    #1 d-d 2009-11-09 14:11:11 0

    wydaje się niezwykle proste. Jeszcze "tylko" najpierw Javy się nauczyć :)

    IP: 86.70.219.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0

  • dAREuS

    #2 dAREuS® 2009-11-09 14:30:48 0

    @d-d: nasz kurs Javy jest akurat bardzo przyjazny: http://webhosting.pl/Kurs.Javy..Praktyczne.programowanie.czesc.I

    IP: 83.31.127.[...] Opera/9.80 (Windows NT 6.0; U; pl) Presto/2.2.15 Version/10.01

  • d-d

    #3 d-d 2009-11-09 14:32:40 0

    dzięki

    IP: 86.70.219.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.27 Safari/532.0

  • Java is too heavy (weight)

    #4 Java is too heavy (weight) 2009-11-09 20:03:55 0

    Tak powiedział Steve Jobs i dlatego liczba iPhone rośnie w zastraszającym tempie a w sklepie App Store licznik zielonych "bagsów" już dawno się przekręcił. Java to za ciężka technologia. iPhone to także rewelacyjny model biznesowy gdzie każdy może postawić swój kiosk w wielkiej galerii i przy odrobinie szczęścia zarobić krocie.

    IP: 193.238.94.[...] Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729)

  • yahuto

    #5 yahuto 2009-11-18 12:46:43 0

    mam nadzieje ze powstanie z tego wiekszy kurs ukazujacy jak stosowac dane komponenty.

    IP: 91.90.61.[...] Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.3 (KHTML, like Gecko) Chrome/4.0.223.11 Safari/532.3

  • Petrol

    #6 Petrol 2010-10-31 16:43:09 0

    Jak otworzyć za pomocą edytora dostarczonego przez ADT?

    Co to za edytor?

    IP: 83.31.215.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.7 (KHTML, like Gecko) Chrome/7.0.517.41 Safari/534.7

  • Gal

    #7 Gal 2011-03-12 11:58:24 0

    Mało precyzyjny kurs

    IP: 78.31.154.[...] Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.133 Safari/534.16

  • LAMAS

    #8 LAMAS 2011-05-03 17:59:47 0

    Aplikacja zrobiona ściśle wedłóg tych wskazówek wykłada sie

    komunikat "Aplikacja niespodziewanie została zakończona"

    Tak naprawdę aby cokolwiek tu zrobić to trzeba wielu rzeczy sie domyslić samemu co ż czym się je co osobie początkującej jak ja moze nieść wiele problemów

    IP: 79.175.204.[...] Opera/9.80 (Windows NT 5.1; U; pl) Presto/2.8.131 Version/11.10

  • Burger

    #9 Burger 2011-08-19 13:03:11 0

    Fajny mięsist kurs. Własnie kończe instalacje pod Ubuntu.

    Dobry praktyczny do ondlaeźenia się w środowisku dla developerów aplikacji dla androida. Zmiast budowac kiosk dla iphona - rozwijać

    własne aplikacji - i zatrudnić się jak developer aplikacji androida - 3-5k miesiąc. :-)

    IP: 83.9.3.[...] Midori/0.3 (X11; Linux; U; pl-pl) WebKit/534.21+

  • Burger

    #10 Burger 2011-08-19 13:05:12 0

    P.S

    Zrobić parę własnych - pózniej strona www - i portfolio aplikacji na androida gotowe :-)

    IP: 83.9.3.[...] Midori/0.3 (X11; Linux; U; pl-pl) WebKit/534.21+

  • Michał 123a

    #11 Michał 123a 2011-08-23 18:51:38 0

    Po wrzuceniu na telefon aplikacja została niespodziewanie zamknięta. Wywaliłem kod do obsługi gps i wszystko działa. Co robię źle? Programowałem dla android 2.2 (mam htc desire z androidem 2.2).

    IP: 85.219.183.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1

  • konrad16

    #12 konrad16 2011-09-08 12:15:09 0

    mi tez pod androidem 2.2 cos nie dziala

    IP: 85.28.180.[...] Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Sabayon Chrome/14.0.835.94 Safari/535.1

  • totum

    #13 totum 2011-10-10 04:36:09 0

    masakra, w tym tutorialu są same kłamstwa i po przepisaniu go do Eclipsa kompletnie nic nie działa !

    IP: 89.76.247.[...] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1

  • ~fourup

    #14 ~fourup 2011-11-30 23:52:24 0

    @totum, najpierw czytaj, potem myśl, a potem działaj...

    To nie jest kurs użycia skrótów Ctrl+A > Ctrl+C > Alt+Tab > Ctrl+V...

    IP: 195.189.90.[...] Opera/9.80 (Windows NT 6.1; U; pl) Presto/2.9.168 Version/11.52

  • Whata?!

    #15 Whata?! 2011-12-03 00:05:15 0

    "#4 Java is too heavy (weight) 2009-11-09 20:03:55 0

    Tak powiedział Steve Jobs i dlatego liczba iPhone rośnie w zastraszającym tempie a w sklepie App Store licznik zielonych "bagsów" już dawno się przekręcił. Java to za ciężka technologia. iPhone to także rewelacyjny model biznesowy gdzie każdy może postawić swój kiosk w wielkiej galerii i przy odrobinie szczęścia zarobić krocie."

    w dupie byłeś i gówno widziałeś, zaraz pewnie zaczniesz wywód, że jesteś inżynierem IT i zarabiasz 40 tysięcy i żeby cie nie pouczać, ale jak czytam " przy odrobinie szczescia" od razu widac ze to czlowiek ktory zyje tym co uslyszal od innych jak to ktos zarobil ;)

    IP: 79.191.25.[...] Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101 Firefox/7.0.1

Uwaga! Możesz zarejestrować się w serwisie i w ten sposób zarezerwować swój nick oraz ominąć konieczność ciągłego odczytywania wyrazów.

Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.

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ł