Android. Programowanie aplikacji na urządzenia przenośne...

68

Transcript of Android. Programowanie aplikacji na urządzenia przenośne...

Page 1: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane
Page 2: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Idź do

• Spis treści• Przykładowy rozdział• Skorowidz

• Katalog online

• Dodaj do koszyka

• Zamów cennik

• Zamów informacjeo nowościach

• Fragmenty książekonline

Helion SAul. Kościuszki 1c44-100 Gliwicetel. 32 230 98 63e-mail: [email protected]© Helion 1991–2011

Katalog książek

Twój koszyk

Cennik i informacje

Czytelnia

Kontakt

• Zamów drukowanykatalog

Android. Programowanieaplikacji na urządzeniaprzenośne. Wydanie IIAutorzy: CShane Conder, Lauren Darcey

Tłumaczenie: Piotr Rajca

ISBN: 978-83-246-3349-4

Tytuł oryginału: Android Wireless Application

Development (2nd Edition)

Format: 170×230, stron: 820

Wyczerpujący przewodnik, gruntownie zaktualizowany w oparciuo najnowszą wersję Android SDK i najlepsze techniki programowania!

Gdy w 2008 roku Google opublikował Androida, rynkiem telefonów komórkowych wprawdzie

nieco zatrzęsło, ale nikt nie spodziewał się, że ta platforma aż tak poważnie zagrozi takim gigantom

mobilnych systemów operacyjnych, jak iOS Apple, Windows Mobile, Symbian czy RIM BlackBerry.

Od tego czasu każde nowe urządzenie z Androidem miało coraz większe możliwości i było jeszcze

bardziej ekscytujące od swoich poprzedników. Minęły zaledwie trzy lata od dnia, kiedy na rynku

pojawił się pierwszy telefon z systemem Android - T-Mobile G1, stworzony przez firmę HTC - a

system ten już okrzyknięty został najszybciej sprzedającą się platformą dla telefonów

przenośnych. To oczywiście nie pozostaje bez echa: potrzeba coraz więcej ludzi specjalizujących

się w programowaniu aplikacji na tę fascynującą, darmową i otwartą platformę mobilną.

Oto kompletny podręcznik, zawierający wszystko, co potrzebne do tworzenia, wdrażania

i sprzedawania aplikacji na urządzenia przenośne działające pod kontrolą najnowszych wersji

Androida. Autorzy – w oparciu o swoje wieloletnie doświadczenie w tworzeniu mobilnych

aplikacji – wprowadzą Cię we wszystkie etapy tego procesu: pomysł, projektowanie, pisanie kodu,

testowanie, pakowanie i rozpowszechnianie aplikacji. Poznasz doskonale specyfikację platformy

Android, podstawowe zasady efektywnego projektowania aplikacji na nią przeznaczonych oraz

najlepsze praktyki związane z tworzeniem wygodnych interfejsów użytkownika. Znajdziesz tu

także wyczerpujące opisy wszystkich kluczowych interfejsów programistycznych: do obsługi

składowania danych, komunikacji sieciowej, obsługi rozmów telefonicznych, usług lokalizacyjnych,

multimediów, grafiki 3D oraz opcjonalnych komponentów sprzętowych. Oprócz tego książka

została uzupełniona praktycznymi sztuczkami, które pozwolą Ci zaoszczędzić sporo cennego

czasu i uniknąć wielu niepotrzebnych pułapek!

Ponadto znajdziesz tu:

• kilka rozdziałów opisujących interfejs API do obsługi technologii związanych z WWW,

a także Android NDK, poszerzanie zasięgu aplikacji, zarządzanie użytkownikami,

synchronizację danych, tworzenie kopii bezpieczeństwa, zaawansowane metody

wprowadzania danych

• wyczerpujące informacje na temat plików manifestu, dostawców treści, projektowania

i testowania aplikacji

• prezentację najbardziej aktualnych i interesujących zagadnień, takich jak obsługa

komunikacji Bluetooth i gestów, rozpoznawanie mowy, widgety, technologie Live Folders,

Live Wallpapers oraz globalne wyszukiwanie

• aktualne informacje na temat generowania grafiki 3D przy użyciu OpenGL ES 2.0

• zagadnienia związane z zapewnianiem zgodności pomiędzy różnymi urządzeniami

Page 3: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis treści

O autorach ........................................................................23

Wprowadzenie ...................................................................25Kto powinien przeczyta� t� ksi��k� .................................................25Kluczowe pytania, na jakie odpowiada ta ksi��ka .............................26Struktura ksi��ki ...........................................................................27Opis zmian wprowadzonych w tym wydaniu ksi��ki ...........................28Stosowane �rodowisko programistyczne .........................................30Dost�pne materia�y dodatkowe ......................................................30Gdzie szuka� dodatkowych informacji .............................................30Konwencje stosowane w ksi��ce ....................................................31Kontakt z autorami ........................................................................32

Cz��� I Ogólne informacje o platformie Android ...............33

Rozdzia� 1 Prezentacja systemu Android .............................................35Krótka historia tworzenia aplikacji dla urz�dze� przeno�nych ............35

Dawno, dawno temu ................................................................35„Ceg�a” ...................................................................................38Wireless Application Protocol (WAP) ..........................................39Zastrze�one platformy mobilne ..................................................42

Open Handset Alliance ..................................................................44Google staje si� bezprzewodowy ...............................................44Tworzenie Open Handset Alliance ..............................................45Producenci — projektowanie telefonów dla Androida ..................46Operatorzy — dostarczanie wra�e� ............................................47Dostawcy tre�ci — tworzenie aplikacji na Androida .....................47Wykorzystanie wszystkich mo�liwo�ci Androida ...........................48

Co wyró�nia platform� Android? ......................................................48Android — platforma nast�pnej generacji ..................................49Darmowy i otwarty ....................................................................50Znane i niedrogie narz�dzia programistyczne ..............................51

Page 4: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

6 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Rozs�dny stopie� trudno�ci nauki programowania ......................51Umo�liwianie tworzenia pot��nych aplikacji ................................51Bogate i bezpieczne mo�liwo�ci integracji aplikacji .....................52Brak kosztownych przeszkód utrudniaj�cych publikacj� ...............52„Otwarty rynek” aplikacji ...........................................................53Nowa, rozwijaj�ca si� platforma ................................................54

Platforma Android .........................................................................54Architektura Androida ...............................................................55Bezpiecze�stwo i uprawnienia ...................................................56Pisanie aplikacji na Androida ....................................................58

Podsumowanie .............................................................................60Odwo�ania i inne ród�a informacji ..................................................60

Rozdzia� 2 Przygotowywanie �rodowiska programistycznego ................61Konfiguracja �rodowiska programistycznego ....................................61

Konfiguracja w�asnego systemu do debugowania urz�dzenia .......62Konfiguracja urz�dzenia do testowania ......................................63Aktualizacja Android SDK ..........................................................64Problemy z Android SDK ...........................................................64

Poznajemy Android SDK .................................................................65Zrozumienie postanowie� licencji ..............................................65Korzystanie z dokumentacji Android SDK ...................................66Prezentacja szkieletu programowania aplikacji ...........................68Poznawanie narz�dzi Android SDK .............................................69Poznawanie aplikacji przyk�adowych ...........................................74

Podsumowanie .............................................................................75Odwo�ania i inne ród�a informacji ..................................................75

Rozdzia� 3 Pierwsza aplikacja na Androida ..........................................77Testowanie �rodowiska programistycznego .....................................77

Dodawanie aplikacji Snake do projektuw przestrzeni roboczej Eclipse .................................................78

Tworzenie wirtualnego urz�dzenia (AVD)na potrzeby projektu Snake ....................................................80

Tworzenie konfiguracji uruchomieniowej projektu Snake ..............82Uruchamianie aplikacji Snake w emulatorze ...............................84

Budowanie pierwszej aplikacji na Androida ......................................85Tworzenie i konfiguracja nowego projektu aplikacji ......................86Podstawowe pliki i katalogi aplikacji na Androida ........................88Tworzenie AVD na potrzeby projektu ..........................................89Tworzenie konfiguracji uruchomieniowych dla projektu ................90Uruchamianie aplikacji w emulatorze .........................................91Debugowanie aplikacji w emulatorze .........................................93Dodawanie mechanizmów rejestracji do aplikacji ........................97

Page 5: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 7

Dodawanie obs�ugi multimediów do aplikacji ..............................99Dodawanie do aplikacji us�ug lokalizacyjnych ............................100Debugowanie aplikacji na fizycznym urz�dzeniu ........................103

Podsumowanie ...........................................................................105Zasoby i inne ród�a informacji .....................................................106

Cz��� II Kluczowe informacjeo konstrukcji aplikacji na Androida ...................107

Rozdzia� 4 Anatomia aplikacji na Androida ........................................109Opanowanie najwa�niejszej terminologii ........................................109Stosowanie kontekstu aplikacji ....................................................110

Pobieranie kontekstu aplikacji ................................................110Stosowanie kontekstu aplikacji ...............................................110

Realizacja dzia�a� przy u�yciu aktywno�ci ......................................111Cykl �ycia aktywno�ci .............................................................112Zarz�dzanie zmianami aktywno�ci przy u�yciu intencji ...............117

Praca z us�ugami .........................................................................120Odbieranie oraz rozg�aszanie intencji ............................................121Podsumowanie ...........................................................................122Odwo�ania i inne ród�a informacji ................................................123

Rozdzia� 5 Definiowanie aplikacji przy u�yciu pliku manifestu .............125Konfiguracja pliku manifestu ........................................................125

Edycja pliku manifestu ...........................................................126Zarz�dzanie to�samo�ci� aplikacji ................................................131

Okre�lanie wersji aplikacji ......................................................131Okre�lanie nazwy oraz ikony aplikacji .......................................131

Okre�lanie wymaga� systemowych aplikacji ..................................132Okre�lanie konkretnych wersji SDK .........................................132Ograniczenia zwi�zane z platform� ..........................................135Korzystanie z zewn�trznych bibliotek .......................................137

Rejestracja aktywno�ci oraz innych komponentów aplikacji .............138Okre�lanie aktywno�ci b�d�cej g�ównym punktem

wej�cia aplikacji przy u�yciu filtra intencji ...............................138Konfiguracja innych filtrów intencji ...........................................139

Stosowanie uprawnie� .................................................................140Rejestracja uprawnie� wymaganych przez aplikacj� ..................140Rejestracja uprawnie� przydzielanych innym aplikacjom ............141

Poznawanie innych ustawie� podawanych w manife�cie .................142Podsumowanie ...........................................................................142Odwo�ania i inne ród�a informacji ................................................143

Page 6: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

8 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Rozdzia� 6 Zarz�dzanie zasobami aplikacji .........................................145Czym s� zasoby? ........................................................................145

Przechowywanie zasobów aplikacji ..........................................146Zrozumienie hierarchii katalogów zasobów ...............................146Typy warto�ci zasobów ...........................................................147Przechowywanie zasobów ró�nych typów ..................................149Programowy dost�p do zasobów .............................................152

Okre�lanie warto�ci prostych zasobów w Eclipse ...........................152Praca z zasobami ........................................................................156

a�cuchy znaków ...................................................................156Stosowanie �a�cuchów z zasobów do formatowania tekstów .....157Praca z tablicami �a�cuchów znaków .......................................159Praca z warto�ciami logicznymi ...............................................159Praca z liczbami ca�kowitymi ...................................................160Praca z kolorami ....................................................................161Praca z wymiarami .................................................................162Praca z prostymi zasobami graficznymi ....................................163Praca z obrazami ...................................................................164Praca z animacjami ................................................................166Praca z menu ........................................................................168Praca z plikami XML ...............................................................170Praca z nieprzetworzonymi plikami ...........................................171Odwo�ania do zasobów ...........................................................171Praca z uk�adami ...................................................................173Praca ze stylami ....................................................................178Praca z tematami ...................................................................181

Odwo�ania do zasobów systemowych ............................................181Podsumowanie ...........................................................................182Odwo�ania i inne ród�a informacji ................................................183

Cz��� III Kluczowe zagadnieniaprojektowania interfejsów u�ytkownika .............185

Rozdzia� 7 Prezentacja wizualnych elementów interfejsu u�ytkownika .... 187Prezentacja widoków i uk�adów .....................................................187

Prezentacja widoków ..............................................................187Prezentacja kontrolek .............................................................188Prezentacja uk�adów ..............................................................188

Wy�wietlanie tekstów przy u�yciu TextView ....................................189Konfiguracja uk�adu oraz okre�lanie wymiarów .........................190Umieszczanie w tek�cie kontekstowych odno�ników .................191

Pobieranie danych od u�ytkowników ..............................................192Pobieranie danych przy u�yciu kontrolek EditText ......................193Kontrolka Spinner — zapewnianie mo�liwo�ci wyboru ...............199

Page 7: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 9

Stosowanie przycisków, pól wyboru oraz pól opcji ..........................200Stosowanie zwyczajnych przycisków .........................................201Stosowanie pól wyboru i prze��czników ....................................203Stosowanie kontrolek RadioGroup oraz RadioButton .................204

Pobieranie daty i godziny .............................................................206Prezentacja danych przy u�yciu wskaników ...................................208

Prezentacja post�pów przy u�yciu paska post�pu .....................208Modyfikacja post�pu przy u�yciu kontrolki SeekBar ........................211

Wy�wietlanie oceny przy u�yciu kontrolki RatingBar ...................212Prezentacja up�ywu czasu przy u�yciu minutnika .......................213Wy�wietlanie czasu ................................................................213

Prezentowanie menu opcji oraz menu kontekstowego ....................214Edycja menu opcji ..................................................................215

Obs�uga zdarze� generowanych przez u�ytkownika .........................219Odbieranie informacji o zmianach trybu dotyku .........................219Odbieranie zdarze� dotycz�cych ca�ego ekranu .........................221Obs�uga zdarze� naci�ni�cia i przytrzymania ............................222Reagowanie na zmiany wybranej kontrolki ................................223

Stosowanie okien dialogowych .....................................................224Ró�ne typy okien dialogowych .................................................224�ledzenie cyklu �ycia okna dialogowego ...................................225Tworzenie w�asnych okien dialogowych ....................................227

Stosowanie stylów ......................................................................227Stosowanie tematów ...................................................................229Podsumowanie ...........................................................................231

Rozdzia� 8 Projektowanie interfejsów u�ytkownika z u�yciem uk�adów ... 233Tworzenie interfejsów u�ytkownika w systemie Android ...................233

Definiowanie uk�adów w zasobach aplikacji ..............................233Programowe tworzenie uk�adów ...............................................235

Organizacja interfejsu u�ytkownika aplikacji ...................................238Zrozumienie ró�nic mi�dzy View i ViewGroup ............................238

Stosowanie wbudowanych uk�adów ...............................................243Uk�ad FrameLayout ................................................................244Uk�ad LinearLayout ................................................................247Uk�ad RelativeLayout ..............................................................247Uk�ad TableLayout .................................................................251Stosowanie wielu uk�adów jednocze�nie ..................................254

Stosowanie wbudowanych klas pojemników ..................................255Pojemniki dzia�aj�ce w oparciu o dane .....................................255Organizacja interfejsu u�ytkownika przy wykorzystaniu zak�adek ...260Dodawanie mo�liwo�ci przewijania ..........................................264Prezentacja innych rodzajów pojemników .................................265

Podsumowanie ...........................................................................266

Page 8: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

10 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Rozdzia� 9 Rysowanie i korzystanie z animacji ...................................267Rysowanie na ekranie ..................................................................267

Stosowanie obiektów Canvas oraz Paint ..................................267Wy�wietlanie tekstów ..................................................................272

Stosowanie domy�lnych czcionek i ich krojów ...........................272Stosowanie w�asnych czcionek ...............................................273Okre�lanie wymiarów tekstu na ekranie ...................................275

Wy�wietlanie i operacje na grafice rastrowej ..................................275Wy�wietlanie grafiki rastrowej .................................................275Skalowanie grafiki rastrowej ...................................................275Macierzowe przekszta�cenia grafiki rastrowej ............................275

Wy�wietlanie i operacje na kszta�tach ...........................................277Definiowanie kszta�tów w postaci zasobów XML .......................277Programowe definiowanie kszta�tów ........................................278Rysowanie ró�nych kszta�tów ..................................................279

Stosowanie animacji ...................................................................285Stosowanie animacji poklatkowych ..........................................286Stosowanie animacji przej�� ...................................................288

Podsumowanie ...........................................................................294

Cz��� IV Najcz��ciej stosowane interfejsyprogramowania aplikacji na Androida ................295

Rozdzia� 10 Obs�uga danych i sk�adowanie ..........................................297Korzystanie z preferencji aplikacji .................................................297

Tworzenie w�a�ciwo�ci prywatnych i wspólnych .........................298Przeszukiwanie i odczyt preferencji ..........................................299Dodawanie, aktualizacja oraz usuwanie preferencji ...................299Odnajdywanie danych preferencji w systemie plików Androida ....300

Obs�uga plików i katalogów ..........................................................301Poznawanie zawarto�ci katalogów aplikacji ..............................301Korzystanie z innych katalogów i plików w systemie Android ......304

Przechowywanie danych strukturalnych w bazach danych SQLite .....305Tworzenie baz danych SQLite ..................................................307Tworzenie, aktualizacja oraz usuwanie rekordów z baz danych ...309Wykonywanie zapyta� w bazach danych SQLite .........................312Zamykanie i usuwanie baz danych SQLite ................................317Projektowanie trwa�ych baz danych ..........................................318Kojarzenie danych z interfejsem u�ytkownika aplikacji ...............320

Podsumowanie ...........................................................................325Odwo�ania oraz dodatkowe ród�a informacji ..................................326

Page 9: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 11

Rozdzia� 11 Udost�pnianie danych pomi�dzy aplikacjamiprzy u�yciu dostawców tre�ci ...........................................327Prezentacja dostawców tre�ci ......................................................327

Stosowanie dostawcy tre�ci MediaStore ..................................328Stosowanie dostawcy danych CallLog ......................................329Stosowanie dostawcy tre�ci Browser .......................................331Stosowanie dostawcy tre�ci Contacts ......................................332Stosowanie dostawcy tre�ci UserDictionary ..............................335Stosowanie dostawcy tre�ci Settings .......................................336

Modyfikacja danych dostawców tre�ci ...........................................336Dodawanie rekordów ..............................................................336Aktualizacja rekordów .............................................................337Usuwanie rekordów ................................................................338

Wzbogacanie mo�liwo�ci aplikacji przy u�yciu dostawców tre�ci ......338Dost�p do zgromadzonych obrazów .........................................339

Dzia�anie jako dostawca tre�ci .....................................................344Implementacja interfejsu dostawcy tre�ci .................................344Definiowanie identyfikatora URI danych ...................................345Definiowanie kolumn danych ...................................................345Implementacja metod dostawcy tre�ci .....................................346Modyfikacja pliku manifestu ...................................................351

Aktywne foldery ...........................................................................352Podsumowanie ...........................................................................355Odwo�ania i inne ród�a informacji ................................................355

Rozdzia� 12 Obs�uga operacji sieciowych .............................................357Podstawy operacji sieciowych na urz�dzeniach przeno�nych ...........357Dost�p do internetu (HTTP) ..........................................................358

Odczytywanie danych z sieci ...................................................358Stosowanie klasy HttpUrlConnection .......................................359Przetwarzanie kodu XML pobieranego z sieci ............................360Przetwarzanie asynchroniczne .................................................362Stosowanie klasy AsyncTask ..................................................362Zastosowanie w�tków do obs�ugi operacji sieciowych ...............364Wy�wietlanie obrazów pobieranych z internetu ..........................365Pobieranie statusu po��czenia sieciowego ...............................367

Podsumowanie ...........................................................................369Odwo�ania i inne ród�a informacji ................................................369

Rozdzia� 13 Obs�uga WWW .................................................................371Przegl�danie WWW przy u�yciu WebView .......................................371

Projektowanie uk�adu z kontrolk� WebView ..............................372Wy�wietlanie tre�ci w kontrolce WebView .................................372Wzbogacanie mo�liwo�ci kontrolki WebView .............................374

Page 10: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

12 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Tworzenie rozszerze� przy u�yciu WebKit .......................................378Przegl�d interfejsów mechanizmu WebKit ................................378Tworzenie aplikacji internetowych w systemie Android ...............378

Stosowanie technologii Flash .......................................................383Korzystanie z aplikacji napisanych w technologii Flash ..............384Tworzenie aplikacji na Androida w technologii AIR .....................384

Podsumowanie ...........................................................................385Odwo�ania i dodatkowe ród�a informacji .......................................386

Rozdzia� 14 Korzystanie z us�ug lokalizacyjnych ...................................387Stosowanie us�ug GPS ................................................................387

Korzystanie z mo�liwo�ci GPS w aplikacji .................................388Okre�lanie po�o�enia ..............................................................388Okre�lanie po�o�enia w emulatorze .........................................390

Geokodowanie lokalizacji .............................................................391Prezentacja lokalizacji na mapie ...................................................394

Intencje wykorzystuj�ce mapy .................................................394Kontrolka mapy .....................................................................396Pobieranie testowego klucza API .............................................397Przesuwanie mapy .................................................................399Powi�kszanie mapy ................................................................400Zaznaczanie miejsc ................................................................401

Inne mo�liwo�ci, jakie zapewniaj� us�ugi lokalizacyjne ....................406Podsumowanie ...........................................................................407Odwo�ania i inne ród�a informacji ................................................407

Rozdzia� 15 Obs�uga multimediów .......................................................409Korzystanie z multimediów ...........................................................409Korzystanie ze zdj�� ....................................................................410

Rejestracja zdj�� przy u�yciu aparatu fotograficznego ................410Konfiguracja trybu dzia�ania aparatu ........................................415Wspó�dzielenie zdj�� ..............................................................416Stosowanie obrazów jako tapet ...............................................417

Korzystanie z wideo .....................................................................418Rejestracja wideo ..................................................................418Odtwarzanie obrazu wideo ......................................................419

Rejestracja i odtwarzanie dwi�ków ..............................................421Rejestracja dwi�ków .............................................................421Odtwarzanie plików dwi�kowych .............................................423Wspó�dzielenie plików dwi�kowych .........................................424Poszukiwanie multimediów .....................................................425Korzystanie z dzwonków .........................................................425

Podsumowanie ...........................................................................426Odwo�ania i inne ród�a informacji ................................................426

Page 11: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 13

Rozdzia� 16 Obs�uga telefonii ..............................................................427Korzystanie z narz�dzi telefonii .....................................................427

Uzyskiwanie uprawnie� do pobierania statusu telefonu .............428Pobieranie informacji o stanie rozmowy ...................................428Pobieranie informacji o us�udze ...............................................430Monitorowanie si�y sygna�u i szybko�ci po��czenia ....................431Obs�uga numerów telefonicznych ............................................431

Korzystanie z krótkich wiadomo�ci tekstowych ..............................432Uzyskiwanie uprawnie� do wysy�ania SMS-ów ...........................433Wysy�anie wiadomo�ci tekstowych ..........................................433Odbieranie SMS-ów ................................................................435

Nawi�zywanie i odbieranie po��cze� telefonicznych ........................437Nawi�zywanie po��cze� telefonicznych .....................................437Odbieranie po��cze� telefonicznych .........................................438

Podsumowanie ...........................................................................439Odwo�ania i inne ród�a informacji ................................................440

Rozdzia� 17 Obs�uga grafiki 3D przy u�yciu OpenGL ES ........................441Stosowanie OpenGL ES ...............................................................441

Stosowanie OpenGL ES w Androidzie .......................................442Zapewnianie zgodno�ci urz�dze� .............................................443

Korzystanie z biblioteki OpenGL ES w Androidzie ...........................443R�czna obs�uga OpenGL ES .........................................................444

Tworzenie obiektu SurfaceView ...............................................445Uruchamianie w�tku dla operacji OpenGL ES ...........................446Inicjalizacja biblioteki EGL .......................................................448Inicjalizacja biblioteki GL ........................................................450Rysowanie na ekranie ............................................................450

Rysowanie obiektów trójwymiarowych ...........................................452Rysowanie wierzcho�ków .........................................................452Kolorowanie wierzcho�ków ......................................................453Rysowanie bardziej z�o�onych obiektów ....................................453O�wietlanie sceny ..................................................................455Dodawanie tekstur do obiektów ..............................................457

Interakcja z kontrolkami i zdarzeniami systemu Android .................459Zapewnianie komunikacji pomi�dzy w�tkiem OpenGL

i w�tkiem aplikacji ...............................................................460Zapewnianie mo�liwo�ci przesy�ania danych

z w�tku aplikacji do w�tku OpenGL ........................................461Zwalnianie zasobów OpenGL ES ...................................................464Stosowanie klasy GLSurfaceView (prosty sposób na OpenGL ES) ....464Stosowanie OpenGL ES 2.0 .........................................................467

Konfiguracja aplikacji w celu korzystania z OpenGL 2.0 .............468Pobieranie powierzchni OpenGL ES 2.0 ...................................468

Podsumowanie ...........................................................................472Odwo�ania i inne ród�a informacji ................................................473

Page 12: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

14 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Rozdzia� 18 Stosowanie Android NDK ..................................................475Okre�lanie, kiedy warto u�y� NDK .................................................475Instalacja Android NDK ................................................................476Prezentacja Android NDK .............................................................477

Uruchamianie aplikacji przyk�adowej ........................................477Tworzenie w�asnego projektu NDK ................................................478

Wywo�ywanie kodu rodzimego z poziomu Javy ...........................478Obs�uga parametrów i warto�ci wynikowych .............................480Stosowanie wyj�tków w kodzie rodzimym .................................480

Poprawa wydajno�ci generowania grafiki .......................................482Podsumowanie ...........................................................................483Odwo�ania i inne ród�a informacji ................................................484

Rozdzia� 19 Korzystanie z opcjonalnych komponentów sprz�towych .....485Interakcja z komponentami sprz�towymi urz�dzenia .......................485Korzystanie z czujników ...............................................................486

Korzystanie z ró�nych czujników ..............................................487Uzyskiwanie dost�pu do czujnika ............................................488Odczyt danych z czujnika ........................................................488Kalibracja czujników ...............................................................490Okre�lanie po�o�enia ..............................................................490Odnajdywanie pó�nocy ............................................................491

Korzystanie z Wi-Fi ......................................................................491Korzystanie z technologii Bluetooth ..............................................494

Sprawdzanie dost�pno�ci komponentów sprz�towych ...............495W��czanie komunikacji Bluetooth ............................................495Poszukiwanie sparowanych urz�dze� .......................................495Odkrywanie urz�dze� ..............................................................496Nawi�zywanie po��czenia pomi�dzy dwoma urz�dzeniami ..........496

Monitorowanie stanu baterii .........................................................497Podsumowanie ...........................................................................500Odwo�ania i inne ród�a informacji ................................................501

Cz��� V Dodatkowe zasady projektowania aplikacjina Androida .....................................................503

Rozdzia� 20 Stosowanie powiadomie� .................................................505Powiadamianie u�ytkownika .........................................................505Powiadomienia na pasku stanu ....................................................506

Stosowanie us�ugi NotificationManager ...................................507Tworzenie prostego powiadomienia z ikon� ..............................507Obs�uga kolejki powiadomie� ..................................................508Aktualizacja powiadomie� .......................................................510Usuwanie powiadomie� ..........................................................511

Page 13: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 15

Stosowanie wibracji .....................................................................511B�yskanie ...................................................................................512Stosowanie dwi�ków ..................................................................514Okre�lanie postaci powiadomie� ..................................................515Projektowanie u�ytecznych powiadomie� .......................................517Podsumowanie ...........................................................................517Odwo�ania i inne ród�a informacji ................................................518

Rozdzia� 21 Stosowanie us�ug .............................................................519Okre�lanie, kiedy nale�y u�y� us�ugi .............................................519Prezentacja cyklu �ycia us�ugi .......................................................520Tworzenie us�ugi .........................................................................521Kontrola dzia�ania us�ugi ..............................................................526Implementacja zdalnego interfejsu ...............................................527Implementacja klasy Parcelable ...................................................529Podsumowanie ...........................................................................532Odwo�ania i inne ród�a informacji ................................................532

Rozdzia� 22 Poszerzanie zasi�gu aplikacji ............................................533Wzbogacanie aplikacji .................................................................533Tworzenie wid�etów aplikacji ........................................................534

Tworzenie wid�etu aplikacji .....................................................535Instalacja wid�etu ..................................................................543Hosty wid�etów ......................................................................544

Animowane tapety .......................................................................545Tworzenie animowanej tapety .................................................545Instalacja animowanej tapety ..................................................549

Obs�uga konkretnego typu danych ................................................549Okre�lanie akcji intencji oraz typów MIME .....................................551

Implementacja aktywno�ci do obs�ugi intencji ..........................551Rejestracja filtra intencji .........................................................552

Zapewnianie mo�liwo�ci przeszukiwania tre�ci aplikacji ..................553Zapewnianie mo�liwo�ci przeszukiwania wewn�trz aplikacji .......555Zapewnianie mo�liwo�ci korzystania z wyszukiwania globalnego ...562

Korzystanie z aktywnych folderów .................................................565Tworzenie aktywnego folderu ..................................................566Instalacja aktywnego folderu ...................................................570

Podsumowanie ...........................................................................571Odwo�ania i inne ród�a informacji ................................................572

Rozdzia� 23 Zarz�dzanie kontami u�ytkownikaoraz synchronizacja jego danych .......................................573Zarz�dzanie kontami przy u�yciu mened�era kont ...........................573

Synchronizacja danych przy u�yciu adapterów synchronizacji ......575Korzystanie z us�ug tworzenia kopii zapasowych ............................576

Page 14: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

16 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Wybór zdalnej us�ugi tworzenia kopii ........................................576Implementacja agenta archiwizacji ..........................................577Tworzenie kopii i odtwarzanie danych aplikacji ..........................581

Podsumowanie ...........................................................................582Odwo�ania i inne ród�a informacji ................................................582

Rozdzia� 24 Zaawansowane sposoby obs�ugi wprowadzania danych .....585Stosowanie ró�nych metod wprowadzania tekstów .........................585

Stosowanie klawiatur programowych .......................................586Korzystanie z przewidywania tekstu i s�owników u�ytkownika .....589

Przedstawienie szkieletu u�atwie� dost�pu ....................................589Korzystanie z us�ug rozpoznawania mowy .................................591Korzystanie z us�ug odczytywania tekstów ................................593

Korzystanie z gestów ...................................................................596Wykrywanie ruchów w widokach ..............................................596

Obs�uga popularnych gestów wykonywanych jednym palcem ...........597Obs�uga gestów wielodotyku ...................................................604Zapewnianie bardziej naturalnego wygl�du gestów ....................607

Korzystanie z manipulatora kulowego ............................................607Obs�uga zmian orientacji ekranu ...................................................607Podsumowanie ...........................................................................610Odwo�ania i inne ród�a informacji ................................................611

Rozdzia� 25 Przygotowywanie aplikacji dla ró�nych konfiguracjisprz�towych i j�zyków.......................................................613Maksymalizowanie zgodno�ci aplikacji ...........................................613Projektowanie interfejsu u�ytkownika

pod k�tem zachowania zgodno�ci.......................................... 615Obs�uga konkretnych typów ekranów........................................617Korzystanie z grafiki typu Nine-Patch Stretchable Graphics .........617Stosowanie zasady kwadratu roboczego ...................................621

Stosowanie zasobów alternatywnych .............................................622Kwalifikatory zasobów alternatywnych.......................................622Tworzenie zasobów na potrzeby dzia�ania

przy ró�nej orientacji ekranu ..................................................628Programowe stosowanie zasobów alternatywnych......................629Okre�lanie efektywnej organizacji zasobów ...............................630

Umi�dzynarodawianie aplikacji ......................................................632Umi�dzynarodawianie przy wykorzystaniu zasobów alternatywnych .. 632Programowa obs�uga ustawie� lokalnych ...................................637

Obs�uga ró�nych konfiguracji urz�dze� ...........................................638Obs�uga konfiguracji sprz�towych .............................................639Okre�lanie wersji Android SDK, na jakich dzia�a aplikacja...........640

Podsumowanie ............................................................................643Odwo�ania i inne ród�a informacji .................................................643

Page 15: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 17

Cz��� VI Wdra�anie aplikacji ..........................................645

Rozdzia� 26 Proces tworzenia oprogramowania mobilnego ...................647Prezentacja procesu tworzenia oprogramowania mobilnego ............647Wybór metodologii tworzenia oprogramowania ...............................648

Zrozumienie niebezpiecze�stw metody kaskadowej ..................648Zrozumienie znaczenia powtarzania .........................................649

Gromadzenie wymaga� aplikacji ...................................................649Okre�lanie wymaga� projektowych ..........................................650Tworzenie przypadków u�ycia oprogramowania mobilnego .........652Do��czanie wymaga� innych podmiotów ...................................652Zarz�dzanie baz� danych urz�dze� ..........................................653

Szacowanie ryzyka zwi�zanego z projektem ...................................656Okre�lanie urz�dze� docelowych .............................................656Pozyskiwanie urz�dze� docelowych .........................................658Okre�lanie mo�liwo�ci zaspokojenia wymaga� aplikacji .............659Rozumienie ryzyka zwi�zanego z zapewnianiem jako�ci .............659

Pisanie wa�nej dokumentacji projektowej ......................................661Tworzenie planów testowania na potrzeby kontroli jako�ci .........662Dostarczanie dokumentacji wymaganej przez inne podmioty ......662Dokumentacja na potrzeby utrzymania i przenoszenia ...............662

Korzystanie z systemów zarz�dzania konfiguracjami .......................663Wybór systemu zarz�dzania kodem ród�owym .........................663Implementacja dzia�aj�cego systemu numeracji wersji aplikacji .....663

Projektowanie aplikacji mobilnych .................................................664Znajomo�� ogranicze� urz�dze� przeno�nych ...........................664Poznawanie wspólnych architektur aplikacji mobilnych ..............664Projektowanie aplikacji pod k�tem jej rozszerzania i piel�gnacji ...665Projektowanie pod k�tem mo�liwo�ci wspó�dzia�ania aplikacji ....667

Tworzenie aplikacji na urz�dzenia przeno�ne .................................667Testowanie aplikacji na urz�dzenia przeno�ne ...............................668Wdra�anie aplikacji mobilnych ......................................................668

Okre�lanie rynków docelowych ................................................669Wsparcie i piel�gnacja oprogramowania mobilnego ........................669

�ledzenie i weryfikacja informacji o awariach ...........................669Testowanie aktualizacji oprogramowania uk�adowego ...............670Prowadzenie odpowiedniej dokumentacji aplikacji .....................670Wprowadzanie zmian na dzia�aj�cym serwerze ..........................670Okre�lanie mo�liwo�ci przenoszenia aplikacji obci��onego

niewielkim ryzykiem .............................................................670Podsumowanie ...........................................................................671Odwo�ania i dodatkowe ród�a informacji .......................................671

Page 16: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

18 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Rozdzia� 27 Projektowanie i tworzenieniezawodnych aplikacji na Androida ..................................673Najlepsze praktyki projektowania niezawodnych aplikacji mobilnych ...673

Zaspokajanie wymaga� u�ytkowników urz�dze� przeno�nych .....674Projektowanie interfejsu u�ytkownika aplikacji mobilnych ..........675Projektowanie stabilnych i szybko reaguj�cych

aplikacji mobilnych ...............................................................676Projektowanie bezpiecznych aplikacji mobilnych .......................678Projektowanie aplikacji w celu maksymalizacji zysków ...............679Korzystanie ze standardów projektowania

aplikacji opracowanych przez innych ......................................680Projektowanie aplikacji pod k�tem prostoty

ich utrzymania i aktualizacji ..................................................680Projektowanie aplikacji przy wykorzystaniu narz�dzi Androida .....682

Unikanie g�upich b��dów podczas projektowaniaaplikacji na Androida .................................................................683

Najlepsze praktyki stosowane przy tworzeniu niezawodnegooprogramowania mobilnego .......................................................683

Okre�lanie procesu produkcyjnego dostosowanegodo tworzenia oprogramowania mobilnego ...............................684

Wczesne i cz�ste testowanie mo�liwo�ci wykonania projektu .....684Stosowanie standardów kodowania, weryfikacji i testów

jednostkowych w celu poprawienia jako�ci kodu .....................685Obs�uga usterek wyst�puj�cych na jednym urz�dzeniu ..............688Korzystanie z narz�dzi Androida przy pisaniu aplikacji ...............689Unikanie g�upich b��dów podczas tworzenia aplikacji na Androida ... 689

Podsumowanie ............................................................................689Odwo�ania i inne ród�a informacji ................................................690

Rozdzia� 28 Testowanie aplikacji na Androida .....................................691Najlepsze praktyki testowania oprogramowania

na urz�dzenia przeno�ne ...........................................................691Projektowanie systemu rejestracji defektów

na potrzeby tworzenia oprogramowania mobilnego ..................691Zarz�dzanie �rodowiskiem testowym .......................................693Maksymalizacja pokrycia testów ..............................................696Stosowanie narz�dzi do testowania aplikacji na Androida ..........704Unikanie g�upich b��dów podczas

testowania aplikacji na Androida ..................................... 705Korzystanie z us�ug testowania aplikacji .................................706

Podsumowanie ...........................................................................706Odwo�ania i inne ród�a informacji ................................................706

Rozdzia� 29 Sprzedawanie aplikacji na Androida ..................................709Wybór odpowiedniego modelu dystrybucji ......................................709Przygotowywanie aplikacji do publikacji .........................................710

Przygotowanie kodu do utworzenia pakietu instalacyjnego .........711

Page 17: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 19

Tworzenie pakietu aplikacji i jego podpisywanie ........................713Testowanie publikowanej wersji pakietu aplikacji ......................716Certyfikacja aplikacji na Androida ............................................716

Dystrybucja aplikacji ....................................................................717Sprzedawanie aplikacji w Android Market .................................717Sprzedawanie aplikacji na w�asnym serwerze ...........................724Korzystanie z innych sposobów sprzedawania aplikacji .............725Ochrona w�asno�ci intelektualnej ............................................726Pobieranie op�at od u�ytkowników ...........................................727

Podsumowanie ...........................................................................727Odwo�ania i inne ród�a informacji ................................................728

Dodatki ...........................................................729

Dodatek A Krótki przewodnik po emulatorze Androida ........................731Symulacja rzeczywisto�ci — przeznaczenie emulatora ....................731Korzystanie z ró�nych urz�dze� wirtualnych (AVD) ..........................733

Stosowanie narz�dzia Android SDK and AVD Manager ..............734Tworzenie AVD .......................................................................735

Uruchamianie emulatora z u�yciem konkretnego AVD .....................740Konfiguracja opcji uruchomieniowych emulatora .......................741Uruchamianie emulatora w celu wykonania aplikacji .................741Uruchamianie emulatora z poziomu programu

Android SDK and AVD Manager .............................................743Konfiguracja po�o�enia GPS w emulatorze .....................................744Nawi�zywanie po��cze� telefonicznych

pomi�dzy dwoma egzemplarzami emulatora ................................745Przesy�anie SMS-ów pomi�dzy dwoma egzemplarzami emulatora ....747Interakcja z emulatorem z poziomu konsoli ...................................749

Wykorzystanie konsoli do symulowania odbieranych po��cze� ....750Stosowanie konsoli do symulowania wiadomo�ci SMS ..............751Stosowanie konsoli do przesy�ania wspó�rz�dnych GPS .............752Stosowanie konsoli do monitorowania transmisji sieciowych .....752Stosowanie konsoli do modyfikowania ustawie� zasilania .........752Inne polecenia konsoli emulatora ............................................753

Korzystanie z emulatora dla zabawy ..............................................754Ograniczenia emulatora ...............................................................755

Dodatek B Krótki przewodnik po DDMS .............................................757Korzystanie z DDMS jako niezale�nej aplikacji oraz w Eclipse ..........757Szybka prezentacja kluczowych mo�liwo�ci DDMS ..........................758Obs�uga procesów .......................................................................760

Do��czanie debugera do aplikacji ............................................760Monitorowanie aktywno�ci w�tku aplikacji ................................761��danie oczyszczenia pami�ci .................................................762

Page 18: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

20 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Monitorowanie operacji wykonywanych na stercie .....................762Monitorowanie przydzielanej pami�ci .......................................763Zatrzymywanie procesu ..........................................................763

Zarz�dzanie plikami .....................................................................764Przegl�danie systemu plików w emulatorze lub na urz�dzeniu ....764Kopiowanie plików z emulatora lub urz�dzenia .........................765Kopiowanie plików do emulatora lub urz�dzenia .......................765Usuwanie plików na emulatorze lub urz�dzeniu ........................765

Stosowanie zak�adki Emulator Control ..........................................766Symulowanie przychodz�cych po��cze� telefonicznych ..............766Symulowanie nadsy�anych wiadomo�ci SMS ............................766Przesy�anie wspó�rz�dnych geograficznych ...............................767

Korzystanie z mechanizmów rejestracji komunikatów .....................767Wykonywanie zrzutów ekranu z emulatora lub urz�dzenia ...............768

Dodatek C Krótki przewodnik po ADB ................................................771Wy�wietlanie listy pod��czonych urz�dze�

i uruchomionych emulatorów ......................................................771Kierowanie polece� ADB do konkretnych urz�dze� .........................772Uruchamianie i zatrzymywanie serwera ADB ..................................772

Zatrzymywanie procesu serwera ADB .......................................773Uruchamianie i sprawdzanie procesu serwera ADB ...................773

Wykonywanie polece� pow�oki ......................................................773Wydawanie pojedynczych polece� pow�oki ................................773Stosowanie sesji ...................................................................773Zastosowanie pow�oki do uruchamiania

i zatrzymywania emulatora ....................................................774Kopiowanie plików .......................................................................774

Wysy�anie plików do urz�dzenia lub emulatora ..........................775Pobieranie plików z urz�dzenia lub emulatora ...........................775

Instalowanie i usuwanie aplikacji ..................................................775Instalowanie aplikacji .............................................................776Ponowna instalacja aplikacji ...................................................776Deinstalacja aplikacji .............................................................776

Korzystanie z narz�dzia LogCat ....................................................776Wy�wietlanie wszystkich zarejestrowanych komunikatów ...........777Prezentowanie daty i godziny ..................................................777Filtrowanie prezentowanych informacji .....................................777Czyszczenie listy komunikatów ................................................779Przekierowywanie prezentowanych informacji do pliku ...............779Dost�p do innych dzienników ..................................................779

Kontrola us�ugi kopii zapasowej ...................................................779Wymuszanie sporz�dzenia kopii zapasowej ..............................780Wymuszanie odtworzenia danych ............................................780Usuwanie kopii zapasowej ......................................................781

Page 19: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Spis tre�ci 21

Generacja raportu o b��dach ........................................................781Korzystanie z pow�oki do wykonywania operacji

na bazach danych SQLite ...........................................................781Korzystanie z pow�oki do testowania aplikacji w warunkach

zwi�kszonego obci��enia ...........................................................781Ma�pia zabawa z aplikacj� ......................................................782Odbieranie informacji o dzia�aniach programu monkey ..............782Okre�lanie czynno�ci symulowanych przez program monkey ......782Powtarzanie tych samych operacji ...........................................784Kontrola dzia�ania programu ...................................................784Dok�adniejsze poznanie programu monkey ...............................785

Instalowanie niestandardowych programów binarnych ....................785Poznawanie innych polece� ADB ..................................................786

Dodatek D Sztuczki i triki podczas korzystania z Eclipse IDE ..............787Organizacja przestrzeni roboczej ...................................................787

Integracja z us�ugami kontroli wersji ........................................787Zmiana po�o�enia zak�adek w perspektywie ..............................788Maksymalizacja okien ............................................................788Minimalizacja okien ................................................................788Umieszczanie okien obok siebie ..............................................789Wy�wietlanie dwóch fragmentów tego samego pliku .................789Zamykanie niepotrzebnych zak�adek ........................................789Zachowanie kontroli nad oknami .............................................789Tworzenie w�asnych filtrów dziennika .......................................790

Pisanie kodu w j�zyku Java ..........................................................790Automatyczne uzupe�nianie .....................................................790Formatowanie kodu ................................................................791Tworzenie nowych klas ...........................................................791Tworzenie nowych metod ........................................................791Organizacja instrukcji import ...................................................792Modyfikacja niemal wszystkich nazw ........................................792Refaktoryzacja kodu ...............................................................793Stosowanie narz�dzia Extract Local Variable ............................793Reorganizacja kodu ................................................................794Tworzenie dokumentacji Javadoc .............................................795Wyja�nianie tajemniczych b��dów ............................................795

Dodatek E Przewodnik po SQLite dla pocz�tkuj�cych .........................797Podstawowe czynno�ci obs�ugi baz SQLite ....................................797Stosowanie programu sqlite3 .......................................................798

Uruchamianie pow�oki ADB .....................................................798Nawi�zywanie po��czenia z baz� danych SQLite ........................799Przegl�danie baz danych ........................................................799Importowanie oraz eksportowanie baz danych i ich zawarto�ci ...800

Page 20: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

22 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Wykonywanie polece� SQL w wierszu polece� ..........................802Stosowanie innych polece� sqlite3 ..........................................803Znajomo�� ogranicze� baz danych SQLite ................................803

Nauka na przyk�adach — baza ocen uczniów .................................804Projektowanie struktury bazy danych ocen ................................805Tworzenie prostej tabeli z kolumn� AUTOINCREMENT ...............805Zapisywanie danych w tabelach ..............................................806Pobieranie informacji z tabel przy u�yciu polecenia SELECT .......806Stosowanie kluczy obcych oraz z�o�onych kluczy g�ównych .........807Modyfikowanie i aktualizacja danych ........................................808Pobieranie danych z kilku tabel przy u�yciu z��cze� ...................809Stosowanie kolumn o obliczanych warto�ciach .........................810Wyliczanie warto�ci kolumn przy u�yciu podzapyta� ..................811Usuwanie tabel ......................................................................811

Skorowidz ........................................................................813

Page 21: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

3Pierwsza aplikacja

na Androida

ktualnie Czytelnik powinien już posiadać na własnym komputerze zainstalowanei działające środowisko do pisania aplikacji na platformę Androida. Można mieć

także nadzieję, że oprócz tego Czytelnik posiada także jakieś urządzenie z Androidem.Nadszedł zatem czas, by napisać swój pierwszy kod na tę platformę.

W tym rozdziale Czytelnik dowie się, jak należy dodawać i tworzyć nowe projektyaplikacji na Androida w środowisku Eclipse oraz jak sprawdzić, czy używane środowiskoprogramistyczne zostało prawidłowo skonfigurowane. Oprócz tego w tym rozdzialeCzytelnik napisze i przetestuje swoją pierwszą aplikację na Androida, uruchamiając jązarówno w emulatorze, jak i na faktycznym urządzeniu.

Testowanie �rodowiska programistycznegoNajlepszym sposobem, by upewnić się, że używane środowisko programistyczne zostałoskonfigurowane prawidłowo, jest skorzystanie z jakiejś gotowej aplikacji i przeprowadzeniepróby jej uruchomienia. Z łatwością można do tego celu wykorzystać jedną z wieluprzykładowych aplikacji dostarczanych wraz z Android SDK i umieszczonych w katalogu/samples.

Wśród wielu przykładów aplikacji dostarczanych wraz z Android SDK możnaznaleźć klasyczną grę o nazwie Snake (wąż). Aby ją zbudować i uruchomić, w pierwszejkolejności należy utworzyć w przestrzeni roboczej środowiska Eclipse nowy projektaplikacji na Androida, stworzyć odpowiedni profil wirtualnego urządzenia (AVD)i przygotować konfigurację uruchomieniową dla projektu. Po prawidłowym skonfigurowaniuwszystkich elementów środowiska będzie można zbudować aplikację i uruchomić ją naemulatorze bądź rzeczywistym urządzeniu.

A

Page 22: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

78 Rozdzia� 3. Pierwsza aplikacja na Androida

Dodawanie aplikacji Snakedo projektu w przestrzeni roboczej EclipsePierwszą rzeczą, jaką należy zrobić, jest dodanie projektu Snake do przestrzeni roboczejEclipse. W tym celu należy wykonać następujące czynności:

1. Wybrać opcję File/New/Project.

2. Rozwinąć grupę Android, a następnie wybrać kreatora Android Project (patrzrysunek 3.1).

Rysunek 3.1. Tworzenie nowego projektu aplikacji na Androida

WskazówkaKiedy ju� raz wybierzemy kreatora Android Project, kolejne projekty b�dzie mo�natworzy�, wybieraj�c z menu opcj� File/New/Android Project.

3. W sekcji Content zmienić wybraną opcję Create new project in workspace naCreate project from existing sources.

4. Kliknąć przycisk Browse i przeglądnąć zawartość katalogu z programamiprzykładowymi dostarczanymi wraz z Android SDK.

Page 23: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Testowanie �rodowiska programistycznego 79

5. Wybrać katalog Snake. Wszystkie pola kreatora powinny zostać wypełnioneinformacjami odczytanymi z pliku manifestu (patrz rysunek 3.2). Dodatkowowarto sprawdzić ustawienie Build Target i wybrać w nim tę wersję platformyAndroid, w jakiej mamy zamiar uruchamiać aplikację.

Rysunek 3.2. Szczegó�owe informacje na temat projektu Snake

Page 24: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

80 Rozdzia� 3. Pierwsza aplikacja na Androida

6. Kliknąć przycisk Finish. Kiedy to zrobimy, projekt Snake powinien zostać otwartyw środowisku Eclipse (patrz rysunek 3.3).

Rysunek 3.3. Pliki projektu Snake

Ostrze�enieOd czasu do czasu mo�e si� zdarzy�, �e Eclipse wy�wietli nast�puj�cy komunikato b��dzie: Project „Snake” is missing required source folder: „gen”1. Je�li taksi� zdarzy, wystarczy odnale� w projekcie i usun�� plik R.java umieszczonyw katalogu /gen. Plik R.java jest generowany automatycznie, a po jego usuni�ciuproblem powinien znikn��.

Tworzenie wirtualnego urz�dzenia (AVD)na potrzeby projektu SnakeKolejną czynnością, jaką należy wykonać, jest utworzenie wirtualnego urządzenia,które będzie opisywać typ urządzenia, jakie chcemy symulować w emulatorze podczasuruchamiania aplikacji; można przy tym określić, w jaką wersję platformy Android ma

1 W projekcie „Snake” brakuje wymaganego katalogu źródłowego: „gen” — przyp. tłum.

Page 25: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Testowanie �rodowiska programistycznego 81

zostać wyposażone urządzenie. Można określać także różne wielkości ekranów oraz ichorientacje, zażądać, by symulowane urządzenie było wyposażone w kartę SD, oraz podaćjej pojemność.

Na potrzeby tego przykładu wystarczy AVD z domyślną wersją platformy Android2.2. Poniżej opisane zostały czynności, jakie należy wykonać w celu utworzenia prostegourządzenia wirtualnego (AVD):

1. Z poziomu Eclipse uruchomić program Android Virtual Device, klikającumieszczony na pasku narzędzi przycisk z niewielką ikoną Androida i strzałkąskierowana w dół — . Jeśli nie można znaleźć tej ikony, to program menedżeramożna także uruchomić za pośrednictwem opcji dostępnych w menu Windowśrodowiska Eclipse.

2. W menu Virtual Devices kliknąć przycisk New.

3. Podać nazwę tworzonego AVD. Ponieważ mamy zamiar wykorzystać wszystkiedomyślne ustawienia, nadamy mu nazwę Android_Vanilla2.2.

4. Wybrać urządzenie docelowe. Ponieważ chcemy stworzyć zwyczajne urządzeniez Androidem 2.2, z rozwijalnej listy należy wybrać opcję Android 2.2.

5. Określić pojemność karty SD. Można ją podać w kilobajtach lub megabajtach.Obszar ten jest przydzielany z dostępnej przestrzeni na dysku twardymkomputera. Warto wybrać jakąś rozsądną wartość, na przykład 1 GB (1024 MB).Jeśli Czytelnikowi brakuje wolnego miejsca na dysku bądź jeśli wiadomo, że nietrzeba będzie testować przechowywania danych aplikacji na karcie SD, to możnautworzyć kartę o znacznie mniejszej pojemności, na przykład 64 MB.

6. Wybrać wygląd symulowanego urządzenia, tak zwaną „skórkę” (ang. skin). Taopcja pozwala określać różne rozdzielczości ekranu symulowanego urządzenia.W naszym przypadku zastosujemy skórkę WVGA800. Chyba najdokładniejodpowiada ona najbardziej popularnym telefonom z Androidem, takim jakHTC Negus One lub Evo 4G, które właśnie leżą przede mną na biurku.

Ustawienia projektu zostały przedstawione na rysunku 3.4.

WskazówkaCho� w tej ksi��ce skonfigurowali�my AVD tak, by emulowane urz�dzeniemia�o wysok� rozdzielczo��, to jednak Czytelnik mo�e wybra� inne ustawienia,odpowiadaj�ce urz�dzeniu, na jakim zamierza on uruchamia� aplikacj�.

7. Kliknąć przycisk Create AVD i poczekać na wykonanie operacji.

8. Kliknąć przycisk Finish. Ponieważ menedżer AVD formatuje pamięćprzydzieloną na potrzeby karty SD symulowanego urządzenia, tworzeniewirtualnych urządzeń z kartami pamięci może chwilkę potrwać.

Page 26: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

82 Rozdzia� 3. Pierwsza aplikacja na Androida

Rysunek 3.4. Tworzenie nowego AVD w �rodowisku Eclipse

WskazówkaWirtualne urz�dzenia AVD mo�na tak�e tworzy� przy u�yciu narz�dzi wchodz�cychw sk�ad Android SDK wybieranych z poziomu wiersza polece�.

Więcej informacji na temat tworzenia różnych typów urządzeń AVD można znaleźćw dodatku A, „Krótki przewodnik po emulatorze Androida”.

Tworzenie konfiguracjiuruchomieniowej projektu SnakeKolejną czynnością jest utworzenie konfiguracji uruchomieniowej w środowisku Eclipse.Określa ona, w jaki sposób aplikacja Snake będzie budowana i uruchamiana. To właśniew ramach tej konfiguracji są określane opcje emulatora oraz punkt wejścia aplikacji.

Należy osobno utworzyć konfigurację uruchomieniową oraz konfigurację dodebugowania aplikacji. Każda z nich ma niezależne opcje. Oba rodzaje konfiguracjitworzy się przy użyciu opcji dostępnych w menu Run (Run/Run Configuration orazRun/Debug Configuration).

Page 27: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Testowanie �rodowiska programistycznego 83

Oto czynności, jakie należy wykonać, by stworzyć podstawową konfiguracjęuruchomieniową dla aplikacji Snake:

1. Wybrać opcję Run/Run Configuration (lub kliknąć projekt prawym przyciskiemmyszy i z wyświetlonego menu kontekstowego wybrać opcję Run As).

2. Dwukrotnie kliknąć opcję Android Application.

3. Podać nazwę nowej konfiguracji, na przykład SnakeRunConfiguration(patrz rysunek 3.5).

Rysunek 3.5. Konfiguracja uruchomieniowa dla projektu Snake,zak�adka Target z wybranym urz�dzeniem AVD

Page 28: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

84 Rozdzia� 3. Pierwsza aplikacja na Androida

4. Wybrać projekt — kliknąć przycisk Browse i wybrać projekt Snake.

5. Przejść na zakładkę Target i z listy dostępnych AVD wybrać utworzonewcześniej urządzenie Android_Vanilla2.2 (patrz rysunek 3.5).

Na zakładkach Target oraz Common można określać także inne opcje, jednak na raziepozostawimy w nich wartości domyślne.

Uruchamianie aplikacji Snake w emulatorzeTeraz możemy już uruchomić aplikację Snake; w tym celu wystarczy wykonać następująceczynności:

1. Rozwinąć menu widoczne przy ikonie Run As umieszczonej na pasku narzędzi(przedstawiającej zielone kółko z trójkącikiem).

2. Z menu wybrać utworzoną wcześniej konfigurację uruchomieniowąSnakeRunConfiguration.

3. Poczekać na uruchomienie emulatora Androida (co może chwilę potrwać).

WskazówkaNale�y si� upewni�, �e w momencie uruchamiania emulatora do komputeranie jest pod��czone �adne urz�dzenie z Androidem (przy u�yciu kabla USB).Domy�lnym ustawieniem, zaznaczonym w sekcji Deployment Target SelectionMode (tryb wyboru urz�dzenia docelowego) na zak�adce Target konfiguracjiuruchomieniowej, jest warto�� Automatic. Oznacza to, �e je�li do komputerab�dzie pod��czone jakie� rzeczywiste urz�dzenie, to aplikacja Snake zostanieuruchomiona na nim, a nie w emulatorze.

4. Jeśli będzie to konieczne, przesunąć pasek na ekranie z lewa na prawo,by odblokować emulator (patrz rysunek 3.6).

5. Poczekać na uruchomienie aplikacji Snake, pokazanej na rysunku 3.7.

Emulator pozwala na interakcję z aplikacją Snake i faktyczne wypróbowanie tego, jakmożna się tą grą bawić. W przyszłości będzie ją można ponownie uruchomić w dowolnymmomencie, korzystając z listy wszystkich aplikacji (w terminologii Androida nazywanejApp Drawer).

Page 29: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 85

Rysunek 3.6. Emulator w trakcie uruchamiania (zablokowany)

Budowanie pierwszej aplikacji na AndroidaW końcu nadszedł czas, by napisać pierwszą aplikację na Androida. Zaczniemyod prostej aplikacji typu „Witaj, świecie”, którą następnie będziemy rozbudowywać,poznając różne możliwości platformy Android.

WskazówkaWiele przyk�adów przedstawionych w tym rozdziale to fragmenty aplikacjiMyFirstAndroidApp. Jej kod ród�owy mo�na znale� w przyk�adach do��czonychdo ksi��ki, które mo�na pobra� z serwera FTP wydawnictwa Helion,ftp://ftp.helion.pl/przyklady/andrp2.zip.

Page 30: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

86 Rozdzia� 3. Pierwsza aplikacja na Androida

Rysunek 3.7. Gra Snake

Tworzenie i konfiguracja nowego projektu aplikacjiSposób tworzenia nowego projektu aplikacji na Androida jest bardo podobny do tego,który został opisany wcześniej przy okazji dodawania do obszaru roboczego Eclipseprzykładowej aplikacji Snake.

Pierwszą czynnością, jaką należy wykonać, jest stworzenie nowego projektu i dodaniego do obszaru roboczego Eclipse. Kreator Android Project Wizard tworzy wszystkie plikiwymagane do utworzenia aplikacji na Androida. Poniżej opisane zostały wszystkieczynności, jakie należy wykonać, by utworzyć nowy projekt aplikacji na Androidaw środowisku Eclipse:

Page 31: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 87

1. Wybrać z menu opcję File/New/Android Project bądź kliknąć przycisk Android

Project zawierający ikonę przedstawiającą folder z literą „a” oraz znakiem „+” ( ),umieszczony na pasku narzędzi Eclipse.

2. W polu Project Name podać nazwę tworzonego projektu. W naszym przypadkunadamy mu nazwę MyFirstAndroidApp.

3. Określić lokalizację plików projektu. Ponieważ mamy zamiar utworzyć nowyprojekt, należy zaznaczyć przycisk opcji Create new project in workspace.Dodatkowo należy zaznaczyć pole wyboru Use default location lub wskazaćkatalog, w którym chcemy umieścić pliki źródłowe tworzonej aplikacji.

4. Z listy Build Target wybrać docelową wersję platformy Android, na jakiej będziedziałać tworzona aplikacja. Warto wybrać wersję, która jest zgodna z urządzeniem,jakie posiadamy. W tym przypadku wybierzemy platformę Android 2.2.

5. Określić nazwę aplikacji. Jest to nazwa „przyjazna dla użytkownika”, którabędzie prezentowana na liście aplikacji w urządzeniu. W naszym przypadkutworzonej aplikacji nadamy nazwę Moja pierwsza aplikacja na Androida.

6. Określić nazwę pakietu. W tym przypadku należy podać nazwę określonązgodnie ze standardowymi konwencjami nazewnictwa przestrzeni nazw pakietówstosowanymi w języku Java. Ponieważ wszystkie przykłady zamieszczone w tejksiążce są umieszczone w przestrzeni nazw com.androidbook.*, zastosujemynazwę pakietu o następującej postaci: com.androidbook.myfirstandroidapp;choć oczywiście Czytelnik może podać inną, własną nazwę pakietu.

7. Zaznaczyć pole wyboru Create Activity. Zaznaczenie tej opcji poinformujekreatora to tym, że należy wygenerować domyślną aktywność (ang. activity)pozwalającą na uruchomienie aplikacji. Nasza wersja tej klasy, dziedziczącapo Activity, będzie nosić nazwę MyFirstAndroidAppActivity.

Ustawienia nowego projektu zostały przedstawione na rysunku 3.8. 8. W końcu można kliknąć przycisk Finish.

9. Aby nasza przykładowa aplikacja była prawidłowo spolonizowana, należyjeszcze zmodyfikować wyświetlane przez nią komunikaty. W tym celu w paneluProject Explorer Eclipse należy rozwinąć węzeł projektu, a następnie kliknąćkolejne opcje: res oraz values i dwukrotnie kliknąć plik strings.xml. W wyświetlonymedytorze zasobów należy zaznaczyć opcję hello — spowoduje to wyświetleniez prawej strony dwóch pól tekstowych. W dolnym z nich, Value, należy zmienićsłowa: „Hello World” na: „Witaj, świecie”. W końcu należy zapisać plikzasobów, naciskając kombinację klawiszy Ctrl+S. Te ostatnie czynności mogą sięwydać Czytelnikowi dosyć tajemnicze, jednak wszystko wyjaśni się w dalszejczęści książki, a w szczególności w rozdziałach 6. i 7., poświęconych odpowiedniozarządzaniu zasobami oraz wizualnym elementom interfejsu użytkownikaaplikacji na Androida.

Page 32: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

88 Rozdzia� 3. Pierwsza aplikacja na Androida

Rysunek 3.8. Konfiguracja tworzonej aplikacji przy u�yciu narz�dzia Android Project Wizard

Podstawowe pliki i katalogi aplikacji na AndroidaKażda aplikacja przeznaczona na platformę Android posiada pewną grupępodstawowych plików tworzonych i używanych w celu określenia jej funkcjonalności(patrz tabela 3.1). Pliki te są tworzone domyślnie podczas generowania nowej aplikacji.

Page 33: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 89

Tabela 3.1. Wa�ne pliki i katalogi projektów aplikacji na Androida

Plik Ogólny opis

AndroidManifest.xml Globalny plik opisuj�cy aplikacj�. Definiuje onmo�liwo�ci oraz uprawnienia aplikacji, jak równie�sposób jej dzia�ania.

default.properties Tworzony automatycznie plik projektu. Okre�la ondocelow� wersj� platformy Androida, na któr� jesttworzona aplikacja, oraz inne opcje zwi�zane z jejbudowaniem.

katalog src Wymagany folder, w którym s� przechowywanewszystkie kody ród�owe tworzonej aplikacji.

src/com.androidbook.myfirstandoridapp/MyFirstAndroidAppActivity.java

G�ówny plik ród�owy, definiuj�cy punkt wej�cia aplikacji.

folder gen Wymagany folder, w którym s� przechowywaneautomatycznie generowane pliki zasobów aplikacji.

gen/com.androidbook.myfirstandroidapp/R.java

Automatycznie wygenerowany plik ród�owy s�u��cydo zarz�dzania zasobami; nigdy nie powinien by�edytowany r�cznie.

folder res Wymagany folder, w którym s� gromadzone wszystkiezasoby u�ywane przez aplikacj�. Do tych zasobówzaliczamy: animacje, obrazy i inne pliki przeznaczonedo wy�wietlania, pliki uk�adów, pliki XML, zasoby danych(takich jak �a�cuchy znaków) oraz dowolne inne pliki.

res/drawable-*/icon.png Foldery zasobów, w których s� przechowywane ikonyaplikacji dla urz�dze� o ró�nych rozdzielczo�ciachwy�wietlaczy.

res/layout/main.xml Pojedynczy plik uk�adu.

res/values/strings.xml Plik zasobów aplikacji zawieraj�cy �a�cuchy znaków.

folder assets Folder, w którym s� przechowywane wszystkie „aktywa”aplikacji — czyli dane (zarówno pliki, jak i katalogi), którenie powinny by� traktowane i zarz�dzane jako zasoby.

Oprócz tego w ramach tworzenia nowego projektu na dysku komputera jest takżezapisywanych kilka innych plików. Niemniej jednak pliki wymienione w tabeli 3.1są najważniejsze, a tworząc aplikacje, będziemy ich regularnie używali.

Tworzenie AVD na potrzeby projektuKolejnym krokiem jest utworzenie wirtualnego urządzenia, AVD, które w najlepszysposób będzie opisywać urządzenie, jakie będziemy chcieli symulować podczastestowania i uruchamiania aplikacji. W tym przypadku wykorzystamy to samo AVD,które utworzyliśmy w celu uruchomienia przykładowej aplikacji Snake. AVD opisujeurządzenie, a nie aplikację. Dzięki temu tego samego AVD można używać podczaspisania i testowania wielu aplikacji. Istnieje także możliwość tworzenia podobnych

Page 34: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

90 Rozdzia� 3. Pierwsza aplikacja na Androida

urządzeń wirtualnych, o tej samej konfiguracji, lecz zawierających różne dane(czyli różne zainstalowane aplikacje oraz różne dane na karcie pamięci).

UwagaWi�cej informacji na temat tworzenia ró�nych rodzajów AVD oraz sposobówkorzystania z emulatora Androida mo�na znale� w dodatku A, „Krótkiprzewodnik po emulatorze Androida”.

Tworzenie konfiguracji uruchomieniowych dla projektuKolejną czynnością będzie utworzenie konfiguracji uruchomieniowej oraz konfiguracjitestowej służącej do debugowania projektu. Określają one odpowiednio, w jaki sposóboraz w jakich warunkach aplikacja będzie uruchamiana i debugowana. W ramachkonfiguracji uruchomieniowej określane są opcje emulatora Androida oraz punkt wejściado aplikacji.

Oba rodzaje konfiguracji — uruchomieniowa oraz do debugowania — są tworzoneniezależnie od siebie i posiadają inne opcje. Zacznijmy od utworzenia konfiguracjiuruchomieniowej.

Poniższa lista przedstawia czynności, jakie należy wykonać, by stworzyć konfiguracjęuruchomieniową dla aplikacji MyFirstAndroidApp:

1. Z menu Eclipse wybrać opcję Run/Run Configuration (lub kliknąć projekt prawymprzyciskiem myszy i z wyświetlonego menu kontekstowego wybrać opcję Run As).

2. Dwukrotnie kliknąć opcję Android Application. 3. Określić nazwę konfiguracji — MyFirstAndroidRunConfig. 4. Wybrać uruchamiany projekt — kliknąć przycisk Browse i w wyświetlonym

oknie dialogowym wybrać projekt MyFirstAndroidApp. 5. Przejść na zakładkę Target i w sekcji Default Target Selection Mode zaznaczyć

przycisk opcji Manual. 6. Kliknąć przycisk Apply, a następnie Close.

WskazówkaJe�eli podczas definiowania konfiguracji uruchomieniowej lub testowej w sekcjiDefault Target Configuration Mode zostanie zaznaczony przycisk opcji Automatic,to je�li tylko do komputera b�dzie pod��czone urz�dzenie, aplikacja zostaniena nim zainstalowana i uruchomiona. W przeciwnym razie aplikacja zostaniezainstalowana i uruchomiona na emulatorze, na wskazanym wirtualnymurz�dzeniu AVD. Je�li jednak zostanie zaznaczony przycisk opcji Manual, a nieAutomatic, to Eclipse zawsze b�dzie nas pyta�, czy: a) chcemy uruchomi�aplikacj� w istniej�cym emulatorze; b) chcemy uruchomi� aplikacj� w nowymemulatorze i wskaza� AVD, jakiego nale�y przy tym u�y�; c) chcemy uruchomi�aplikacj� na fizycznym urz�dzeniu (je�li jest ono pod��czone do komputera).Je�eli jaki� emulator ju� dzia�a, a nast�pnie zostanie pod��czone urz�dzenie, toje�li w konfiguracji uruchomieniowej zosta� zaznaczony przycisk opcji Automatic,opisywane opcje wyboru tak�e zostan� wy�wietlone.

Page 35: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 91

Kolejną czynnością będzie utworzenie konfiguracji testowej, umożliwiającej debugowanieaplikacji. Proces ten jest bardzo podobny do opisanego powyżej. Oto lista czynności,jakie należy wykonać, by stworzyć konfigurację testową dla aplikacji MyFirstAndroidApp:

1. Z menu Eclipse wybrać opcję Run/Debug Configuration (lub kliknąć projektprawym przyciskiem myszy i z wyświetlonego menu kontekstowego wybraćopcję Debug As).

2. Dwukrotnie kliknąć opcję Android Application.

3. Podać nazwę tworzonej konfiguracji — MyFirstAndroidAppDebugConfig.

4. Wybrać uruchamiany projekt — kliknąć przycisk Browse i w wyświetlonymoknie dialogowym wybrać projekt MyFirstAndroidApp.

5. Przejść na zakładkę Target i w sekcji Default Target Selection Mode zaznaczyćprzycisk opcji Manual.

6. Kliknąć przycisk Apply, a następnie Close.

Teraz dysponujemy już konfiguracją, która pozwoli na debugowanie tworzonejaplikacji.

Uruchamianie aplikacji w emulatorzeTeraz możemy już uruchomić aplikację MyFirstAndroidApp; oto, co należy w tymcelu zrobić:

1. Kliknąć strzałkę umieszczoną z prawej strony przycisku Run As znajdującegosię na pasku narzędzi Eclipse (przedstawiającego zielone kółko z białym

trójkącikiem) — .

2. Z wyświetlonego menu wybrać utworzoną wcześniej konfigurację. (Jeśli niebędzie ona widoczna na liście, to należy wybrać umieszczoną w dolnej części menuopcję Run Configuration… i wskazać odpowiednią konfigurację w wyświetlonymoknie dialogowym. W tym przypadku wybrana konfiguracja pojawi się następnymrazem w menu).

3. Ponieważ w konfiguracji wybraliśmy ręczny (Manual) tryb wyboru urządzenia,teraz zostaniemy poproszeni o wskazanie, na jakim urządzeniu aplikacja mazostać uruchomiona. W wyświetlonym oknie dialogowym należy zaznaczyćprzycisk opcji Launch a new Android Virtual Device, a następnie zaznaczyćwirtualne urządzenie, które chcemy uruchomić (patrz rysunek 3.9).

4. Po kliknięciu przycisku OK zostanie uruchomiony emulator Androida (może totrochę potrwać).

Page 36: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

92 Rozdzia� 3. Pierwsza aplikacja na Androida

Rysunek 3.9. R�czne okre�lanie urz�dzenia, na jakim zostanie uruchomiona aplikacja

WskazówkaUruchamianie emulatora mo�e potrwa� dosy� d�ugo. Warto zatem pozostawi�dzia�aj�cy emulator i pod��cza� si� do niego póniej, w razie takiej konieczno�ci.Narz�dzia dost�pne w �rodowisku Eclipse obs�uguj� ponown� instalacj�i uruchamianie aplikacji, dzi�ki czemu mo�na zaoszcz�dzi� czas i korzysta�z wygody, jak� daje pozostawienie uruchomionego emulatora.

5. Kliknąć przycisk Menu, by odblokować emulator. 6. Bezpośrednio potem zostanie uruchomiona aplikacja, jak pokazano na

rysunku 3.10.

Rysunek 3.10. Aplikacja Moja pierwsza aplikacja na Androida uruchomiona w emulatorze

Page 37: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 93

7. Kliknąć przycisk Home w emulatorze, by zakończyć działanie aplikacji.

8. Wyświetlić listę zainstalowanych aplikacji, klikając ikonę listy aplikacji. Ekranemulatora powinien wyglądać podobnie do tego przedstawionego na rysunku 3.11.

Rysunek 3.11. Program Moja pierwsza aplikacja na Androida wy�wietlony na li�cie aplikacji

9. Kliknąć ikonę Moja pierwsza aplikacja na Androida, aby ponownie uruchomićaplikację.

Debugowanie aplikacji w emulatorzeZanim zajmiemy się kolejnymi zagadnieniami, Czytelnik koniecznie musi się dowiedzieć,jak można debugować aplikacje w emulatorze Androida. Aby mięć okazję do poznaniai wypróbowania niektórych spośród dostępnych narzędzi do debugowania, celowowprowadzimy błąd w kodzie naszej demonstracyjnej aplikacji.

W tym celu w Eclipse otwórzmy plik MyFirstAndroidApp.java i dodajmy do niegonową metodę o nazwie forceError(). Wywołanie tej metody należy umieścić wewnątrzkodu metody onCreate(). Metoda forceError() spowoduje zgłoszenie nowego,nieprzechwytywanego wyjątku.

Page 38: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

94 Rozdzia� 3. Pierwsza aplikacja na Androida

Poniżej przedstawiony został jej kod:

public void forceError() { if(true) { throw new Error("O rany!"); }}

Wskazówka�rodowisko Eclipse zawiera osobne perspektywy (czyli grupy okre�lonych paneli)s�u��ce do tworzenia kodu oraz debugowania aplikacji. Perspektywy mo�nazmienia�, wybieraj�c odpowiednie nazwy wy�wietlone na wysoko�ci paska narz�dzi,z prawej strony okna �rodowiska. Perspektywa Java zawiera panele przeznaczonedo tworzenia kodu oraz poruszania si� po projekcie. Z kolei perspektywa Debugpozwala na definiowanie nowych punktów wstrzymania, przegl�danie informacjigromadzonych w dzienniku LogCat oraz debugowanie aplikacji. Kolejna perspektywa,Dalvik Debug Monitor Service (DDMS), pozwala monitorowa� i modyfikowa�emulator oraz bie��cy stan uruchomionego w nim wirtualnego urz�dzenia.

W tym momencie warto uruchomić aplikację i sprawdzić, co się stanie. W tym celu należyw pierwszej kolejności skorzystać z konfiguracji uruchomieniowej (Run Configuration).W emulatorze zobaczymy tylko tyle, że aplikacja została nieoczekiwanie zamknięta. Naekranie emulatora zostanie wyświetlone okno dialogowe dające możliwość wymuszeniazamknięcia aplikacji (zostało ono przedstawione na rysunku 3.12).

Rysunek 3.12. Aplikacja Moja pierwsza aplikacja na Androidazg�aszaj�ca informacje o problemach

Page 39: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 95

Teraz zamknijmy aplikację oraz emulator. Kiedy to zrobimy, będziemy mogliprzystąpić do debugowania aplikacji. Można to zrobić, wykonując następujące czynności:

1. Kliknąć strzałkę widoczną z prawej strony przycisku Debug As umieszczonegona pasku narzędzi Eclipse (zawiera on ikonę zielonego robaka z czarną strzałką

po prawej stronie) — . 2. Rozwinąć menu i wybrać z niego utworzoną wcześniej konfigurację testową.

(Jeśli nie będzie ona widoczna na liście, należy wybrać umieszczoną w dolnejczęści menu opcję Debug Configuration… i wskazać odpowiednią konfiguracjęw wyświetlonym oknie dialogowym. W tym przypadku wybrana konfiguracjapojawi się następnym razem w menu).

3. Wykonać te same czynności, które zostały przedstawione w opisie sposobuuruchamiania aplikacji — wybrać odpowiednie AVD, poczekać na uruchomienieemulatora i w razie potrzeby go odblokować.

Uruchomienie emulatora oraz dołączenie do niego debugera może chwilę zająć. JeśliCzytelnik będzie debugował aplikację na Androida po raz pierwszy, zostanie wyświetlonychkilka okien dialogowych, takich jak to przedstawione na rysunku 3.13 — należy jeprzejrzeć i zamknąć.

Rysunek 3.13. Zmiana perspektywy w celu debugowania aplikacji uruchomionejw emulatorze Androida

W środowisku Eclipse można skorzystać z perspektywy Debug, aby ustawiać punktywstrzymania (ang. breakpoint), wykonywać program instrukcja po instrukcji orazprzeglądać informacje zarejestrowane w dzienniku LogCat. Tym razem gdy pojawią sięproblemy w aplikacji, korzystając z debugera, będzie można określić ich przyczynę. Byćmoże w celu skonfigurowania debugera konieczne będzie przejrzenie i zamknięcie kilkuokien dialogowych. Jeśli zezwolimy na dalsze wykonywanie aplikacji po zgłoszeniuwyjątku, to wyniki jej działania zostaną wyświetlone w perspektywie Debug. Przeglądającinformacje wyświetlone w panelu LogCat, dowiemy się, że aplikacja została zamkniętaz powodu nieobsłużonego wyjątku (patrz rysunek 3.14).

Page 40: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

96 Rozdzia� 3. Pierwsza aplikacja na Androida

Rysunek 3.14. Debugowanie przyk�adowej aplikacji Moja pierwsza aplikacja na Androida

Konkretnie rzecz biorąc, na czerwono został wyświetlony błąd AndroidRuntime:java.lang.Error: O rany!.

Wróćmy do emulatora, klikając przycisk Force Close. Spróbujmy ustawić punktwstrzymania na metodzie forceError(). W tym celu wystarczy kliknąć wybrany wierszkodu prawym przyciskiem myszy i z wyświetlonego menu kontekstowego wybrać opcjęToggle Breakpoint (alternatywną metodą jest naciśnięcie kombinacji klawiszy Ctrl+Shift+B).

WskazówkaW �rodowisku Eclipse mo�na krokowo wykonywa� kolejne instrukcje, u�ywaj�cpolece� Step Into (F5), Step Over (F6), Step Return (F7) oraz Resume (F8).

W systemie Mac OS X mo�e si� okaza�, �e klawisz F8 jest globalnie skojarzonyz pewnymi operacjami. W takim przypadku, aby w Eclipse skorzysta� z mo�liwo�ciu�atwionego wykonywania czynno�ci poprzez naciskanie odpowiedniego klawisza,trzeba b�dzie zmieni� skojarzenia klawiszy z operacjami. W tym celu nale�ywybra� z menu opcje Windows/Preferences/General/Keys, a nast�pnie odnale�polecenie, z jakim jest skojarzony klawisz F8, i je zmieni�. Alternatywnymrozwi�zaniem b�dzie zmiana globalnego skojarzenia wykorzystuj�cego klawiszF8. Aby to zrobi� w systemie Mac OS X, nale�y wy�wietli� System Preferences/Keyboard & Mouse/Keyboard Shortcuts, a nast�pnie zmieni� operacj�skojarzon� z klawiszem F8.

Page 41: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 97

Teraz powinniśmy wrócić do emulatora, ponownie uruchomić w nim nasząprzykładową aplikację i zacząć wykonywać ją instrukcja po instrukcji. Przekonamy się,że aplikacja zgłasza wyjątek, który następnie zostanie wyświetlony w panelu VariableBrowser wchodzącym w skład perspektywy Debug. Rozwinięcie tej zmiennej pozwoliwyświetlić zawartość błędu "O rany!".

To doskonały moment, by kilkukrotnie doprowadzić do awarii aplikacji i przyzwyczaićsię do przycisków i opcji pozwalających na sterowanie jej wykonywaniem. A skoro jużzajmujemy się tymi zagadnieniami, wróćmy do perspektywy DDMS. Warto zwrócićuwagę, że emulator udostępnia listę procesów aktualnie działających na telefonie, takichjak system_process lub com.android.phone. Jeśli uruchomimy aplikację MyFirstAndroidApp,to na tej liście pojawi się opcja com.androidbook.myfirstandroidapp. Wystarczy terazwymusić zamknięcie aplikacji, a odpowiadająca jej pozycja na liście zniknie. PerspektywyDDMS można używać do wymuszania zakończenia procesów, sprawdzania istniejącychwątków oraz sterty, jak również do przeglądania systemu plików telefonu.

Dodawanie mechanizmów rejestracji do aplikacjiZanim Czytelnik zacznie badać różne możliwości Android SDK, koniecznie powinienpoznać możliwości rejestracji, jest to bowiem nieocenione narzędzie, które możnawykorzystywać nie tylko do debugowania, lecz także poznawania Androida. Możliwościrejestracji zapewnia klasa Log wchodząca w skład pakietu android.util.

Kilka użytecznych metod tej klasy zostało przedstawionych w tabeli 3.2.

Tabela 3.2. U�yteczne metody klasy android.util.Log

Metoda Przeznaczenie

Log.e() Rejestruje b��dy.

Log.w() Rejestruje ostrze�enia.

Log.i() Rejestruje komunikaty informacyjne.

Log.d() Rejestruje komunikaty do debugowania.

Log.v() Rejestruje rozszerzone komunikaty informacyjne.

Wskazówka�rodowisko Eclipse stara si� oszcz�dza� czas programistów — pozwala u�ywa�importowanych klas, a nast�pnie doda� odpowiednie instrukcje importuautomatycznie. Wystarczy wskaza� nazw� klasy myszk� i w wy�wietlonymokienku dialogowym wybra� opcj� Import 'Log' (android.util).

Oprócz tego mo�na tak�e skorzysta� z polecenia Organize imports (w systemieWindows mo�na je wykona�, naciskaj�c kombinacj� klawiszy Ctrl+Shift+O,a w Mac OS X Command+Shift+O), które sprawi, �e Eclipse automatyczniedoda wszelkie niezb�dne instrukcje import dla u�ywanych klas i pakietów orazusunie te, które nie s� ju� potrzebne. Je�li pojawi� si� jakie� konflikty nazw,co w przypadku klas o nazwie Log zdarza si� stosunkowo cz�sto, mo�na okre�li�pakiet, do którego nale�y importowana klasa.

Page 42: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

98 Rozdzia� 3. Pierwsza aplikacja na Androida

Aby dodać możliwość rejestracji komunikatów do naszej aplikacji MyFirstAndroidApp,wystarczy otworzyć plik MyFirstAndroidApp.java w edytorze. W pierwszej kolejnościna górze pliku należy dodać odpowiednią instrukcję import, która umożliwi korzystaniez klasy Log:

import android.util.Log;

Następnie w klasie MyFirstAndroidApp należy zadeklarować stałą łańcuchową, którabędzie używana do oznaczania wszystkich rejestrowanych komunikatów. Późniejbędziemy mogli skorzystać z możliwości, jakie daje panel LogCat Eclipse, by wyświetlaćw nim tylko te komunikaty, które mają naszą etykietę:

private static final String DEBUG_TAG = "MyFirstAppLogging";

Teraz w kodzie metody onCreate() możemy już zarejestrować jakiś komunikatinformacyjny:

Log.i(DEBUG_TAG, "Informacja o aplikacji MyFirstAndroidApp");

Ostrze�enieSkoro ju� wrócili�my do kodu metody onCreate(), to Czytelnik musi pami�ta�, byumie�ci� w komentarzu wywo�anie metody forceError(), aby aplikacja ponowniezacz��a dzia�a� prawid�owo.

Teraz jesteśmy już gotowi do uruchomienia naszej aplikacji. A zatem zapiszmy zmianywprowadzone w jej kodzie źródłowym i uruchommy ją w emulatorze, korzystającz konfiguracji do debugowania. Należy zwrócić uwagę, że na liście w panelu LogCatpojawił się nasz komunikat informacyjny, oznaczony etykietą MyFirstAppLoggingwyświetloną w kolumnie tag (patrz rysunek 3.15).

Rysunek 3.15. Lista komunikatów LogCat przefiltrowana tak,by wy�wietla� wy��cznie komunikaty z etykiet� MyFirstAppLogging

WskazówkaCzytelnik mo�e uzna�, �e warto utworzy� w panelu LogCat specjalny filtr, któryspowoduje, �e b�d� w nim wy�wietlane wy��cznie komunikaty posiadaj�ce jegoetykiet�. W tym celu nale�y klikn�� ikon� przedstawiaj�c� zielony znak plusa,umieszczon� w prawej górnej cz��ci panelu LogCat. Nast�pnie nale�y poda� nazw�tworzonego filtra, na przyk�ad MyFirstApp, i wpisa� warto�� MyFirstAppLoggingw polu by Log Tag. Teraz w panelu LogCat pojawi�a si� druga zak�adka, prezentuj�cajedynie komunikaty wybrane przez nas.

Page 43: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 99

Dodawanie obs�ugi multimediów do aplikacjiKolejnym testem będzie próba dodania do naszej aplikacji niewielkich „wodotrysków” —konkretnie rzecz biorąc, spróbujemy odtworzyć w niej plik muzyczny zapiany w formacieMP3. Możliwości odtwarzania multimediów w Androidzie zostały zaimplementowanew klasie MediaPlayer należącej do pakietu android.media.

Obiekt MediaPlayer można utworzyć na podstawie istniejących zasobów lubokreślając adres pliku docelowego w postaci identyfikatora URI. W celu jak największegouproszczenia przykładu zaczniemy od wskazania pliku MP3 przy użyciu identyfikatoraURI, czyli obiektu klasy Uri należącej do pakietu android.net.

Wybrane metody klas android.media.MediaPlayer oraz android.net.Uri zostałyprzedstawione w tabeli 3.3.

Tabela 3.3. Wa�ne metody klasy MediaPlayer oraz metody do przetwarzania URI

Metoda Przeznaczenie

MediaPlayer.create() Tworzy nowy odtwarzacz muzyczny, który b�dzie operowa� nawskazanym pliku.

MediaPlayer.start() Rozpoczyna odtwarzanie pliku.

MediaPlayer.stop() Zatrzymuje odtwarzanie.

MediaPlayer.release() Zwalnia zasób u�ywany przez dany obiekt odtwarzacza.

Uri.parse() Tworzy obiekt Uri na podstawie prawid�owo sformu�owanegoadresu URI.

Aby dodać do naszej przykładowej aplikacji możliwość odtwarzania plików MP3,trzeba wprowadzić pewne modyfikacje w pliku MyFirstAndroidApp.java. W pierwszejkolejności należy dodać instrukcje import, które pozwolą korzystać z klasy MediaPlayer:

import android.media.MediaPlayer;import android.net.Uri;

Następnie w kodzie klasy MyFirstAndroidApp należy zadeklarować składową, w którejbędzie przechowywany obiekt MediaPlayer:

private MediaPlayer mp;

Kolejną czynnością będzie dodanie metody o nazwie playMusicFromWeb() i wywołaniejej wewnątrz metody onCreate(). Metoda ta w pierwszej kolejności utworzy obiekt Uri,następnie obiekt MediaPlayer, a następnie rozpocznie odtwarzanie wskazanego pliku MP3.Jeśli z jakiegokolwiek powodu operacji nie uda się wykonać prawidłowo, to metoda tazarejestruje w dzienniku odpowiedni komunikat opatrzony naszą utworzoną wcześniejetykietą.

Poniżej przedstawiony został kod metody playMusicFromWeb():

public void playMusicFromWeb() { try { Uri file = Uri.parse("http://www.perlgurl.org/podcast/archives/ �podcasts/PerlgurlPromo.mp3"); mp = MediaPlayer.create(this, file);

Page 44: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

100 Rozdzia� 3. Pierwsza aplikacja na Androida

mp.start(); } catch (Exception e) { Log.e(DEBUG_TAG, "B��d odtwarzacza", e); }}

I w końcu, w momencie zamykania aplikacji będziemy chcieli usunąć z pamięciwszystkie używane wcześniej obiekty. W tym celu należy przesłonić metodę onStop(),a wewnątrz niej zatrzymać odtwarzacz i usunąć z pamięci wszystkie jego zasoby.

WskazówkaW �rodowisku Eclipse mo�na klikn�� prawym przyciskiem myszy wewn�trz koduklasy i z wy�wietlonego menu kontekstowego wybra� opcj� Source (alternatywnymrozwi�zaniem jest naci�ni�cie kombinacji klawiszy Alt+Shift+S). W kolejnymmenu nale�y wybra� opcj� Override/Implement Methods, a nast�pniew wy�wietlonym oknie dialogowym zaznaczy� pole wyboru przy metodzieonStop() i klikn�� przycisk OK.

Nasza wersja metody onStop() powinna wyglądać w następujący sposób.

protected void onStop() { if (mp != null) { mp.stop(); mp.release(); } super.onStop();}

Kiedy teraz uruchomimy aplikację MyFirstAndroidApp w emulatorze (i jeślidodatkowo będziemy dysponowali połączeniem z internetem, by pobrać plik MP3określony przez podany w kodzie identyfikator URI), aplikacja zacznie odtwarzać plikmuzyczny. Po zamknięciu aplikacji odtwarzacz MediaPlayer jest zatrzymywany, a jegozasoby prawidłowo usuwane z pamięci.

Dodawanie do aplikacji us�ug lokalizacyjnychNasza aplikacja już wie, jak się przywitać, ale nie wie, gdzie się znajduje. A zatem nadarzasię chyba dobra okazja, by zapoznać się z niektórymi podstawowymi możliwościamipobierania współrzędnych GPS.

Tworzenie AVD wyposa�onego w interfejsy API firmy GoogleAby móc pobawić się nieco usługami lokalizacyjnymi oraz skorzystać z możliwościintegracji aplikacji z mapami, konieczne będzie wykorzystanie niektórych aplikacji firmyGoogle dostępnych na telefonach z Androidem — konkretnie rzecz biorąc, chodzio aplikację Google Maps. Aby móc z niej korzystać, musimy utworzyć następne wirtualneurządzenie. To nowe AVD powinno mieć dokładnie takie same parametry i ustawienia jaknasze pierwsze AVD, Android_Vanilla2.2, z jednym wyjątkiem — w jego przypadku z listy

Page 45: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 101

Target należy wybrać odpowiednik interesującego nas poziomu API (którym jest APILevel 8) przygotowany przez Google (czyli opcję Google Apis (Google Inc.) — API Level 8).Temu nowemu AVD możemy nadać nazwę na przykład Android_with_GoogleAPIs_2.2.

Konfiguracja lokalizacji w emulatorzePo utworzeniu nowego AVD wyposażonego w obsługę interfejsów API firmy Googlekonieczne jest zamknięcie aktualnie działającego emulatora. Następnie ponownie należyrozpocząć debugowanie naszej testowej aplikacji, jednak tym razem wybierając nowe AVD.

Emulator nie jest wyposażony w GPS, więc konieczne jest ręczne podanie współrzędnychokreślających jego początkowe położenie. W tym celu należy uruchomić emulator w trybiedebugowania, wykorzystując przy tym AVD obsługujące interfejsy API Google’a,a następnie wykonać następujące czynności:

W emulatorze:

1. Nacisnąć przycisk Home, by wrócić do głównego ekranu.

2. Otworzyć listę aplikacji i uruchomić aplikację Maps. 3. Kliknąć przycisk Menu.

4. Wybrać opcję Moja lokalizacja (wyglądającą jak celownik z kółkiem w środku).

W Eclipse:

1. Kliknąć perspektywę DDMS umieszczoną w prawym górnym wierzchołku okna.

2. Z lewej strony okna Eclipse widoczny będzie panel Emulator Control. Należy goprzewinąć w dół, tak by pojawiła się sekcja Location Controls.

3. W polach Longitude i Latitude wpisać odpowiednio długość i szerokośćgeograficzną. (Warto zwrócić uwagę, że ich kolejność jest zamieniona w stosunku dozwyczajowego sposobu podawania współrzędnych geograficznych).

4. Kliknąć przycisk Send.

WskazówkaAby okre�li� konkretne wspó�rz�dne geograficzne, mo�na wy�wietli� w przegl�darcestron� http://maps.google.pl, po czym odnale� interesuj�ce nas miejsce,klikn�� je prawym przyciskiem myszy i wybra� opcj� Co tu jest z menukontekstowego. Wspó�rz�dne wybranego miejsca pojawi� si� w polu tekstowymnad map�. Na przyk�ad odszukajmy Wzgórze Wawelskie, a po jego klikni�ciuw polu tekstowym nad map� zostan� wy�wietlone wspó�rz�dne:50,054005,19,935154, czyli szeroko�� geograficzna wynosi 50,054005,a d�ugo�� 19,935154.

Jeśli teraz wrócimy do emulatora, zauważymy, że aplikacja Google Maps pokazujelokalizację, której współrzędne podaliśmy w Eclipse. Na ekranie telefonu w emulatorzepowinna być widoczna mapa Krakowa, pokazana na rysunku 3.16.

Page 46: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

102 Rozdzia� 3. Pierwsza aplikacja na Androida

Rysunek 3.16. Okre�lanie po�o�enia Wzgórza Wawelskiego w emulatorze

Jak widać, emulator wskazuje teraz symulowane położenie.

Odnajdowanie ostatniego znanego po�o�eniaAby dodać obsługę lokalizacji do naszej demonstracyjnej aplikacji MyFirstAndroidApp,trzeba będzie wprowadzić kilka zmian w pliku MyFirstAndroidApp.java. Przedewszystkim konieczne będzie dodanie odpowiednich instrukcji import:

import android.location.Location;import android.location.LocationManager;

Następnie należy zadeklarować w klasie nową metodę — getLocation() — i wywołaćją w metodzie onCreate(). Metoda będzie pobierać ostatnią znaną lokalizację telefonui wyświetlać ją w formie komunikatu zapisywanego w dzienniku. Jeśli z jakichkolwiekpowodów operacji nie uda się wykonać prawidłowo, w dzienniku zostanie zapisanainformacja o błędzie.

Poniżej pokazano, jak powinien wyglądać kod metody getLocation():

Page 47: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Budowanie pierwszej aplikacji na Androida 103

public void getLocation() { try { LocationManager locMgr = (LocationManager) getSystemService(LOCATION_SERVICE); Location recentLoc = locMgr. getLastKnownLocation(LocationManager.GPS_PROVIDER); Log.i(DEBUG_TAG, "lokalizacja: " + recentLoc.toString()); } catch (Exception e) { Log.e(DEBUG_TAG, "Nie uda�o si� okre�li� po�o�enia", e); }}

Dodatkowo nasza aplikacja wymaga odpowiednich uprawnień, by móc korzystaćz możliwości określania położenia geograficznego. Uprawnienia te należy zarejestrowaćw pliku AndroidManifest.xml. Oto, co należy zrobić, by dodać do aplikacji uprawnieniapozwalające na korzystanie z usług lokalizacyjnych:

1. Dwukrotnie kliknąć plik AndroidManifest.xml. 2. Przejść na zakładkę Permissions.

3. Kliknąć przycisk Add i wybrać opcję Uses Permission.

4. W prawym panelu wybrać opcję android.permission.ACCESS_FINE_LOCATION. 5. Zapisać plik.

Jeśli teraz uruchomimy naszą przykładową aplikację w emulatorze, zarejestruje onaw dzienniku komunikat ze współrzędnymi, które przesłaliśmy wcześniej do emulatora;jego treść będzie można przeczytać w panelu LogCat w Eclipse.

Debugowanie aplikacji na fizycznym urz�dzeniuCzytelnik opanował już sposoby uruchamiania aplikacji przy wykorzystaniu emulatora.Nadszedł zatem czas, by spróbować uruchomić ją na prawdziwym telefonie. W tym celuw pierwszej kolejności trzeba będzie oznaczyć aplikację jako przeznaczoną do debugowania.Stosowne informacje należy podać w pliku AndroidManifest.xml. Aby wprowadzić tezmiany, należy wykonać następujące operacje:

1. Dwukrotnie kliknąć plik AndroidManifest.xml.

2. Przejść na zakładkę Application. 3. Atrybutowi Debuggable przypisać wartość True.

4. Zapisać plik.

Innym rozwiązaniem jest wprowadzenie analogicznych zmian bezpośrednio w kodziepliku AndroidManifest.xml, a konkretnie w atrybucie android:debuggable:

<application ... android:debuggable="true">

Jeśli zapomnimy przypisać atrybutowi debuggable wartości true, telefon będziepokazywać okienko dialogowe z komunikatem o oczekiwaniu na podłączenie debugera

Page 48: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

104 Rozdzia� 3. Pierwsza aplikacja na Androida

aż do momentu naciśnięcia przycisku Force Close i wprowadzenia odpowiednich zmianw pliku manifestu aplikacji.

Teraz można już podłączyć telefon do komputera przy użyciu kabla USB i spróbowaćponownie uruchomić aplikację (korzystając z konfiguracji uruchomieniowej lubtestowej). Ponieważ w obu konfiguracjach ustawiliśmy ręczny tryb wyboru urządzenia,powinniśmy zobaczyć podłączone urządzenie jako opcję na liście działających urządzeń— Choose a running Android device (widocznej na rysunku 3.17).

Rysunek 3.17. Lista umo�liwiaj�ca wybór urz�dzenia,prezentuj�ca telefon pod��czony do komputera przy u�yciu kabla USB

Teraz wystarczy wybrać telefon jako docelowe urządzenie, na którym chcemyuruchomić aplikację. W efekcie aplikacja zostanie skopiowana na telefon i uruchomionatak samo jak wcześniej na emulatorze. Zakładając, że wcześniej zezwoliliśmy także nadebugowanie aplikacji w telefonie, będziemy mogli analizować jej działanie tak samo jakna emulatorze. O tym, że telefon aktywnie używa połączenia w trybie debugowania,można się przekonać po ikonie „androidowego robaka” ( ) wyświetlonej na paskupowiadomień telefonu. Rysunek 3.18 przedstawia zrzut aplikacji uruchomionej naprawdziwym telefonie.

Debugowanie aplikacji na telefonie odbywa się dokładnie tak samo jak w emulatorze,choć różni się od niego pod kilkoma względami. Nie można korzystać z kontrolekemulatora, by przesyłać do telefonu na przykład SMS-y lub informacje o położeniugeograficznym; można natomiast wykonywać analogiczne czynności — czyli napisaćSMS lub włączyć odbiornik GPS, by określić położenie.

Page 49: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Podsumowanie 105

Rysunek 3.18. Aplikacja MyFirstAndroidApp uruchomiona na rzeczywistym telefonie

PodsumowanieW tym rozdziale pokazano, jak można tworzyć, budować, uruchamiać i debugowaćaplikacje na Androida przy wykorzystaniu środowiska Eclipse. Zaczęliśmy odprzetestowania środowiska programistycznego, wykorzystując do tego aplikacjęprzykładową dostarczoną wraz Android SDK, a następnie stworzyliśmy zupełnie nowąaplikację. Czytelnik dowiedział się także, jak wprowadzać proste modyfikacje w aplikacji,i zobaczył kilka fascynujących możliwości Androida, które zostaną bardziej szczegółowoopisane w dalszej części książki.

W kilku kolejnych rozdziałach przedstawione zostaną bardziej szczegółoweinformacje na temat definiowania możliwości i działania aplikacji przy użyciu plikumanifestu oraz opisany cykl działania aplikacji. Oprócz tego znajdą się w nich równieżzagadnienia związane z zarządzaniem zasobami, które będą używane w aplikacji, takimijak obrazy oraz łańcuchy znaków.

Page 50: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

106 Rozdzia� 3. Pierwsza aplikacja na Androida

Zasoby i inne ród�a informacjiSterowniki USB dla systemu Windows:

http://developer.android.com/sdk/win-usb.html

Poradnik dla programistów aplikacji na Androida:http://developer.android.com/guide/developing/device.html

Page 51: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz

<action>, 553<activity>, 553, 561, 569<alpha>, 148<animation-list>, 148<application>, 142<array>, 148<bool>, 147<category>, 553<color>, 147<dimen>, 147<drawable>, 148<instrumentation>, 142<integer>, 147<integer-array>,, 148<intent-filter>, 142, 553<item>, 147, 148<menu>, 148<meta-data>, 561<plurals>, 147, 159<receiver>, 142, 542<resources>, 149<rotate>, 148<scale>, 148<selector>, 147<service>, 520<set>, 148<string>, 147<string-array>, 147<style>, 148, 178, 181<supports-screen>, 639<TextView>, 189<translate>, 148<uses-configuration>, 135, 136, 607, 639<uses-feature>, 136, 443, 468, 483, 639<uses-sdk>, 133, 134, 468, 483, 548, 639

Aaapt, 146, 147AbstractAccountAuthenticator, 574AbstractThreadedSyncAdapter, 575AccelerateDecelerateInterpolator, 293AccelerateInterpolator, 293ACCESS_COARSE_LOCATION, 428Account, 574account authenticator, 574account providers, 574AccountManager, 574ACTION_DISCOVERY_FINISHED, 496ACTION_DISCOVERY_STARTED, 496ACTION_FOUND, 496Activity, 109, 110, 460adapter synchronizacji, 575AdapterView, 256ADB, 689addOnPreDrawListener(), 221ADV, 390agent archiwizacji, 577, 580AIDL, 519, 527AIR, 384akcja

ACTION_BATTERY_CHANGED, 122ACTION_BATTERY_LOW, 122

aktualizacja aplikacji w Android Market, 723aktywne foldery, 565, 566aktywności, 109, 110

cykl życia, 114stos, 112, 113przechodzenie pomiędzy

aktywnościami, 118

Page 52: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

814 Android. Programowanie aplikacji na urz�dzenia przeno�ne

AlarmManager, 538, 575AnalogClock, 214AndAppStore, 726Android, 46, 47, 48, 49, 54

architektura, 55Cupcake, 50Donut, 50Eclair, 50emulator, 70, 71, 85Froyo, 50Gingerbread, 50glEsVersion, 443logo, 49maskotka, 49nazwy kodowe, 50prezentacja systemu, 35szkielet aplikacji, 59

Android 1.0 SDK, 133Android 1.1 SDK, 133Android 1.5 SDK (Cupcake), 133Android 1.6 SDK (Donut), 133Android 2.0 SDK (Éclair), 133Android 2.0.1 SDK (Éclair), 133Android 2.1 SDK (Éclair), 133Android 2.2 SDK, 133, 134Android Backup Service, 576, 577Android Cloud to Device Messaging

(C2DM), 520Android Content Gudelines, 722Android Debug Bridge (ADB), 72Android Dev Phone, 659Android Developer Challenge (ADC), 46Android Development Tools (ADT), 61Android Device Chooser, 104Android Hierarchy Viewer, 73Android Interface Definition Language, 519Android Market, 48, 53, 57, 669, 712, 714, 717Android Native Development Kit, 442,

Patrz Android NDKAndroid NDK, 477

instalacja, 476stosowanie, 475

Android Project, 78Android Project Wizard, 86, 88

Android SDK, 58, 61, 64, 68, 306, 689aktualizacja, 64android.*, 68dokumentacja, 66, 67licencja, 65narzędzia, 69określanie wersji, 640problemy, 64

Android SDK (Gingerbread), 133Android SDK and AVD Manager, 69, 70Android SDK dalvik.*, 68Android SDK java.*, 68Android SDK javax.*, 68Android SDK junit.*, 68Android SDK License Agreement, 65Android SDK org.apache.http.*, 68Android SDK org.json, 68Android SDK org.w3c.dom, 68Android SDK org.xml.sax.*, 68Android SDK org.xmlpull.*, 68Android Virtual Device, 390android.accessabilityservice, 590android.accounts, 574android.bluetooth, 494android.content.Intent, 118android.gesture, 597android.hardware.Camera, 410android.hardware.Sensor, 487android.hardware.SensorManager, 486android.inputmethodservice, 588android.opengl, 442android.opengl.GLES11, 442android.opengl.GLES20, 442android.os.BatteryManager, 499android.permission.CALL_PHONE, 437android.permission.CAMERA, 419android.provider.CallLog, 439android.provider.LiveFolders, 567android.provider.Settings, 594android.provider.Telephony.SMS_RECEIVED,

436android.sax.*, 304android.speech, 590android.speech.tts, 593android.telephony, 428

Page 53: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 815

android.test.ActivityUnitTestCase, 687android.test.MoreAsserts, 687android.test.PerformanceTestCase, 687android.test.ServiceTestCase, 687android.test.TouchUtils, 687android.test.ViewAsserts, 687android.util.Xml.*, 304android.view.accessibility, 590android.view.inputmethod, 588android.webkit, 378android:backupAgent, 580android:collapseColumns, 253android:foreground, 245android:foregroundGravity, 245android:gravity, 248, 249android:icon, 569android:label, 569android:layout_above, 250android:layout_alignBottom, 250android:layout_alignLeft, 250android:layout_alignParentBottom, 250android:layout_alignParentLeft, 250android:layout_alignParentRight, 250android:layout_alignParentTop, 250android:layout_alignRight, 250android:layout_alignTop, 250android:layout_below, 250android:layout_centerHorizontal, 250android:layout_centerInParent, 249android:layout_centerVertical, 250android:layout_column, 253android:layout_gravity, 246, 248android:layout_height, 244android:layout_margin, 244android:layout_span, 253android:layout_toLeftOf, 250android:layout_toRightOf, 250android:layout_weight, 248android:layout_width, 244android:measureAllChildren, 246android:orientation, 248android:shrinkColumns, 253android:stretchColumns, 253AndroidManifest.xml, 118

animacje, 285poklatkowe, 285, 286przejść, 285, 288, 291wczytywanie, 290

AnimationDrawable, 286AnimationSet, 289animowane obrazy GIF, 285animowane tapety, 545

tworzenie, 545instalacja, 549konfiguracja, 547

AnticipateInterpolator, 293AnticipateOvershootInterpolator, 293Antyaliasing, 269ApiDemos, 74aplikacja

aktualizacja w Android Market, 723animowane tapety, 534certyfikacja na Androida, 716darmowe, 679debugowanie, 62, 93, 103dodawanie usług lokalizacyjnych, 100dystrybucja, 717filtry intencji, 534ikona, 711klient-serwer,661kontrola jakości, 662LBS, 47mechanizmy rejestracji, 97mobilne

projektowanie, 664architektura, 664

nazwa, 711numer wersji, 712określanie wymagań systemowych, 125pielęgnacja oprogramowania, 669polityka zwracania, 723preferencje, 111projektowanie pod kątem pielęgnacji, 665projektowanie pod kątem współdziałania

aplikacji, 667projektowanie rozszerzeń, 665przesyłanie do Android Market, 720publikacja w Android Market, 722

Page 54: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

816 Android. Programowanie aplikacji na urz�dzenia przeno�ne

aplikacjapunkty integracji, 702sprzedawanie, 717, 725szkielet programowania, 68testowanie

aktualizacji oprogramowaniaukładowego, 670

aplikacji na urządzenia przenośne, 668na urządzeniach, 660publikowanej wersji pakietu, 716

tworzenie na urządzenia przenośne, 667tworzenie, 648umiędzynarodawianie, 632, 637uruchamianie aktywności

udostępnianych przez aplikację, 125usuwanie z Android Market, 723wdrażanie, 668weryfikacja uprawnień, 713widżety, 533, 534wsparcie, 669wymagające jednokrotnej płatności, 679wymagające wykupienia subskrypcji, 679wymagania, 649wyświetlanie szczegółowych informacji

na temat aplikacji, 125wzbogacanie, 533z wbudowanymi opłatami, 679zarządzanie uprawnieniami aplikacji, 126zwracanie, 723

AppWidgetProvider, 538ArcShape, 282ArrayAdapter, 256AsyncTask, 362Audio.Albums, 328Audio.Artists, 328Audio.Genres, 328Audio.Media, 328Audio.Playlists, 328AutoCompleteTextView, 196autoLink, 192

all, 192email, 192map, 192none, 192phone, 192web, 192

AVD, 82tworzenie, 82, 89

awarieśledzenie informacji, 669weryfikacja informacji, 669

Bbackup agent, 577BackupAgentHelper, 577bateria, monitorowanie stanu, 497baza danych, 306

firm trzecich, 656baza danych urządzeń, 654

korzystanie, 655zarządzanie, 653

biblioteka EGL, 448biblioteka GL, 450biblioteka OpenGL ES, 451biblioteki zewnętrzne, 137Bluetooth, 494BluetoothAdapter, 494, 495BluetoothDevice, 494BluetoothServerSocket, 494, 496BluetoothSocket, 494Bodlaender Hans, 273BounceInterpolator, 293BroadcastReceiver, 435, 436Browser, 328, 331bufor kolorów, 453Button, 200, 201ByteBuffer, 452

CCacheManager, 378CallLog, 328, 329CallLog.Calls, 439Camera, 410, 412CameraSurfaceView, 410, 412Canvas, 267, 269cena aplikacji, 721

darmowa, 721Free, 721Paid, 721płatna, 721

Page 55: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 817

certyfikacja aplikacji na Androida, 716certyfikacja oprogramowania, 662CheckBox, 200, 201Chronometer, 213cieniowanie pikseli, 467cieniowanie wierzchołkowe, 467clipping plane, 450completionThreshold, 197ConsoleMessage, 378ContactsContract, 328container, 255ContentResolver, 337, 424Context, 109, 418Context.deleteFile(), 302Context.fileList(), 302Context.getCacheDir(), 302Context.getDir(), 302Context.getFilesDir(), 302Context.openFileInput(), 302Context.openFileOutput(), 302ContextMenu, 217CookieManager, 378Cursor, 313CursorAdapter, 256CustomGL2SurfaceView, 468CustomRenderer, 469CVS, 663CycleInterpolator, 293Cygwin 1.7, 476czas istnienia urządzeń na rynku, 657czerpanie dochodów z reklam, 727czujnik, 486

kalibracja, 490odczyt danych, 488uzyskiwanie dostępu, 488

czujnik Wi-Fi, 491

DDalvik Debug Monitor Server (DDMS), 71, 301dane, 145

kojarzenie, 322dane użytkowników

obsługa, 678przesyłanie, 678

DatePicker, 206, 207DDMS, 429, 682, 689debugowanie, 713DecelerateInterpolator, 293defekt, 692description, 548diagnostyka kodu, 686Dialog, 225, 226DigitalClock, 214DisplayMetrics, 617doAlert(), 382dochody z reklam, 727doConsoleLog(), 382dodawanie tekstur do obiektów, 457dokumentacja aplikacji, 670dokumentacja projektowa, 661, 662

analiza wymagań, 661architektura aplikacji, 661dokumentacja zmian zakresu, 661określenie ryzyka, 661plany testowania aplikacji, 661pomiary wydajności, 661priorytety, 661projekt aplikacji, 661przypadki testowania, 661skrypty testowe, 661specyfikacja techniczna, 661szczegółowa specyfikacja interfejsu

użytkownika, 661, 662zarządzanie ryzykiem, 661

doSetFormText(), 382dostawcy danych CallLog, 329dostawcy kont, 574dostawcy treści, 139, 327, 341

Browser, 328, 331CallLog, 328Contacts, 332ContactsContract, 328implementacja metod, 346MediaStore, 328modyfikacja danych, 336Settings, 328, 336UserDictionary, 328, 335

doToast(), 381Draw Nine Patch, 682

Page 56: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

818 Android. Programowanie aplikacji na urz�dzenia przeno�ne

Drawable, 278Droid Incredible, 607dystrybucja aplikacji, 717dzwonki, 425

EEclipse, 51, 61, 62, 94, 663, 689Eclipse Manifest File, 127, 128EditText, 193, 432, 437Edytory metod wprowadzania (IME), 588eglTerminate(), 464ekran, 625

FWVGA, 625HVGA, 625menu głównego, 112najlepszych wyników, 112początkowy, 111QVGA, 625rozgrywki, 112systemu pomocy, 112VGA, 625WBGA, 625WQVGA, 625

elementy konstrukcyjne aplikacji, 109aktywność, 109intencja, 109kontekst, 109

EMS, 41emulator Androida, 689, 698Enchanced Messaging Service, Patrz EMSEND_DOCUMENT, 361END_TAG, 361

FFileBackupHelper, 578filtry intencji, 139

rejestracja, 552Flash, 383Flash 10.1, 383Flash Lite, 383Flash Player for Android, 384Flash Professional CS5, 385FloatBuffer, 452, 457

formatGIF, 241JPG, 241PNG, 241

formatNumber(), 431fragment shader, 468fragmentacja, 613, 614FrameLayout, 235, 539, 616

GGalleryRecord, 341GalleryView, 255GameAreaView, 598generowanie sugestii, 556Geocoder, 391GeoPoint, 401GestureDetector, 597, 598GestureDetector.SimpleOnGestureListener,

598GestureOverlayView, 597gesty, 596, 597, 604, 607getAuthToken(), 574GetMethodID(), 481GL_LINE_LOOP, 455GL_TEXTURE_COORD_ARRAY, 459GL_TRIANGLES, 455GL_VERTEX_ARRAY, 453GLDebugHelper, 449glDrawArrays(), 452, 453glDrawElements(), 452GLSurfaceView, 443, 444, 464, 465, 467GLSurfaceView.Renderer, 443, 464GNU Awk (Gawk), 476GNU Make 3.81, 476Google, 46, 47Google APIs, 390Google Nexus One, 659GPS, 388

możliwości, 388określanie położenia, 388

GpsSatellite, 406GpsStatus, 406GpsStatus.Listener, 406GPXService, 521, 522, 527

Page 57: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 819

gradienty, 269grafika rastrowa, 275Graphics Interchange Format (GIF), 164gravity, 616GridView, 255, 567grupa klas, 235grupa uprawnień, 141

HHandango, 725Handler, 460Hierarchy Viewer, 239, 240, 241, 682, 689

Display View, 241Invalidate Layout, 242Pixel Perfect, 241, 242Request Layout, 242Tree View, 241

HorizontalScrollView, 264HTC, 46HTTP, 358HttpUrlConnection, 359

Iidentyfikator URI, 341ikona, 131, 629, 711ImageButton, 203Images.Media, 328Images.ThumbNails, 328ImageUriAdapter, 343IME, 585implementacja oprogramowania

mobilnego, 667includeInGlobalSearch, 563Input Method Editor, 585InputFilter, 198InputStream, 366inputText, 586insertOrThrow(), 309IntBuffer, 452Integrated Development Environment (IDE), 51intencja, 109, 121Intent, 109, 567

Intent.ACTION_ANSWER, 438Intent.ACTION_CALL, 438Intent.ACTION_DIAL, 438Intent.ACTION_VIEW, 438IntentFilter, 436interfejs użytkownika, 235

organizacja, 238projektowanie, 615tworzenie, 233zakładki., 260

Internet Assigned Numbers Authority(IANA), 551

IRemoteInterface, 528ItemizedOverlay, 401, 402

JJava Development Kit (JDK), 61java.xml.*, 304JavaScriptExtension, 380, 381javax.microedition.khronos.egl, 442javax.microedition.khronos.opengles, 442jednostki

cale, 162milimetry, 162piksele, 162piksele niezależne od gęstości ekranu, 162piksele niezależne od skali, 162punkty, 162

język XML, 360języki, 613Joint Photographics Expert Group (JPEG), 164

Kkarta SD, 341, 342katalog aplikacji

assets, 89gen, 89res, 89

Khronos, 442KickBack, 590klawiatura programowa, 586

niestandardowe, 588

Page 58: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

820 Android. Programowanie aplikacji na urz�dzenia przeno�ne

kolorowanie wierzchołków, 453konfiguracja lokalizacji w emulatorze, 101konfiguracja wyszukiwania, 555konfiguracje sprzętowe, 613kontekst aplikacji, 109, 110, 111

określanie uprawnień aplikacji, 111pobieranie danych, 111pobieranie zasobów zgromadzonych

w aplikacji, 111pobieranie, 110sprawdzanie uprawnień aplikacji, 111stosowanie, 110uruchamianie aktywności, 111zarządzanie bazami danych aplikacji, 111zarządzanie katalogami aplikacji, 111zarządzanie plikami aplikacji, 111żądanie dostępu do usług

systemowych, 111konto programisty, 717, 724kontrolka, 188

AnalogClock, 539Button, 539Chronometer, 539ImageButton, 539ImageView, 539ProgressBar, 539TextView, 539

kopie zapasowe, 576kursory, 312

zarządzanie, 312kwadrat roboczy, 621, 622kwalifikatory katalogów zasobów

alternatywnych, 624dostępność klawiatury, 626dostępność klawiszy nawigacyjnych, 627dostępny sposób nawigacji, 627gęstość pikseli na ekranie, 626kod języka, 625kod MCC, 625kod MNC, 625kod regionu, 625metoda wprowadzania danych, 627orientacja ekranu, 625tryb dokowania, 625tryb nocny, 626

typ ekranu dotykowego, 626typ klawiatury, 626używana platforma Android, 627wielkość ekranu, 625współczynnik proporcji ekranu, 625

LlaunchRecognizer, 558launchWebSearch, 558layout, 188LayoutInflater, 343liczby

całkowite, 298całkowite typu long, 298zmiennoprzecinkowe, 298

LinearGradient, 270LinearInterpolator, 293LinearLayout, 235, 539, 616ListView, 255, 322, 616Location, 391LocationListener, 390, 524LogCat, 98lokalizacja treści, 340LunarLander, 75

Łłańcuchy znaków, 298

Mmaksymalizowanie zgodności aplikacji, 613manipulator kulowy, 607MapView, 396, 401mash-up application, 47Matrix, 276, 605maxSdkVersion, 133, 135mechanizm uwierzytelniający, 574MediaController, 421MediaPlayer, 423MediaRecorder, 418, 421MediaStore, 328menedżer kont, 573

Page 59: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 821

menugłówne, 120kontekstowe, 217rozwijane, 120

metodaaddJavascriptInterface(), 381addURI(), 568animateTo(), 397bindService(), 121, 528BitmapFactory.decodeStream(), 366boundCenterBottom(), 403CallVoidMethod(), 482cancelDiscovery(), 496ContentUris.withAppendedId(),, 334Context.bindService(), 520, 522Context.openFileInput(), 304Context.startService(), 520, 522dataChanged(), 581delete(), 350dismissDialog(), 225distanceTo(), 390doInBackground(), 363doServiceStart(), 524dostosowywania, 650, 651draw(), 453dystrybucji, 709eglDestroyContext(), 464eglDestroySurface(), 464eglMakeCurrent(), 464enable(), 495ExceptionDescribe(), 482ExceptionOccured(), 482execSQL(), 308filter(), 198findViewById(), 421formatNumber(), 431getAccountByType(), 574getAddressLine(), 392getBestProvider(), 389getBondedDevices(), 495getCallState(), 428getCenter(), 406getConfiguredNetworks(), 493getDefault(), 433getDefaultSensor(), 488

getDesiredMinimumHeight(), 417getDesiredMinimumWidth(), 417getDisplayMessageBody(), 436getDrawable(), 417getDuration(), 421getFeatureName(), 392getFromLocationName(), 393getHolder(), 445getItem(), 341getItemId(), 341getLocality(), 392getMaxAddressLineIndex(), 392getMaxZoom(), 415getOrientation(), 490getResources(), 110getScaleFactor(), 606getSharedPreferences(), 111getSystemService(), 428, 507getText(), 194getType(), 351getView(), 342getX(), 607getY(), 607getZoom(), 415getZoomRatios(), 416glColorPointer(), 453glDrawElements(), 454, 455glRotatef(), 451gluLookAt(), 451gluPerspective(), 450GLUtils.texImage2D(), 459glVertexPointer(), 452, 453insert(), 309, 348insertImage(), 416isDiscovering(), 496isEnabled(), 495isFinishing(), 117isRouteDisplayed(), 396isSmoothZoomSupported(), 415isZoomSupported(), 415javaThrowsException(), 482kaskadowa, 648

niebezpieczeństwa, 648, 649listen(), 429, 431Log.d(), 97

Page 60: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

822 Android. Programowanie aplikacji na urz�dzenia przeno�ne

metodaLog.e(), 97Log.i(), 97Log.v(), 97Log.w(), 97managedQuery(), 332, 334, 561MediaPlayer.create(), 99MediaPlayer.release(), 99MediaPlayer.start(), 99MediaPlayer.stop(), 99najmniejszego wspólnego mianownika, 650obtainTypedArray(), 173onAccuracyChanged(), 488onActivityResult(), 593onAnimateMove(), 601onAnimateStep(), 601onBackup(), 578onClick(), 202onCreate(),113, 114, 380, 436, 521, 546, 560onCreateDialog(), 226onCreateOptionsMenu(), 215onDeleted(), 538onDestroy(), 116, 117, 521, 546onDisabled(), 538onDraw(), 267, 599onEnabled(), 538onFling(), 602onKeyDown(), 463onKeyUp(), 463onLocationChanged(), 390onNewIntent(), 560onOffsetsChanged(), 547onPageFinished(), 375onPause(), 115onReceived(), 538onResetLocation(), 601, 602onRestore(), 578onResume(), 114, 115, 116onSaveInstanceState(), 116onScaleBegin(), 606onSensorChanged(), 488, 489onServiceConnected(), 528, 529onStart(),521, 522, 523onStartCommand(), 521, 522, 523onStop(), 116

onSurfaceChanged(), 546onSurfaceCreated(), 467, 469, 546onSurfaceDestroyed(), 546onTouchEvent(), 547, 598, 599, 601, 604onTrackballEvent(), 607onUpdate(), 538, 540onVisibilityChanged(), 546openFileOutput(), 302openOrCreateDatabase(), 307peekDrawable(), 417PictureCallback, 414post(), 460query(), 314, 558, 568recycle(), 459registerListener(), 488, 490removeDialog(), 225requestRestore(), 581requestStop(), 447rquestRouteToHost(), 368run(), 447sendMultipartTextMessage(), 436sendTextMessage(), 433setBitmap(), 417setBuildInZoomControls(), 374setChronometer(), 539setContentView(), 189, 210setEGLContextClientVersion(), 469setFilters(), 198setImageURI(), 343setImageViewResource(), 539setInitialScale(), 374setJavaScriptEnabled(), 374setLatestEventInfo(), 515setLightTouchEnabled(), 375setOnClickListener(), 202setOnClickPendingIntent(), 540setOnCompletionListener(), 421setOnLongClickListener(), 223setPowerRequirement(), 389setProgressbar(), 539setResource(), 417setResult(), 566setShort(), 539setStream(), 417setString(), 539

Page 61: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 823

setSupportZoom(), 374setText(), 190, 194setTextViewText(), 539setTheme(), 230setVideoURI(), 421setZoom(), 416show(), 689showDialog(), 225, 226SmsManager.divideMessage(), 436SmsMessage.createFromPdu(), 436startActivity(), 118, 395, 438startActivityForResult(), 495, 566, 593startDiscovery(), 496startService(), 121, 520, 526stopSelf(), 520surfaceChanged(), 412surfaceCreated(), 446surfaceDestroyed(), 412, 446takePicture(), 414unbindService(), 528update(), 348updateAppWidget(), 540Uri.parse(), 99, 343WebChromeClient.onJSAlert(), 382wprowadzania tekstów, 585

MIME, 550, 551minSdkVersion, 133MMS, 41MobiHand, 726monitorowanie siły sygnału, 431monitorowanie szybkości połączenia, 431MotionEvent, 598, 599Motorola

DynaTAC, 38StarTAC, 39

MultiAutoCompleteTextView, 195, 196, 197multimedia

dzwonki, 425dźwięki, 409obrazy, 409, 410poszukiwanie, 425rejestracja dźwięków, 421wideo, 409, 418

Multimedia Messaging Service, Patrz MMSmulti-touch, 596

NNDK, 442, 475

tworzenie projektu, 478NinePatch, 275Nine-Patch Stretchable Graphics, 165, 617,

618Nine-Patch Stretchable Image, 164NotePad, 74NotificationManager, 507numer wersji aplikacji, 712

Oobiekt

AdapterView, 258ArrayAdapter, 256CursorAdapter, 257ListActivity, 259TextView, 256

obroty, 291obsługa

konfiguracji sprzętowych, 639konfiguracji urządzeń, 638numerów telefonicznych, 431

obsługa zmian konfiguracji, 631ochrona własności intelektualnej, 726odczyt

danych, 303plików XML, 303zawartości plików bajt po bajcie, 303

odczytywanie tekstów, 593odkrywanie urządzeń, 496odpowiedzi dotykowe, 589ograniczenia urządzeń przenośnych, 664okna dialogowe, 224, 225

AlertDialog, 224CharacterPickerDialog, 224DatePickerDialog, 224definiowanie, 226Dialog, 224inicjalizacja, 226ProgressDialog, 224TimePickerDialog, 224tworzenie, 227

Page 62: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

824 Android. Programowanie aplikacji na urz�dzenia przeno�ne

okna dialogoweukrywanie, 225, 227uruchamianie, 226usuwanie, 225, 227wyświetlenie, 225

Określanie akcji intencji, 551określanie rynków docelowych, 669onDoubleTap, 598onDoubleTapEvent, 598onDown, 597onFling, 598onLongPress, 598onScroll, 598onServiceStateChanged(), 429onShowPress, 597onSingleTapConfirmed, 598onSingleTapUp, 598opcja

Debugowanie USB, 63Programowanie, 63

OpenGL ES, 442, 443, 444, 468zwalnianie zasobów, 4641.0, 442, 4431.1, 442, 4431.x, 467, 4692.0, 442, 443, 467, 469, 651konfiguracja aplikacji, 468pobieranie powierzchni, 468

opłata rejestracyjna, 719oprogramowanie mobilne

metodologia, 648projektowanie interfejsu, 648tworzenie, 647

org.w3c.dom, 304org.xml.saw.*, 304org.xmlpull.*, 304orientacja ekranu, 607oświetlanie sceny, 455OvalShape, 281OvershootInterpolator, 293

PPaint, 267, 269Parcel, 531Parcelable, 529, 530

PathShape, 284PendingIntent, 433Perforce, 663PetListAdapter, 343PhoneNumberFormattingTextWatcher, 431PhoneStateListener, 431pielęgnacja oprogramowania mobilnego, 669plik

arrays.xml, 172dystrybucyjnego pakietu aplikacji, 720manifestu, 125, 712

default.properties, 89katalog src, 89AndroidManifest.xml, 89main.xml, 89strings.xml, 89

R.java, 110, 146, 172strings.xml, 172układu, 235

edycja, 126ręczna edycja, 129zarządzanie tożsamością aplikacji, 131

XML, 170zasobów, 146

pobieranie informacji o usłudze, 430pobieranie opłat od użytkowników, 727point-to-point, 494pojemnik, 255pojemniki działające w oparciu o dane, 255polecenie SQL CREATE TABLE, 307polityka zwracania aplikacji, 723połączenie RFCOMM, 494połączenie typu punkt-punkt, 494Portable Network Graphics (PNG), 164powiadomienia, 510

błyskanie, 512domyślne działanie, 515dźwięki, 514projektowanie, 517sygnalizator świetlny, 512usuwanie, 511wibracje, 511

poziom zabezpieczeńniebezpieczny, 141normalny, 141poziom podpisu, 141

Page 63: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 825

pozorowanie lokalizacji, 64preferencje

aktualizacja, 299aktywności, 298dodawanie, 299odczyt, 299prywatne, 298przeszukiwanie, 299usuwanie, 299wspólne, 298

PrefListenerService, 541problemy ze zgodnością, 613programowe definiowanie kształtów, 278programy certyfikacyjne, 662ProgressBar, 435progressBarStyleLarge, 209progressBarStyleSmall, 209projektowanie aplikacji

bezpiecznych, 678błędy, 683interfejs użytkownika, 675korzystanie ze standardów, 680maksymalizacja zysków, 679najlepsze praktyki, 673, 683pod kątem aktualizacji, 680pod kątem łatwości aktualizacji

i rozszerzania, 681pod kątem prostoty ich utrzymaniaprzy wykorzystaniu Androida, 682stabilnych i szybko reagujących, 676

przekształcaniekanału alfa, 291przesunięcia, 292przezroczystości, 291skali, 292tekstu na mowę, 589

przesyłanie aplikacji do Android Market, 720przetwarzanie asynchroniczne, 362przewidywanie tekstu, 589przewijanie w pionie, 264przewijanie w poziomie, 264przytrzymanie, 222publikacja aplikacji w Android Market, 722punkt wstrzymania, 95

QqueueEvent(), 467

RRadialGradient, 270, 271RadioButton, 200, 201, 204RadioGroup, 201, 204RatingBar, 212rawQuery(), 316READ_PHONE_STATE, 428RecognizerIntent, 591, 592, 593RectShape, 279rejestracja

dostawców treści, 139odbiorców komunikatów, 139usług, 139

rejestracja głosu, 591rekordy

aktualizacja, 309, 337dodawanie, 336usuwanie, 309, 310, 338wstawianie, 309

RelativeLayout, 235, 539, 616RemoteViews, 537, 539Renderer, 443rendering, 444rendering pipeline, 444RoundRectShape, 279rozpoznawanie mowy, 589, 590, 591rysowanie

bardziej złożonych obiektów, 453kwadratów, 279łuków, 282obiektów trójwymiarowych, 452owali, 281okręgów, 281prostokątów z zaokrąglonymi

wierzchołkami, 279prostokątów, 279różnych kształtów, 279ścieżek, 283wierzchołków, 452

Page 64: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

826 Android. Programowanie aplikacji na urz�dzenia przeno�ne

SScaleGestureDetector, 597, 604scenariusze testowania, 702ScrollView, 264, 616SearchManager, 555searchSuggestAuthority, 556SeekBar, 211Sensor, 487SensorManager, 486ServiceState, 429Settings, 328, 336ShapeDrawable, 281, 284SharedPreferences, 298, 299SharedPreferences.contains(), 299SharedPreferences.edit(), 299SharedPreferences.Editor.clear(), 300SharedPreferences.Editor.commit (), 300SharedPreferences.Editor.putBoolean(), 300SharedPreferences.Editor.putFloat(), 300SharedPreferences.Editor.putInt(), 300SharedPreferences.Editor.putLong(), 300SharedPreferences.Editor.putString(), 300SharedPreferences.Editor.remove(), 300SharedPreferences.getAll(), 299SharedPreferences.getBoolean(), 299SharedPreferences.getFloat(), 299SharedPreferences.getInt(), 299SharedPreferences.getLong(), 299SharedPreferences.getString(), 299SharedPreferencesBackupHelper, 578Short Messaging Service, Patrz SMSShort Text Message, 427showVoiceSearchButton, 558sigle-touch, 596simple_fragment, 469simple_vertex, 469SimpleCursorAdapter, 322, 561SimpleDataUpdateService, 541SimpleSearchableActivity, 560SimpleViewDetailsActivity, 552skalowanie, 292SlideME, 725SlidingDrawer, 265, 266słowniki użytkownika, 589

SMS, 41, 427SmsManager, 433Snake, 74

dodawanie aplikacji, 78pliki projektu, 80uruchamianie aplikacji, 84

SoftKeyboard, 588Software Development Kit (SDK), 46SoundBack, 590Spinner, 199splash screen, 111sprzedawanie aplikacji, 717, 725SQLite, 305, 308sqlite3, 689SQLiteDatabase, 307SQLiteOpenHelper, 319SQLiteQueryBuilder, 316standardowe kliknięcie, 222standardy kodowania, 685

definiowanie, 685START_TAG, 361stos aktywności, 112, 113stosowanie zasobów alternatywnych, 629style, 178, 227, 269Subversion, 663surfaceCreated(), 412SurfaceHolder, 412SurfaceView, 443, 445, 446SurfaceView.Callback, 446SweepGradient, 270, 271synchronizacja danych, 575synchronizacja danych użytkownika, 573synteza mowy, 590system

Binary Runtime for Wireless, 42BREW, 42Garnet OS, 42GPS, 387iPhone OS, 42J2ME, 42Java Micro Edition, 42numeracji wersji aplikacji, 663Palm OS, 42rejestracji defektów, 691RIM BlackBerry OS, 42

Page 65: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 827

Symbian, 42zarządzania kodem źródłowym, 663

CVS, 663Perforce, 663Subversion, 663

Śśledzenie informacji o awariach, 669środowisko programistyczne

konfiguracja, 61przygotowanie, 61testowanie, 77zarządzanie, 693

TTabActivity, 260TableLayout, 235, 616tablice indeksów, 453TalkBack, 590targetSdkVersion, 133, 134tekst

określanie wymiarów, 275wyświetlanie, 272

telefonCandy bar, 40klasyczny, 40przesuwany, 40z klapką, 40

TelephonyManager, 428, 431tematy, 181, 229testy

aktualizacji oprogramowaniaukładowego, 670

aplikacji klient-serwer, 661aplikacji na urządzenia przenośne, 668aplikacji na urządzeniach, 660aplikacji wielojęzycznych, 703aplikacji, 693automatyzacja, 697instalacji, 703jednostkowe, 687konfiguracja urządzenia, 63

kopii zapasowych, 703maksymalizacja pokrycia, 696na urządzeniach, 697najlepsze praktyki, 691narzędzia testowe innych firm, 662opłat za aplikację, 704pod kątem zwiększenia

prawdopodobieństwa stworzeniaaplikacji, która będzie hitem, 704

pojedynczej aktywności, 687punktów integracji aplikacji, 702scenariusze, 702strategie, 699strukturalne, 699uaktualnień aplikacji, 702usług i serwerów używanych

przez aplikacje mobilne, 700usług, 687użyteczności, 701w emulatorze, 697, 698, 699wizualnej atrakcyjności aplikacjiwstępne, 697wydajności działania, 687, 704zdarzeń nieprzewidzianych, 704zgodności, 703

TEXT, 361Text-To-Speech (TTS), 593TextView, 189, 227, 432themes, 181thumbnail, 182, 548TimePicker, 208Toast, 689ToggleButton, 200, 201Tokenizer, 195touch mode, 219trackball, 607trackListener, 524trackpad, 607transakcja, 311TreeViewObserver, 220TTS, 593, 594tworzenie aplikacji

błędy, 689metodologia, 648

Page 66: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

828 Android. Programowanie aplikacji na urz�dzenia przeno�ne

tworzeniebaz danych SQLite, 307obiektu bazy danych, 307

typy ekranów, 617typy wprowadzania danych, 587

Uukład, 188, 235

AbsoluteLayout, 251FrameLayout, 243, 244, 245, 247, 248, 251RelativeLayout, 243, 247, 249, 250TableLayout, 243, 251, 252tworzenie, 235

ułatwienia dostępu, 589URI, 342

dodawanie, 345UriMatcher, 347URLUtil, 378UserDictionary, 328, 335usługi, 110, 519, 520

tworzenie, 521ustawienia

językowe, 634lokalne, 637

usuwanie aplikacji z Android Market, 723usuwanie instancji bazy danych SQLite, 318usuwanie rekordów z baz danych, 309usuwanie tabel oraz innych obiektów

baz danych SQLite, 317

Vvertex shader, 467Video.Media, 328videoRecorder, 419VideoView, 421View, 234, 238VIEW, 550ViewGroup, 234, 235, 238, 239

atrybuty, 244viewport, 450ViewTreeObserver, 221voiceSearchMode, 558

WWAP, 39, 40, 41wartości logiczne, 298wdrażanie aplikacji mobilnych, 668WebBackForwardList, 378WebChromeClient, 375, 376WebHistoryItem, 378WebView, 371, 372weight, 616weryfikacja informacji o awariach, 669weryfikacja uprawnień aplikacji, 713wibracje, 589widoki, 187widżet, 536, 537

aktualizacja, 540hosty, 544instalacja, 543tworzenie dostawcy, 537tworzenie, 534, 535

wielkości ekranu, 137wielodotyk, 596, 604Wireless Application Protocol, 40, Patrz WAPWireless Markup Language, Patrz WMLWML, 40writeToParcel(), 530wstawianie rekordów, 309wyjątki, 480wykrywanie ruchów, 596wymagania aplikacji, 659wyszukiwanie

globalne, 562, 563, 564głosowe, 558w pliku manifestu, 561

XXML, 360

Zzabezpieczenie przed kopiowaniem, 721zakładka

Application, 127, 128Instrumentation, 129

Page 67: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane

Skorowidz 829

Manifest, 127Permissions, 127, 128

zamykanie bazy danych, 318zamykanie i usuwanie baz danych SQLite, 317zarządzanie kontami, 573zarządzanie tożsamością aplikacji, 131zasoby, 145, 146, 157

alternatywne, 150, 622animacje poklatkowe, 148animacje przejść, 148animacje, 166domyślne, 150graficzne, 146, 163grafika, 148katalogi, 146kolory, 147, 161liczby całkowite, 147, 160lista stanów koloru, 147łańcuchy znaków w liczbie mnogiej, 147łańcuchy znaków, 147, 156menu, 148odwołania do zasobów, 171pliki dowolne, 148pliki xml, 148programowy dostęp, 152proste zasoby graficzne, 148style i tematy, 148tablice liczb całkowitych, 148tablice łańcuchów znaków, 147tablice o wartościach różnych typów, 148typy wartości, 147układy, 148wartości logiczne, 147, 159, 160wymiary, 147związane z interfejsem użytkownika, 146

zdalne tworzenie kopii, 576zdarzenie

GlobalFocusChange, 221GlobalLayout, 221PreDraw, 221

zgodności aplikacji, 613zmiana ustawień językowych, 634

znacznik<action>, 553<activity>, 553, 561, 569<alpha>, 148<animation-list>, 148<application>, 142<array>, 148<bool>, 147<category>, 553<color>, 147<dimen>, 147<drawable>, 148<instrumentation>, 142<integer>, 147<integer-array>,, 148<intent-filter>, 142, 553<item>, 147, 148<menu>, 148<meta-data>, 561<plurals>, 147, 159<receiver>, 142, 542<resources>, 149<rotate>, 148<scale>, 148<selector>, 147<service>, 520<set>, 148<string>, 147<string-array>, 147<style>, 148, 178, 181<supports-screen>, 639<TextView>, 189<translate>, 148<uses-configuration>, 135, 136, 607, 639<uses-feature>, 136, 443, 468, 483, 639<uses-sdk>, 133, 134, 468, 483, 548, 639

Żżądanie

odtworzenia danych, 581utworzenia kopii, 581

Page 68: Android. Programowanie aplikacji na urządzenia przenośne ...pdf.helion.pl/andrp2/andrp2.pdfAndroid. Programowanie aplikacji na urządzenia przenośne. Wydanie II Autorzy: CShane