Android w praktyce - ebook
Android w praktyce - ebook
Najlepsze techniki programowania na Androida w zasięgu ręki!
Nietrudno jest znaleźć informacje potrzebne do stworzenia pierwszej aplikacji na Androida. Ale co dalej? Im głębiej zanurzymy się w świat urządzeń mobilnych, tym częściej trafiać będziemy na pułapki i ślepe uliczki. Na ratunek przychodzi książka "Android w praktyce". Nie znajdziesz tu jednak żadnych banalnych informacji. Ta książka to bogate źródło wskazówek, sztuczek i najlepszych praktyk z obszaru tworzenia aplikacji na Androida, obejmująca ponad dziewięćdziesiąt pomysłowych i przydatnych technik, dzięki którym staniesz się lepszym programistą.
W trakcie lektury zobaczysz, jak tworzyć precyzyjne (co do piksela) elementy graficzne, zarządzać zadaniami wykonywanymi w tle oraz równoległymi wątkami. Ponadto sprawdzisz, jak współużytkować dane między aplikacjami oraz komunikować się z usługami sieciowymi. To tylko niektóre z tematów poruszonych w tej wyjątkowej książce, poświęconej platformie Android. Przeznaczona zarówno dla początkujących, jak i zaawansowanych użytkowników, pomoże Ci ona zrozumieć, jak budować doskonałe aplikacje, które przez lata będą odnosić sukcesy na platformie Android.
Sięgnij po tę książkę i:
- poznaj najlepsze praktyki tworzenia aplikacji na platformę Android
- wykorzystaj potencjał wielordzeniowych procesorów
- twórz grafikę dwu- i trzywymiarową
- znajdź rozwiązania Twoich problemów
Obowiązkowa pozycja na półce programisty aplikacji mobilnych!
Charlie Collins jest programistą aplikacji mobilnych i sieciowych w firmie MOVL, współtwórcą kilku projektów o otwartym dostępie do kodu źródłowego, a także współautorem książek "GWT in Practice" i "Unlocking Android".
Michael Galpin jest programistą w firmie Bump Technologies, gdzie pracował nad dwiema spośród najbardziej popularnych aplikacji ze sklepu Android Market (Bump i eBay Mobile).
Matthias Käppler jest inżynierem odpowiedzialnym za Androida i interfejsy API w firmie Qype.
Spis treści
Wstęp (11)
Podziękowania (13)
O książce (17)
O ilustracji z okładki (23)
CZĘŚĆ I Tło historyczne i podstawy (25)
1. Wprowadzenie do Androida (27)
- 1.1. Android w pigułce (30)
- 1.2. HelloAndroid (34)
- 1.3. Java, ale nie do końca (45)
- 1.4. Linux, ale nie do końca (51)
- 1.5. Więcej możliwości dzięki bibliotekom natywnym (56)
- 1.6. Potrzebne narzędzia (59)
- 1.7. Podsumowanie (67)
2. Podstawy tworzenia aplikacji na Android (69)
- 2.1. Aplikacja DealDroid (70)
- 2.2. Podstawowe cegiełki (72)
- 2.3. Manifest aplikacji (74)
- 2.4. Zasoby (76)
- 2.5. Układ, widoki i kontrolki (80)
- 2.6. Aktywności (82)
- 2.7. Adaptery (91)
- 2.8. Intencje i filtry intencji (96)
- 2.9. Obiekty klasy Application (103)
- 2.10. Podsumowanie (105)
3. Zarządzanie cyklem życia i stanem (107)
- 3.1. Czym są aplikacje w Androidzie? (108)
- 3.2. Cykl życia aktywności (113)
- 3.3. Kontrolowanie stanu egzemplarza aktywności (125)
- 3.4. Wykonywanie operacji za pomocą zadań (131)
- 3.5. Podsumowanie (133)
CZĘŚĆ II Praktyczne rozwiązania (135)
4. Precyzja co do piksela (137)
- 4.1. Aplikacja MyMovies (138)
- 4.2. Hierarchie widoków i ich wyświetlanie (139)
- 4.3. Porządkowanie widoków w układy (143)
- TECHNIKA 1. Dyrektywy scalania i dołączania (152)
- 4.4. Rozwinięcie informacji o klasach ListView i Adapter (156)
- TECHNIKA 2. Zarządzanie listą z pamięcią stanu (156)
- TECHNIKA 3. Widoki nagłówka i stopki (161)
- 4.5. Stosowanie motywów i stylów (165)
- TECHNIKA 4. Stosowanie i pisanie stylów (165)
- TECHNIKA 5. Stosowanie i pisanie motywów (167)
- TECHNIKA 6. Określanie stylu tła widoku ListView (170)
- 4.6. Korzystanie z obiektów graficznych (174)
- TECHNIKA 7. Używanie obiektów graficznych w postaci kształtów (175)
- TECHNIKA 8. Stosowanie selektorów obiektów graficznych (179)
- TECHNIKA 9. Skalowanie widoków za pomocą dziewięciopolowych obiektów graficznych (182)
- 4.7. Tworzenie przenośnych interfejsów użytkownika (186)
- TECHNIKA 10. Automatyczne dostosowywanie aplikacji do różnych ekranów (186)
- TECHNIKA 11. Wczytywanie zasobów zależnych od konfiguracji (191)
- TECHNIKA 12. Uniezależnienie się od pikseli (194)
- 4.8. Podsumowanie (196)
5. Używanie usług do zarządzania zadaniami wykonywanymi w tle (199)
- 5.1. Wielozadaniowość jest najważniejsza (200)
- 5.2. Do czego służą usługi i jak z nich korzystać? (201)
- TECHNIKA 13. Tworzenie usługi (202)
- TECHNIKA 14. Automatyczne uruchamianie usługi (206)
- TECHNIKA 15. Komunikowanie się z usługą (208)
- TECHNIKA 16. Wykorzystanie usługi do zapisywania danych w pamięci podręcznej (214)
- TECHNIKA 17. Tworzenie powiadomień (217)
- 5.3. Planowanie i usługi (222)
- TECHNIKA 18. Używanie klasy AlarmManager (222)
- TECHNIKA 19. Podtrzymywanie działania usługi (226)
- TECHNIKA 20. Używanie usługi Cloud to Device Messaging (229)
- 5.4. Podsumowanie (234)
6. Wątki i współbieżność (237)
- 6.1. Współbieżność w Androidzie (238)
- TECHNIKA 21. Proste wątki (240)
- TECHNIKA 22. Przekazywanie informacji o zmianach między wątkami (243)
- TECHNIKA 23. Zarządzanie wątkami w puli wątków (249)
- 6.2. Korzystanie z klasy AsyncTask (255)
- TECHNIKA 24. Implementowanie prac za pomocą klasy AsyncTask (256)
- TECHNIKA 25. Przygotowanie do zmian w konfiguracji (261)
- 6.3. Różne techniki (268)
- TECHNIKA 26. Wyświetlanie ekranów powitalnych za pomocą zegarów (268)
- TECHNIKA 27. Implementowanie niestandardowych pętli komunikatów (272)
- 6.4. Podsumowanie (276)
7. Lokalne zapisywanie danych (279)
- 7.1. Odczyt i zapis plików (280)
- TECHNIKA 28. Korzystanie z pamięci wewnętrznej (282)
- TECHNIKA 29. Korzystanie z pamięci zewnętrznej (286)
- TECHNIKA 30. Używanie katalogów na pamięć podręczną (292)
- TECHNIKA 31. Stosowanie synchronizacji przy zapisie plików (293)
- 7.2. Przechowywanie ustawień (294)
- TECHNIKA 32. Odczyt i zapis ustawień (295)
- TECHNIKA 33. Korzystanie z klasy PreferenceActivity (296)
- 7.3. Korzystanie z bazy danych (299)
- TECHNIKA 34. Tworzenie bazy danych i obiektów modelu (303)
- TECHNIKA 35. Tworzenie obiektów DAO i menedżera danych (312)
- 7.4. Badanie baz SQLite (323)
- 7.5. Podsumowanie (325)
8. Współużytkowanie danych między aplikacjami (327)
- 8.1. Współużytkowanie danych między procesami (328)
- TECHNIKA 36. Stosowanie intencji (329)
- TECHNIKA 37. Zdalne wywołania procedur (335)
- TECHNIKA 38. Współużytkowanie danych (i innych elementów) przez współdzielenie kontekstu (341)
- 8.2. Dostęp do niestandardowych danych (347)
- TECHNIKA 39. Korzystanie ze standardowych dostawców treści (347)
- TECHNIKA 40. Korzystanie z niestandardowego dostawcy treści (352)
- 8.3. Podsumowanie (356)
9. Protokół HTTP i usługi sieciowe (357)
- 9.1. Podstawy pracy z siecią z wykorzystaniem protokołu HTTP (358)
- TECHNIKA 41. Protokół HTTP i klasa HttpURLConnection (360)
- TECHNIKA 42. Praca z protokołem HTTP za pomocą klasy HttpClient Apache'a (366)
- TECHNIKA 43. Konfigurowanie obiektu klasy HttpClient bezpiecznego ze względu na wątki (370)
- 9.2. Korzystanie z usług sieciowych generujących dane w formatach XML i JSON (375)
- TECHNIKA 44. Przetwarzanie danych w XML-u za pomocą interfejsu SAX (379)
- TECHNIKA 45. Przetwarzanie dokumentów XML na podstawie specyfikacji XmlPull (385)
- TECHNIKA 46. Przetwarzanie danych w formacie JSON (389)
- 9.3. Elegancka obsługa awarii sieci (393)
- TECHNIKA 47. Ponawianie żądań za pomocą komponentów obsługi (393)
- TECHNIKA 48. Obsługa zmian konfiguracji sieci (397)
- 9.4. Podsumowanie (400)
10. Najważniejsza jest lokalizacja (403)
- 10.1. Krótkie wprowadzenie do współrzędnych geograficznych (404)
- 10.2. Menedżery, dostawcy i odbiorniki położenia (407)
- TECHNIKA 49. Sprawdzanie stanu dostawcy położenia (414)
- TECHNIKA 50. Określanie aktualnego położenia za pomocą odbiornika LocationListener (416)
- 10.3. Tworzenie aplikacji z wykorzystaniem map (422)
- TECHNIKA 51. Przekształcanie adresu na współrzędne geograficzne (425)
- TECHNIKA 52. Tworzenie aktywności MapActivity z powiązanym widokiem MapView (427)
- TECHNIKA 53. Wyświetlanie elementów OverlayItems w widoku MapView (430)
- 10.4. Podsumowanie (433)
11. Uatrakcyjnianie aplikacji za pomocą multimediów (435)
- 11.1. Funkcje zbyt zaawansowane dla telefonu wielofunkcyjnego (436)
- TECHNIKA 54. Wykrywanie możliwości (437)
- 11.2. Zarządzanie multimediami (440)
- TECHNIKA 55. Korzystanie z zasobów i plików (440)
- TECHNIKA 56. Korzystanie z dostawców treści multimedialnych (447)
- TECHNIKA 57. Używanie intencji i aktywności (450)
- 11.3. Odtwarzanie multimediów (453)
- TECHNIKA 58. Zdjęcia i proste animacje (454)
- TECHNIKA 59. Kontrolowanie dźwięku (458)
- TECHNIKA 60. Wyświetlanie filmów (462)
- 11.4. Rejestrowanie multimediów (465)
- TECHNIKA 61. Robienie zdjęć (465)
- TECHNIKA 62. Rejestrowanie dźwięku i filmów (470)
- 11.5. Podsumowanie (475)
12. Grafika dwu- i trójwymiarowa (477)
- 12.1. Rysowanie z wykorzystaniem bibliotek do obsługi grafiki dwuwymiarowej (478)
- TECHNIKA 63. Przechodzenie do trybu pełnoekranowego (480)
- TECHNIKA 64. Rysowanie prostych kształtów (481)
- TECHNIKA 65. Ciągłe wyświetlanie widoku w wątku interfejsu użytkownika (484)
- TECHNIKA 66. Wyświetlanie tekstu na ekranie (485)
- TECHNIKA 67. Określanie czcionki przy wyświetlaniu tekstu (487)
- TECHNIKA 68. Wyświetlanie bitmap (489)
- TECHNIKA 69. Stosowanie efektów dwuwymiarowych (490)
- 12.2. Grafika trójwymiarowa i biblioteka OpenGL ES (493)
- TECHNIKA 70. Rysowanie pierwszego trójkąta (500)
- TECHNIKA 71. Tworzenie piramidy (504)
- TECHNIKA 72. Kolorowanie piramidy (510)
- TECHNIKA 73. Dodawanie tekstury do piramid (513)
- 12.3. Podsumowanie (519)
CZĘŚĆ III Poza standardowe rozwiązania (521)
13. Testowanie i instrumentacja (523)
- 13.1. Testowanie aplikacji na Android (525)
- TECHNIKA 74. Prosty test jednostkowy aplikacji na Android (533)
- 13.2. Pociąganie za sznurki - instrumentacja w Androidzie (538)
- TECHNIKA 75. Testy jednostkowe aktywności (539)
- TECHNIKA 76. Scenariusz użytkownika jako testy funkcjonalne (544)
- TECHNIKA 77. Eleganckie testy z wykorzystaniem frameworku Robotium (549)
- 13.3. Poza instrumentację - atrapy i testy losowe (554)
- TECHNIKA 78. Atrapy i sposoby ich stosowania (554)
- TECHNIKA 79. Przyspieszanie testów jednostkowych z zastosowaniem Robolectrica (561)
- TECHNIKA 80. Przeprowadzanie testów obciążeniowych za pomocą narzędzia Monkey (567)
- 13.4. Podsumowanie (573)
14. Zarządzanie budowaniem (575)
- 14.1. Budowanie aplikacji na Android (577)
- TECHNIKA 81. Budowanie aplikacji za pomocą Anta (583)
- 14.2. Zarządzanie procesem budowania za pomocą Mavena (592)
- TECHNIKA 82. Budowanie za pomocą Mavena (595)
- TECHNIKA 83. Wtyczka Mavena dla środowiska Eclipse (607)
- TECHNIKA 84. Narzędzie maven-android-sdk-deployer (610)
- 14.3. Serwery budowania i ciągłe budowanie (615)
- TECHNIKA 85. Ciągłe budowanie z wykorzystaniem Hudsona (617)
- TECHNIKA 86. Budowanie macierzowe (625)
- 14.4. Podsumowanie (630)
15. Pisanie aplikacji na tablety z Androidem (633)
- 15.1. Przygotowania do tworzenia aplikacji na tablety (635)
- TECHNIKA 87. Wykorzystywanie istniejącego kodu za pomocą projektów bibliotek (635)
- TECHNIKA 88. Tworzenie aplikacji przeznaczonej na tablety (638)
- 15.2. Podstawowe informacje o tabletach (641)
- TECHNIKA 89. Fragmenty (642)
- TECHNIKA 90. Pasek akcji (650)
- TECHNIKA 91. Przeciąganie (655)
- 15.3. Podsumowanie (662)
Dodatek A Narzędzia do debugowania (665)
Dodatek B Niestandardowe techniki tworzenia aplikacji na Android (677)
Dodatek C ProGuard (687)
Dodatek D Monkeyrunner (701)
Skorowidz (713)
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-6611-9 |
Rozmiar pliku: | 11 MB |