Szczegóły ebooka

Platforma Android. Nowe wyzwania

Platforma Android. Nowe wyzwania

Erik Hellman

Ebook

Profesjonalne programowanie w systemie Android!

Android to lider wśród systemów operacyjnych dla telefonów i tabletów. Spotkasz go w większości tego typu urządzeń. Ciągły rozwój Androida sprawił, że jego obecne wersje zapewniają niesamowite możliwości, a przy tym są przyjazne dla programistów. Jeżeli poznałeś już ten system i marzysz o stworzeniu bardziej zaawansowanej aplikacji, to trafiłeś na doskonałą książkę. 

W trakcie jej lektury wzbogacisz swoją wiedzę o cenne informacje. Dowiesz się, jak skonfigurować środowisko programistyczne oraz efektywnie wykorzystać język Java do tworzenia aplikacji. Po tym wstępie zaczniesz poznawać bardziej zaawansowane elementy platformy. Nauczysz się korzystać z zasobów, projektować interfejs użytkownika, tworzyć usługi i zadania pracujące w tle oraz odbierać komunikaty i dokonywać zmian w konfiguracji. Ponadto Twoją ciekawość powinny przykuć rozdziały poświęcone testom automatycznym, geolokalizacji oraz bezpieczeństwu tworzonych aplikacji. Na sam koniec został gwóźdź programu — hakowanie platformy Android oraz wykorzystanie ukrytego API. Brzmi intrygująco? I tak właśnie jest!

Tematy poruszane i rozwijane w książce:

  • Optymalizacja składników aplikacji w celu zapewnienia ich jak najpłynniejszego działania
  • Tworzenie własnych widoków
  • Wykorzystanie wszystkich możliwości SDK Androida
  • Obsługa środowiska Android Studio i systemu Gradle
  • Optymalne wykorzystanie możliwości API dźwiękowego, graficznego i wideo
  • Implementacja funkcji czytania tekstu na głos i rozpoznawania mowy
  • Obsługa nowego API lokalizacji Androida
  • Wykorzystanie technologii łączności Androida w celu łączenia urządzeń
  • Przetwarzanie w tle
  • Posługiwanie się API kryptograficznymi Androida
  • Znajdowanie i bezpieczne używanie ukrytych API Androida
  • Przechowywanie danych aplikacji w chmurze dzięki usługom Google Play
  • Dystrybucja i sprzedaż aplikacji w sklepie Google Play

Twoja przepustka do zaawansowanego świata Androida!

O autorze (13)

Wprowadzenie (15)

CZĘŚĆ I: SOLIDNE PODSTAWY (21)

Rozdział 1. Konfigurowanie środowiska programistycznego (23)

  • Systemy operacyjne do programowania Androida (23)
  • Zaawansowane narzędzia SDK Androida (24)
    • Narzędzie adb (24)
    • Testowanie przeciążeniowe interfejsu użytkownika przy użyciu Monkey (27)
    • System kompilacji Gradle (28)
    • Optymalizacja i zaciemnianie za pomocą ProGuard (30)
  • Projekty bibliotek Android i biblioteki zewnętrzne (31)
    • Skompilowane pliki JAR (31)
    • Tworzenie projektu biblioteki (32)
  • Kontrola wersji i zarządzanie kodem źródłowym (33)
  • Środowisko programistyczne (35)
    • Diagnozowanie aplikacji Android (35)
    • Statyczna analiza kodu przy użyciu lint (37)
    • Refaktoryzacja kodu (39)
  • Opcje programistyczne w urządzeniach z Androidem (41)
    • Ustawienia programistyczne (42)
  • Podsumowanie (44)
  • Dodatkowe źródła informacji (44)
    • Książki (44)
    • Strony internetowe (44)

Rozdział 2. Efektywne programowanie w Javie na Androidzie (45)

  • Porównanie Javy Dalvik z Javą SE (45)
  • Optymalizacja kodu Java dla Androida (47)
    • Bezpieczne pod względem typów wyliczenia w Androidzie (48)
    • Udoskonalona pętla for w Androidzie (49)
    • Kolejki, synchronizacja i blokady (50)
  • Zarządzanie pamięcią i alokacją (52)
    • Ograniczanie liczby alokacji obiektów (52)
  • Wielowątkowość w Androidzie (55)
    • Klasa Thread (56)
    • Klasa AsyncTask (57)
    • Klasa Handler (58)
    • Wykonywanie operacji w regularnych odstępach czasu (60)
    • Używanie klasy MainLooper w połączeniu z Handler (61)
  • Jak wybrać najlepsze rozwiązanie (62)
  • Podsumowanie (63)
  • Dodatkowe źródła informacji (63)
    • Dokumentacja (63)
    • Książki (63)
    • Strony internetowe (63)

CZĘŚĆ II: EFEKTYWNE WYKORZYSTANIE SKŁADNIKÓW (65)

Rozdział 3. Składniki, manifesty i zasoby (67)

  • Składniki Androida (67)
    • Składnik Activity (68)
    • Składnik Service (68)
    • Składnik BroadcastReceiver (68)
    • Składnik ContentProvider (69)
    • Składnik Application (69)
    • Architektura aplikacji (71)
  • Manifest aplikacji Android (72)
    • Element manifest (72)
    • Filtry i uprawnienia Google Play (73)
    • Element application (75)
    • Elementy i atrybuty składników (76)
    • Filtrowanie intencji (77)
  • Zasoby i środki (78)
    • Zaawansowane zasoby łańcuchowe (79)
    • Lokalizacja (80)
    • Kwalifikatory zasobów (80)
    • Środki (82)
  • Podsumowanie (83)
  • Dodatkowe źródła informacji (83)
    • Dokumentacja (83)

Rozdział 4. Interakcja z użytkownikiem i projektowanie interfejsów (85)

  • Historyjki użytkowników (85)
    • Użytkownicy i postaci (86)
  • Projektowanie interfejsu użytkownika Androida (87)
    • Nawigacja (87)
    • Prototypowanie interfejsu użytkownika (88)
    • Projektowanie interfejsu użytkownika w Android Studio (88)
  • Elementy interfejsu użytkownika Androida (89)
  • Tekst w aplikacjach na Androida (89)
    • Krój pisma (89)
    • Układ tekstu (90)
  • Wymiary i rozmiary (90)
    • Zalecane wymiary (91)
    • Rozmiary ikon (91)
    • Rozmiar tekstu (92)
    • Kolory (92)
    • Daltonizm (93)
  • Obrazy i ikony (93)
    • Perspektywa kanoniczna (94)
    • Geony (94)
    • Rozpoznawanie twarzy (95)
  • Walory użytkowe (95)
    • Wskazówki wizualne (95)
  • Nagradzanie użytkownika (96)
    • Grywalizacja (96)
  • Podsumowanie (97)
  • Dodatkowe źródła informacji (98)
    • Książki (98)
    • Strony internetowe (98)

Rozdział 5. Interfejs użytkownika dla zaawansowanych (99)

  • Aktywności i fragmenty (99)
  • Używanie wielu ekranów (100)
  • Projektowanie własnych widoków (102)
    • Cykl życia widoku (103)
    • Widżet o wyglądzie klawiatury fortepianowej (103)
  • Wielodotyk (108)
    • Współrzędne wskaźnika (110)
    • Gest obrotu (111)
  • OpenGL ES (112)
    • Grafy sceny i silniki gier (113)
  • Podsumowanie (113)
  • Dodatkowe źródła informacji (114)
    • Książki (114)
    • Strony internetowe (114)

Rozdział 6. Usługi i zadania w tle (115)

  • Jak i kiedy używać usług (115)
    • Typy usług (116)
  • Cykl życia usług (116)
    • Tworzenie i niszczenie usług (116)
    • Uruchamianie usług (117)
    • Wiązanie usług (118)
    • Utrzymywanie się przy życiu (120)
    • Zatrzymywanie usług (121)
  • Działanie w tle (123)
    • Klasa IntentService (123)
    • Równoległe wykonywanie (124)
  • Komunikacja z usługami (126)
    • Asynchroniczne wysyłanie powiadomień przy użyciu intencji (126)
    • Lokalne wiązanie usług (127)
  • Podsumowanie (130)
  • Dodatkowe źródła informacji (131)
    • Blogi (131)

Rozdział 7. Komunikacja międzyprocesowa (133)

  • Binder (134)
    • Adres Bindera (134)
    • Transakcje Bindera (135)
    • Klasa Parcel (136)
    • Łącze ze śmiercią (138)
  • Projektowanie API (138)
    • AIDL (139)
    • Wywołania zwrotne przy użyciu AIDL (142)
    • Klasa Messenger (143)
    • Opakowywanie API w biblioteki (146)
    • Zabezpieczanie zdalnych API (148)
  • Podsumowanie (149)
  • Dodatkowe źródła informacji (149)
    • Strony internetowe (149)

Rozdział 8. Odbieranie komunikatów i zmiany konfiguracji (151)

  • Klasa BroadcastReceiver (152)
    • Lokalne odbiorniki powiadomień (153)
    • Powiadomienia normalne i uporządkowane (154)
    • Powiadomienia kleiste (155)
    • Powiadomienia bezpośrednie (156)
    • Włączanie i wyłączanie odbiorników (156)
    • Intencje rozsyłane przez system (157)
  • Zmienianie konfiguracji urządzenia (160)
  • Podsumowanie (161)
  • Dodatkowe źródła informacji (161)
    • Dokumentacja (161)

Rozdział 9. Przechowywanie i serializacja danych (163)

  • Techniki utrwalania danych w Androidzie (163)
  • Przechowywanie danych w plikach preferencji (164)
  • Opcje użytkownika i ustawienia interfejsu użytkownika (166)
  • Dostawcy treści o wysokiej wydajności (168)
    • Projektowanie bazy danych w Androidzie (168)
    • Tworzenie i aktualizowanie baz danych (169)
    • Implementacja metod zapytaniowych (171)
    • Transakcje bazy danych (172)
    • Zapisywanie danych binarnych w ContentProvider (174)
  • Serializacja danych do utrwalania (175)
    • JSON (175)
    • Zaawansowana obsługa JSON przy użyciu Gson (177)
    • Protocol Buffers Google (179)
  • Robienie kopii zapasowej danych aplikacji (181)
  • Podsumowanie (183)
  • Dodatkowe źródła informacji (183)
    • Dokumentacja (183)
    • Strony internetowe (183)

Rozdział 10. Pisanie automatycznych testów (185)

  • Zasady testowania w Androidzie (185)
    • Co testować (186)
    • Podstawowe testy jednostkowe (187)
    • Testowanie aktywności (188)
    • Testowanie usług (190)
    • Testowanie dostawców treści (191)
    • Wykonywanie testów (193)
  • Ciągła integracja (194)
  • Podsumowanie (195)
  • Dodatkowe źródła informacji (195)
    • Porady dotyczące testowania (195)
    • Książki (195)
    • Strony internetowe (195)

CZĘŚĆ III: PRZEKRACZANIE BARIER (197)

Rozdział 11. Zaawansowane aplikacje obsługujące audio, wideo oraz kamerę (199)

  • Zaawansowane aplikacje dźwiękowe (199)
    • Odtwarzanie dźwięków z krótkim opóźnieniem (200)
    • OpenSL ES dla Androida (202)
    • Czytanie tekstu na głos (205)
    • Rozpoznawanie mowy (207)
  • Przetwarzanie filmów przy użyciu OpenGL ES 2.0 (209)
  • Przetwarzanie obrazu z kamery przy użyciu OpenGL ES 2.0 (212)
  • Kodowanie mediów (213)
    • Nagrywanie sceny OpenGL (214)
  • Podsumowanie (218)
  • Dodatkowe źródła informacji (218)
    • Dokumentacja (218)

Rozdział 12. Bezpieczeństwo aplikacji na Androidzie (219)

  • Pojęcia dotyczące bezpieczeństwa (219)
    • Klucze i podpisy (219)
    • Uprawnienia w Androidzie (220)
    • Ochrona danych użytkownika (221)
    • Weryfikowanie wywołujących aplikacji (222)
  • Szyfrowanie danych u klienta (223)
    • API crypto (223)
    • Generowanie klucza (223)
    • Szyfrowanie danych (223)
    • Deszyfrowanie danych (224)
    • Praca z zaszyfrowanymi danymi (225)
  • Zarządzanie pękami kluczy (226)
  • API zarządzania urządzeniem (229)
  • Podsumowanie (232)
  • Dodatkowe źródła informacji (232)
    • Książki (232)
    • Dokumentacja (232)
    • Strony internetowe (232)

Rozdział 13. Mapy, lokalizacja i API aktywności (233)

  • Scalony menedżer lokalizacji (233)
  • Integracja API map Google (234)
  • Korzystanie z map Google (236)
    • Znaczniki na mapach (237)
    • Rysowanie kółek (238)
    • Rysowanie wielokątów (239)
    • Przydatne narzędzia API lokalizacyjnego (240)
    • Geokodowanie (240)
  • Klasa LocationClient (241)
  • Geofencing (242)
  • Rozpoznawanie aktywności (244)
  • Podsumowanie (246)
  • Dodatkowe źródła informacji (246)
    • Dokumentacja (246)
    • Strony internetowe (246)

Rozdział 14. Kod macierzysty i JNI (247)

  • Kilka uwag o architekturze CPU (247)
  • Pisanie aplikacji na Androida w języku C (248)
    • Skrypty kompilacji NDK (248)
    • Macierzyste aktywności (249)
  • Macierzysty interfejs Javy (250)
    • Wywoływanie funkcji macierzystych w Javie (250)
    • Wywoływanie metod Javy z kodu macierzystego (252)
  • Macierzyste API Androida (255)
    • Biblioteka C (256)
    • Macierzyste funkcje obsługi dziennika (256)
    • OpenGL ES 2.0 w kodzie macierzystym (256)
    • OpenSL ES w kodzie macierzystym (256)
  • Przenoszenie macierzystej biblioteki do Androida (257)
    • Kompilowanie macierzystej biblioteki (257)
  • Podsumowanie (262)
  • Dodatkowe źródła informacji (263)
    • Portal dla programistów Androida (263)
    • Strony internetowe firmy Oracle (263)

Rozdział 15. Ukryte API Androida (265)

  • API ukryte i oficjalne (265)
  • Wyszukiwanie ukrytych API (266)
  • Bezpieczne wywoływanie ukrytych API (267)
    • Wydobywanie ukrytych API z urządzenia (268)
    • Wywoływanie ukrytych API przy użyciu refleksji (270)
  • Przykłady ukrytych API (271)
    • Odbieranie i czytanie SMS-ów (271)
    • Tethering Wi-Fi (272)
    • Ukryte ustawienia (273)
  • Podsumowanie (274)
  • Dodatkowe źródła informacji (274)
    • Strony internetowe (274)

Rozdział 16. Hakowanie platformy Android (275)

  • Odblokowywanie urządzenia (276)
    • Wgrywanie obrazów fabrycznych (277)
    • Odblokowywanie urządzeń innych niż Google Nexus (277)
    • Oprogramowanie układowe od grup programistów (278)
  • Kod źródłowy Androida (278)
    • Konfiguracja środowiska kompilacji (278)
    • Kompilowanie i wgrywanie oprogramowania układowego (279)
  • Pisanie aplikacji systemowych (280)
    • Certyfikaty platformy (281)
    • Podpisywanie aplikacji (282)
  • Hakowanie platformy Android (283)
    • Konfiguracje środowiska programistycznego (283)
    • Projekty Android (284)
    • Jądro Linuksa w Androidzie (285)
    • Dodawanie usługi systemowej (285)
    • Przyspieszanie prac nad platformą (288)
  • Własny wkład w rozwój AOSP (289)
  • Podsumowanie (289)
  • Dodatkowe źródła informacji (291)
    • Strony internetowe (291)

Rozdział 17. Praca w sieci, usługi sieciowe oraz zdalne API (293)

  • Korzystanie z sieci w Androidzie (293)
    • Klasa HttpUrlConnection (294)
    • Volley (297)
    • OkHttp i SPDY (299)
    • Gniazda sieciowe (300)
  • Integracja usług sieciowych (303)
    • Static Maps v2 Google (303)
    • Używanie OAuth2 w API Foursquare (305)
    • SDK Facebooka dla Androida (308)
    • Znajdowanie usług sieciowych i API (312)
  • Korzystanie z sieci a zużycie energii (312)
    • Ogólne wskazówki (313)
    • Energooszczędne odpytywanie sieci (314)
    • Powiadamianie przez serwer (314)
  • Podsumowanie (317)
  • Dodatkowe źródła informacji (317)
    • Dokumentacja (317)
    • Strony internetowe (317)

Rozdział 18. Komunikacja ze zdalnymi urządzeniami (319)

  • Technologie łączności Androida (319)
  • USB w Androidzie (320)
  • Bluetooth LE (322)
  • Wi-Fi w Androidzie (325)
    • Wykrywanie usług sieciowych (325)
    • Wi-Fi Direct (326)
  • Usługi sieciowe na urządzeniach (329)
    • Tworzenie usług typu RESTful przy użyciu Restlet (329)
    • Serwer WebSocket (332)
  • Podsumowanie (334)
  • Dodatkowe źródła informacji (335)
    • Strony internetowe (335)

Rozdział 19. Usługi Google Play (337)

  • Uwierzytelnianie (337)
  • Dane aplikacji z dysku Google (340)
  • Zakończenia Google Cloud (343)
  • Google Cloud Messaging (345)
    • Klient GCM (346)
  • Usługi Google Play dla gier (349)
    • Przesyłanie danych w powiadomieniach (351)
    • Strategia przesyłania wiadomości (352)
  • Podsumowanie (353)
  • Dodatkowe źródła informacji (354)
    • Strony internetowe (354)

Rozdział 20. Dystrybucja aplikacji w sklepie Google Play (355)

  • Pobieranie opłat wewnątrz aplikacji (356)
    • Konsumowanie produktów (358)
    • Subskrypcje wewnątrz aplikacji (358)
  • Reklamy w aplikacjach na Androida (359)
    • Kierowanie reklam (360)
    • Kolory reklam (361)
    • Reklamy pełnoekranowe (361)
  • Licencjonowanie aplikacji (362)
  • Pliki rozszerzeń APK (363)
    • Tworzenie plików rozszerzeń (363)
    • Pobieranie plików rozszerzeń (363)
  • Podsumowanie (365)
  • Dodatkowe źródła informacji (365)
    • Strony internetowe (365)

Skorowidz (367)

  • Tytuł: Platforma Android. Nowe wyzwania
  • Autor: Erik Hellman
  • Tytuł oryginału: Android Programming: Pushing the Limits
  • Tłumaczenie: Łukasz Piwko
  • ISBN: 978-83-246-9526-3, 9788324695263
  • Data wydania: 2014-11-07
  • Format: Ebook
  • Identyfikator pozycji: plandr
  • Wydawca: Helion