Android. Receptury - Helion
Tytuł oryginału: Android Cookbook
Tłumaczenie: Tomasz Walczak
ISBN: 978-83-246-6269-2
stron: 616, Format: 168x237, okładka: mi
Data wydania: 2013-03-28
Księgarnia: Helion
Cena książki: 89,00 zł
Osoby które kupowały "Android. Receptury", wybierały także:
- Kotlin w praktyce. Kurs video. Tworzenie aplikacji webowych za pomocą Spring Boota 79,00 zł, (31,60 zł -60%)
- Platforma Xamarin. Kurs video. Poziom drugi. Zaawansowane techniki tworzenia aplikacji cross-platform 99,00 zł, (39,60 zł -60%)
- Android Studio. Kurs video. Narzędzia Android developera 69,00 zł, (31,05 zł -55%)
- Android. Techniki efektywnej pracy. Kurs video. Poziom pierwszy. Skróty klawiszowe i biblioteki 59,00 zł, (26,55 zł -55%)
- Testowanie aplikacji mobilnych na platformę Android. Kurs video. Poziom pierwszy. Testy jednostkowe i UI 59,00 zł, (26,55 zł -55%)
Spis treści
Android. Receptury -- spis treści
Przedmowa (13)
1. Podstawowe informacje (19)
- 1.1. Wprowadzenie - podstawowe informacje (19)
- 1.2. Nauka Javy (19)
- 1.3. Tworzenie aplikacji "Witaj, świecie" z poziomu wiersza poleceń (21)
- 1.4. Tworzenie aplikacji "Witaj, świecie" w środowisku Eclipse (24)
- 1.5. Konfigurowanie środowiska IDE w systemie Windows pod kątem programowania aplikacji na Android (29)
- 1.6. Cykl życia w Androidzie (35)
- 1.7. Instalowanie plików .apk w emulatorze za pomocą narzędzia ADB (36)
- 1.8. Instalowanie aplikacji w emulatorze za pomocą sklepu SlideME (38)
- 1.9. Współużytkowanie klas Javy z innym projektem środowiska Eclipse (39)
- 1.10. Wskazywanie bibliotek z implementacją funkcji zewnętrznych (41)
- 1.11. Wykorzystanie przykładów z pakietu SDK do ułatwienia sobie pracy (43)
- 1.12. Aktualizowanie pakietu SDK Androida (46)
- 1.13. Wykonywanie zrzutów w emulatorze i urządzeniu z Androidem (52)
- 1.14. Prosty przykładowy program do odliczania wstecznego (55)
- 1.15. Program Tipster - kalkulator napiwków na Android (57)
2. Projektowanie udanych aplikacji (73)
- 2.1. Wprowadzenie - projektowanie udanych aplikacji na Android (73)
- 2.2. Obsługa wyjątków (76)
- 2.3. Obiekt Application w Androidzie jako singleton (79)
- 2.4. Zachowywanie danych po zmianie orientacji ekranu (81)
- 2.5. Monitorowanie poziomu baterii w urządzeniach z Androidem (83)
- 2.6. Tworzenie ekranów powitalnych w Androidzie (84)
- 2.7. Projektowanie aplikacji na potrzeby konferencji, BarCampu, hackathonu lub instytucji (88)
- 2.8. Wykorzystanie narzędzia Google Analytics w aplikacjach na Android (90)
- 2.9. Prosta latarka (92)
- 2.10. Dostosowywanie aplikacji na telefony z Androidem do tabletów (94)
- 2.11. Preferencje obowiązujące przy pierwszym uruchomieniu aplikacji (95)
- 2.12. Formatowanie czasu i daty na potrzeby wyświetlania (97)
- 2.13. Kontrolowanie danych wejściowych za pomocą odbiorników KeyListener (99)
- 2.14. Tworzenie kopii zapasowej danych aplikacji na Android (102)
- 2.15. Stosowanie wskazówek zamiast okien podpowiedzi (108)
3. Testy (111)
- 3.1. Wprowadzenie - testy (111)
- 3.2. Programowanie sterowane testami w Androidzie (111)
- 3.3. Konfigurowanie urządzeń AVD na potrzeby testowania aplikacji (112)
- 3.4. Testowanie aplikacji w wielu urządzeniach za pomocą chmury (121)
- 3.5. Tworzenie i stosowanie projektu testowego (122)
- 3.6. Rozwiązywanie problemów z awariami aplikacji (125)
- 3.7. Debugowanie z wykorzystaniem instrukcji Log.d i okna LogCat (128)
- 3.8. Automatyczne otrzymywanie raportów o błędach od użytkowników za pomocą mechanizmu BugSense (129)
- 3.9. Korzystanie z lokalnego dziennika czasu wykonania do analizowania błędów i innych sytuacji (131)
- 3.10. Odtwarzanie scenariuszy cyklu życia aktywności na potrzeby testów (134)
- 3.11. Rozwijanie płynnie działających aplikacji za pomocą narzędzia StrictMode (139)
- 3.12. Korzystanie z programu Monkey (140)
- 3.13. Wysyłanie komunikatów tekstowych i przekazywanie wywołań między urządzeniami AVD (142)
4. Komunikacja wewnątrz- i międzyprocesowa (145)
- 4.1. Wprowadzenie - komunikacja wewnątrz- i międzyprocesowa (145)
- 4.2. Obsługiwanie strony internetowej, numeru telefonu lub innych elementów za pomocą intencji (146)
- 4.3. Wysyłanie e-maili z poziomu widoku (147)
- 4.4. Wysyłanie e-maili z załącznikami (150)
- 4.5. Przekazywanie łańcuchów znaków za pomocą instrukcji Intent.putExtra() (151)
- 4.6. Pobieranie danych z aktywności podrzędnej do aktywności głównej (152)
- 4.7. Podtrzymywanie działania usługi w trakcie wyświetlania innych aplikacji (155)
- 4.8. Wysyłanie i odbieranie komunikatów rozgłoszeniowych (157)
- 4.9. Uruchamianie usługi po ponownym uruchomieniu urządzenia (158)
- 4.10. Używanie wątków do tworzenia szybko reagujących aplikacji (159)
- 4.11. Korzystanie z klasy AsyncTask do wykonywania operacji w tle (160)
- 4.12. Przesyłanie komunikatów między wątkami za pomocą kolejki wątków aktywności i komponentu obsługi (166)
- 4.13. Tworzenie androidowej wersji kalendarza Epoch (napisanego w HTML-u i JavaScripcie) (168)
5. Dostawcy treści (175)
- 5.1. Wprowadzenie - dostawcy treści (175)
- 5.2. Pobieranie danych z dostawcy treści (175)
- 5.3. Pisanie dostawcy treści (177)
- 5.4. Pisanie zdalnej usługi na Android (179)
6. Grafika (185)
- 6.1. Wprowadzenie - grafika (185)
- 6.2. Stosowanie niestandardowej czcionki (185)
- 6.3. Wyświetlanie obracającego się sześcianu za pomocą specyfikacji OpenGL ES (187)
- 6.4. Sterowanie obracającym się sześcianem (191)
- 6.5. Odręczne rysowanie płynnych linii (194)
- 6.6. Robienie zdjęć za pomocą intencji (198)
- 6.7. Robienie zdjęć za pomocą klasy android.media.Camera (200)
- 6.8. Skanowanie kodu kreskowego lub kodu QR za pomocą programu Google ZXing (204)
- 6.9. Wyświetlanie diagramów i wykresów za pomocą klasy AndroidPlot (207)
- 6.10. Tworzenie ikony do androidowego launchera za pomocą programu Inkscape (208)
- 6.11. Łatwe tworzenie ikon do launchera za pomocą programu Paint.NET i grafik z serwisu OpenClipArt.org (215)
- 6.12. Korzystanie z plików NinePatch (221)
- 6.13. Tworzenie wykresów na strony HTML5 za pomocą biblioteki RGraph (224)
- 6.14. Dodawanie prostej animacji rastrowej (228)
- 6.15. Przybliżanie obrazu za pomocą gestów dotykowych (230)
7. Graficzny interfejs użytkownika (235)
- 7.1. Wprowadzenie - interfejs GUI (235)
- 7.2. Poznawanie i przestrzeganie wytycznych tworzenia interfejsu użytkownika (236)
- 7.3. Obsługa zmian konfiguracji przez oddzielenie widoku od modelu (238)
- 7.4. Tworzenie przycisku i odbiornika kliknięć (241)
- 7.5. Pięć sposobów na dołączanie odbiornika zdarzeń (242)
- 7.6. Stosowanie kontrolek CheckBox i RadioButton (246)
- 7.7. Wzbogacanie projektu interfejsu użytkownika za pomocą przycisków graficznych (249)
- 7.8. Udostępnianie listy rozwijanej z opcjami za pomocą klasy Spinner (251)
- 7.9. Obsługa długiego kliknięcia (253)
- 7.10. Wyświetlanie pól tekstowych TextView i EditText (254)
- 7.11. Ograniczanie wartości pola EditText za pomocą atrybutów oraz interfejsu TextWatcher (255)
- 7.12. Kontrolka AutoCompleteTextView (257)
- 7.13. Zapełnianie kontrolki AutoCompleteTextView za pomocą zapytań do bazy SQLite (259)
- 7.14. Przekształcanie pól tekstowych w pola na hasło (260)
- 7.15. Zmiana klawisza Enter na Next na klawiaturze programowej (261)
- 7.16. Obsługa w aktywności zdarzeń związanych z klawiszami (264)
- 7.17. Pokaż im gwiazdy - kontrolka RatingBar (265)
- 7.18. Drgający widok (268)
- 7.19. Wyświetlanie dotykowych informacji zwrotnych (270)
- 7.20. Przełączanie się między różnymi aktywnościami w widoku TabView (273)
- 7.21. Tworzenie niestandardowego paska tytułu (275)
- 7.22. Formatowanie liczb (277)
- 7.23. Poprawne stosowanie liczby mnogiej (281)
- 7.24. Wyświetlanie drugiego ekranu z poziomu pierwszego (283)
- 7.25. Tworzenie ekranu wczytywania, wyświetlanego przy przełączaniu aktywności (291)
- 7.26. Zakrywanie innych komponentów za pomocą klasy SlidingDrawer (292)
- 7.27. Otwieranie komponentu SlidingDrawer od góry do dołu (295)
- 7.28. Dodawanie do układu obramowania z zaokrąglonymi rogami (296)
- 7.29. Wykrywanie gestów w Androidzie (299)
- 7.30. Tworzenie interfejsu użytkownika w Androidzie 1.6 i nowszych wersjach za pomocą fragmentów z Androida 3.0 (305)
- 7.31. Korzystanie z galerii zdjęć w Androidzie 3.0 (308)
- 7.32. Tworzenie prostego widżetu aplikacji (311)
8. Alerty w interfejsach GUI - menu, okna dialogowe, komunikaty toast i powiadomienia (315)
- 8.1. Wprowadzenie - alerty w interfejsach GUI (315)
- 8.2. Tworzenie i wyświetlanie menu (316)
- 8.3. Obsługa wyboru opcji menu (317)
- 8.4. Tworzenie podmenu (318)
- 8.5. Tworzenie wyskakujących okien dialogowych (okien z alertami) (321)
- 8.6. Kontrolka Timepicker (322)
- 8.7. Tworzenie obrotowego mechanizmu wybierania (podobnego do tego z iPhone'ów) (325)
- 8.8. Tworzenie okna dialogowego z zakładkami (327)
- 8.9. Tworzenie okna ProgressDialog (330)
- 8.10. Tworzenie niestandardowego okna dialogowego z przyciskami, rysunkami i tekstem (331)
- 8.11. Klasa AboutBox do wielokrotnego użytku (333)
- 8.12. Modyfikowanie wyglądu komunikatów toast (336)
- 8.13. Tworzenie powiadomienia wyświetlanego na pasku stanu (337)
9. GUI - kontrolka ListView (343)
- 9.1. Wprowadzenie - kontrolka ListView (343)
- 9.2. Używanie kontrolki ListView do tworzenia aplikacji opartych na listach (343)
- 9.3. Tworzenie widoków "brak danych" dla kontrolek ListView (347)
- 9.4. Tworzenie zaawansowanych kontrolek ListView z rysunkami i tekstem (349)
- 9.5. Stosowanie nagłówków sekcji w kontrolkach ListView (352)
- 9.6. Zachowywanie pozycji w kontrolce ListView (356)
- 9.7. Niestandardowy adapter listy (357)
- 9.8. Obsługa zmian orientacji - od wartości z kontrolki ListView po wykresy w orientacji poziomej (360)
10. Multimedia (367)
- 10.1. Wprowadzenie - multimedia (367)
- 10.2. Odtwarzanie filmów z serwisu YouTube (367)
- 10.3. Używanie obiektu Gallery wraz z kontrolką ImageSwitcher (368)
- 10.4. Rejestrowanie filmów za pomocą klasy MediaRecorder (371)
- 10.5. Jak wykorzystać androidowy mechanizm wykrywania twarzy? (373)
- 10.6. Odtwarzanie muzyki z pliku (376)
- 10.7. Odtwarzanie dźwięku bez interakcji z użytkownikiem (378)
- 10.8. Konwersja mowy na tekst (380)
- 10.9. Konwersja tekstu na mowę (381)
11. Utrwalanie danych (383)
- 11.1. Wprowadzenie - utrwalanie danych (383)
- 11.2. Pobieranie informacji o plikach (383)
- 11.3. Wczytywanie plików z aplikacji, a nie z systemu plików (386)
- 11.4. Wyświetlanie zawartości katalogu (387)
- 11.5. Określanie łącznej ilości pamięci oraz ilości wolnego miejsca na karcie SD (390)
- 11.6. Prosty sposób tworzenia aktywności do ustawiania preferencji użytkownika (390)
- 11.7. Sprawdzanie poprawności ustawień (394)
- 11.8. Zaawansowane wyszukiwanie tekstu (396)
- 11.9. Tworzenie bazy SQLite w aplikacji na Android (401)
- 11.10. Wstawianie danych do bazy SQLite (402)
- 11.11. Wczytywanie wartości z istniejącej bazy SQLite (402)
- 11.12. Praca z datami w bazie SQLite (403)
- 11.13. Przetwarzanie danych w formacie JSON za pomocą klasy JSONObject (406)
- 11.14. Przetwarzanie dokumentów XML za pomocą interfejsu DOM API (407)
- 11.15. Przetwarzanie dokumentów w formacie XML z wykorzystaniem interfejsu XmlPullParser (409)
- 11.16. Dodawanie danych kontaktowych (412)
- 11.17. Wczytywanie danych kontaktowych (415)
12. Aplikacje do obsługi połączeń telefonicznych (417)
- 12.1. Wprowadzenie - aplikacje do obsługi połączeń telefonicznych (417)
- 12.2. Wykonywanie operacji w momencie, gdy dzwoni telefon (418)
- 12.3. Przetwarzanie wychodzących połączeń telefonicznych (421)
- 12.4. Wybieranie numeru telefonu (424)
- 12.5. Wysyłanie jedno- lub wieloczęściowych wiadomości SMS (425)
- 12.6. Odbieranie wiadomości SMS w aplikacjach na Android (428)
- 12.7. Wysyłanie wiadomości SMS do emulatora za pomocą okna Emulator Control (429)
- 12.8. Korzystanie z androidowej klasy TelephonyManager do pobierania informacji o urządzeniu (430)
13. Aplikacje sieciowe (441)
- 13.1. Wprowadzenie - sieć (441)
- 13.2. Stosowanie usług sieciowych typu RESTful (442)
- 13.3. Używanie wyrażeń regularnych do wyodrębniania informacji z nieustrukturyzowanego tekstu (444)
- 13.4. Przetwarzanie danych z kanałów RSS i Atom za pomocą parsera ROME (446)
- 13.5. Korzystanie ze skrótów MD5 do przetwarzania zwykłego tekstu (450)
- 13.6. Przekształcanie tekstu na odnośniki (451)
- 13.7. Dostęp do stron internetowych za pomocą kontrolki WebView (452)
- 13.8. Modyfikowanie wyglądu kontrolki WebView (453)
14. Gry i animacje (455)
- 14.1. Wprowadzenie - gry i animacje (455)
- 14.2. Tworzenie gier na Android za pomocą frameworku flixel-android (456)
- 14.3. Tworzenie gry na Android za pomocą narzędzia AndEngine (Android-Engine) (458)
- 14.4. Przetwarzanie danych wejściowych wprowadzonych w określonym czasie (464)
15. Sieci społecznościowe (467)
- 15.1. Wprowadzenie - sieci społecznościowe (467)
- 15.2. Integrowanie aplikacji z sieciami społecznościowymi za pomocą protokołu HTTP (467)
- 15.3. Wczytywanie chronologicznych list tweetów za pomocą formatu JSON (470)
16. Lokalizacja i mapy (473)
- 16.1. Wprowadzenie - aplikacje wykorzystujące lokalizację (473)
- 16.2. Pobieranie danych o lokalizacji (473)
- 16.3. Dostęp do danych z GPS-a w aplikacjach (475)
- 16.4. Podawanie fikcyjnych współrzędnych GPS w urządzeniu (477)
- 16.5. Geokodowanie i geokodowanie odwrotne (479)
- 16.6. Przygotowania do korzystania z map Google'a (480)
- 16.7. Wyświetlanie aktualnej lokalizacji urządzenia na mapach Google'a (486)
- 16.8. Wyświetlanie znacznika lokalizacji w widoku MapView (487)
- 16.9. Wyświetlanie kilku znaczników w widoku MapView (490)
- 16.10. Tworzenie warstw dla widoku MapView (495)
- 16.11. Zmienianie trybów widoku MapView (496)
- 16.12. Wyświetlanie ikony na warstwie bez korzystania z obiektów Drawable (497)
- 16.13. Implementowanie wyszukiwania lokalizacji na mapach Google'a (501)
- 16.14. Wyświetlanie widoku MapView w kontrolce TabView (503)
- 16.15. Obsługa długich kliknięć w widokach MapView (505)
- 16.16. Korzystanie z map OpenStreetMap (509)
- 16.17. Tworzenie warstw dla map OSM (511)
- 16.18. Stosowanie skali w mapach OSM (513)
- 16.19. Obsługa dotknięć warstwy mapy OSM (514)
- 16.20. Aktualizowanie lokalizacji na mapach OSM (516)
17. Akcelerometr (521)
- 17.1. Wprowadzenie - czujniki (521)
- 17.2. Wykrywanie obecności lub braku czujnika (521)
- 17.3. Wykorzystywanie akcelerometru do wykrywania potrząsania urządzeniem (522)
- 17.4. Używanie akcelerometru do sprawdzania, czy ekran skierowany jest w dół, czy w górę (526)
- 17.5. Określanie ułożenia telefonu z Androidem za pomocą czujnika orientacji (527)
- 17.6. Odczyt wskazań czujnika temperatury (528)
18. Bluetooth (531)
- 18.1. Wprowadzenie - Bluetooth (531)
- 18.2. Włączanie Bluetootha i umożliwianie wykrywania urządzenia (532)
- 18.3. Podłączanie urządzenia z Bluetoothem (533)
- 18.4. Oczekiwanie na żądania połączenia Bluetooth oraz ich akceptowanie (536)
- 18.5. Implementowanie wykrywania urządzeń z Bluetoothem (537)
19. Sterowanie systemem i urządzeniem (539)
- 19.1. Wprowadzenie - sterowanie systemem i urządzeniem (539)
- 19.2. Dostęp do informacji o sieci i połączeniu (539)
- 19.3. Pobieranie informacji z pliku manifestu (540)
- 19.4. Zmienianie trybu dzwonka telefonu na cichy, wibracje lub normalny (541)
- 19.5. Kopiowanie tekstu i pobieranie go ze schowka (542)
- 19.6. Powiadomienia oparte na diodach LED (544)
- 19.7. Włączanie wibracji w urządzeniu (544)
- 19.8. Uruchamianie poleceń powłoki z poziomu aplikacji (545)
- 19.9. Określanie, czy dana aplikacja jest uruchomiona (546)
20. Inne języki programowania i frameworki (549)
- 20.1. Wprowadzenie - inne języki programowania (549)
- 20.2. Uruchamianie zewnętrznych, natywnych instrukcji Uniksa i Linuksa (550)
- 20.3. Uruchamianie kodu natywnego w języku C lub C++ za pomocą interfejsu JNI z pakietu NDK (551)
- 20.4. Wprowadzenie do aplikacji Scripting Layer for Android (SL4A; wcześniej Android Scripting Environment) (556)
- 20.5. Tworzenie alertów za pomocą biblioteki SL4A (558)
- 20.6. Pobieranie dokumentów Google i wyświetlanie ich w kontrolce ListView za pomocą biblioteki SL4A (562)
- 20.7. Używanie kodów QR do rozpowszechniania skryptów SL4A (563)
- 20.8. Używanie JavaScriptu do wykorzystania wbudowanych funkcji telefonu poprzez kontrolkę WebView (566)
- 20.9. Tworzenie aplikacji niezależnych od platformy za pomocą frameworku PhoneGap (568)
21. Łańcuchy znaków i internacjonalizacja (571)
- 21.1. Wprowadzenie - internacjonalizacja (571)
- 21.2. Internacjonalizacja tekstu aplikacji (572)
- 21.3. Wyszukiwanie i tłumaczenie łańcuchów znaków (575)
- 21.4. Niuanse związane z plikami strings.xml (577)
22. Tworzenie pakietów, instalowanie, dystrybucja i sprzedaż aplikacji (583)
- 22.1. Wprowadzenie - tworzenie pakietów, instalowanie i dystrybucja (583)
- 22.2. Tworzenie certyfikatu używanego przy podpisywaniu (583)
- 22.3. Podpisywanie aplikacji (586)
- 22.4. Udostępnianie aplikacji w sklepie Google Play (dawny Android Market) (587)
- 22.5. Integrowanie sieci AdMob z aplikacją (588)
- 22.6. Zaciemnianie i optymalizowanie kodu za pomocą ProGuarda (592)
- 22.7. Odnośniki do aplikacji ze sklepu Google Play (595)
Skorowidz (599)