O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Android. Receptury

Book Description

Książka, którą trzymasz w rękach, pomoże Ci odnieść sukces. Należy ona do ulubionej serii programistów - "Receptury". Znajdziesz tu najlepsze przepisy na rozwiązanie typowych pr...

Table of Contents

  1. Android. Receptury
  2. Dedykacja
  3. Przedmowa
    1. Przedmowa
      1. O Androidzie
      2. Kto jest autorem tej książki?
      3. Kto jest odbiorcą tej książki?
      4. Co znajdziesz w książce?
    2. Konwencje stosowane w książce
    3. Pobieranie i uruchamianie przykładowego kodu
    4. Podziękowania
  4. 1. Podstawowe informacje
    1. 1.1. Wprowadzenie — podstawowe informacje
      1. Omówienie
    2. 1.2. Nauka Javy
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    3. 1.3. Tworzenie aplikacji „Witaj, świecie” z poziomu wiersza poleceń
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    4. 1.4. Tworzenie aplikacji „Witaj, świecie” w środowisku Eclipse
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    5. 1.5. Konfigurowanie środowiska IDE w systemie Windows pod kątem programowania aplikacji na Android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Instalowanie pakietu JDK (ang. Java Development Kit)
        2. Instalowanie środowiska Eclipse dla programistów Javy
        3. Instalowanie pakietu SDK Androida
        4. Instalowanie wtyczki ADT
      4. Zobacz także
    6. 1.6. Cykl życia w Androidzie
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 1.7. Instalowanie plików .apk w emulatorze za pomocą narzędzia ADB
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 1.8. Instalowanie aplikacji w emulatorze za pomocą sklepu SlideME
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    9. 1.9. Współużytkowanie klas Javy z innym projektem środowiska Eclipse
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    10. 1.10. Wskazywanie bibliotek z implementacją funkcji zewnętrznych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    11. 1.11. Wykorzystanie przykładów z pakietu SDK do ułatwienia sobie pracy
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    12. 1.12. Aktualizowanie pakietu SDK Androida
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Możliwe błędy aktualizacji w systemie Windows
        2. Uruchom SDK Managera jako administrator
        3. Zamknij narzędzie ADB przed rozpoczęciem aktualizowania
        4. SDK Manager nie może się zaktualizować
        5. Aktualizowanie środowiska Eclipse
      4. Zobacz także
    13. 1.13. Wykonywanie zrzutów w emulatorze i urządzeniu z Androidem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    14. 1.14. Prosty przykładowy program do odliczania wstecznego
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    15. 1.15. Program Tipster — kalkulator napiwków na Android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Tworzenie układu i rozmieszczanie kontrolek
        2. Elementy TableLayout i TableRow
        3. Kontrolowanie wartości wejściowych
        4. Analiza pliku Tipster.java
        5. Rozwiązywanie problemów z wygodą korzystania z aplikacji
        6. Przetwarzanie zdarzeń interfejsu użytkownika
        7. Śledzenie znaków wprowadzanych w polach tekstowych
        8. Odbieranie kliknięć przycisków
        9. Resetowanie aplikacji
        10. Sprawdzanie poprawności danych wyjściowych na potrzeby obliczenia napiwku
        11. Wyświetlanie wyników
        12. Wyświetlanie ostrzeżeń
        13. Podsumowanie
  5. 2. Projektowanie udanych aplikacji
    1. 2.1. Wprowadzenie — projektowanie udanych aplikacji na Android
      1. Omówienie
        1. Wymagania związane z tworzeniem natywnych aplikacji na urządzenia przenośne
        2. Projekty aplikacji na Android
          1. Wielkość i gęstość ekranu
          2. Mechanizmy wprowadzania danych
          3. Funkcje urządzenia
          4. Kanały danych i ich formaty
    2. 2.2. Obsługa wyjątków
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Gdzie przechwytywać wyjątki?
        2. Co robić z wyjątkami?
    3. 2.3. Obiekt Application w Androidzie jako singleton
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    4. 2.4. Zachowywanie danych po zmianie orientacji ekranu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Korzystanie z metody onSaveInstanceState()
        2. Korzystanie z metody onRetainNonConfigurationInstance()
      4. Zobacz także
    5. 2.5. Monitorowanie poziomu baterii w urządzeniach z Androidem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 2.6. Tworzenie ekranów powitalnych w Androidzie
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    7. 2.7. Projektowanie aplikacji na potrzeby konferencji, BarCampu, hackathonu lub instytucji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    8. 2.8. Wykorzystanie narzędzia Google Analytics w aplikacjach na Android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    9. 2.9. Prosta latarka
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    10. 2.10. Dostosowywanie aplikacji na telefony z Androidem do tabletów
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Opcjonalne wskazówki
    11. 2.11. Preferencje obowiązujące przy pierwszym uruchomieniu aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    12. 2.12. Formatowanie czasu i daty na potrzeby wyświetlania
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    13. 2.13. Kontrolowanie danych wejściowych za pomocą odbiorników KeyListener
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    14. 2.14. Tworzenie kopii zapasowej danych aplikacji na Android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Testowanie agenta archiwizacji
    15. 2.15. Stosowanie wskazówek zamiast okien podpowiedzi
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  6. 3. Testy
    1. 3.1. Wprowadzenie — testy
      1. Omówienie
    2. 3.2. Programowanie sterowane testami w Androidzie
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    3. 3.3. Konfigurowanie urządzeń AVD na potrzeby testowania aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    4. 3.4. Testowanie aplikacji w wielu urządzeniach za pomocą chmury
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 3.5. Tworzenie i stosowanie projektu testowego
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Krok 1. Tworzenie nowego androidowego projektu testowego w projekcie aplikacji na Android
        2. Krok 2. Konfigurowanie pliku AndroidManifest.xml projektu testowego
        3. Krok 3. Pisanie i uruchamianie testów
      4. Zobacz także
    6. 3.6. Rozwiązywanie problemów z awariami aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    7. 3.7. Debugowanie z wykorzystaniem instrukcji Log.d i okna LogCat
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 3.8. Automatyczne otrzymywanie raportów o błędach od użytkowników za pomocą mechanizmu BugSense
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Dodawanie pliku JAR do projektu
        2. Wywoływanie usługi BugSense przy uruchamianiu aplikacji
        3. Udostępnianie aplikacji i przeglądanie raportów o błędach
      4. Zobacz także
    9. 3.9. Korzystanie z lokalnego dziennika czasu wykonania do analizowania błędów i innych sytuacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    10. 3.10. Odtwarzanie scenariuszy cyklu życia aktywności na potrzeby testów
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    11. 3.11. Rozwijanie płynnie działających aplikacji za pomocą narzędzia StrictMode
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    12. 3.12. Korzystanie z programu Monkey
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    13. 3.13. Wysyłanie komunikatów tekstowych i przekazywanie wywołań między urządzeniami AVD
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
  7. 4. Komunikacja wewnątrz- i międzyprocesowa
    1. 4.1. Wprowadzenie — komunikacja wewnątrz- i międzyprocesowa
      1. Omówienie
    2. 4.2. Obsługiwanie strony internetowej, numeru telefonu lub innych elementów za pomocą intencji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 4.3. Wysyłanie e-maili z poziomu widoku
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 4.4. Wysyłanie e-maili z załącznikami
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 4.5. Przekazywanie łańcuchów znaków za pomocą instrukcji Intent.putExtra()
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    6. 4.6. Pobieranie danych z aktywności podrzędnej do aktywności głównej
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Przypadek użycia (nieformalny)
      4. Zobacz też
    7. 4.7. Podtrzymywanie działania usługi w trakcie wyświetlania innych aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 4.8. Wysyłanie i odbieranie komunikatów rozgłoszeniowych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    9. 4.9. Uruchamianie usługi po ponownym uruchomieniu urządzenia
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    10. 4.10. Używanie wątków do tworzenia szybko reagujących aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    11. 4.11. Korzystanie z klasy AsyncTask do wykonywania operacji w tle
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Wprowadzenie
        2. Pierwszy przypadek użycia — przetwarzanie w tle
        3. Drugi przypadek użycia — przetwarzanie na pierwszym planie
        4. Wniosek
      4. Zobacz też
    12. 4.12. Przesyłanie komunikatów między wątkami za pomocą kolejki wątków aktywności i komponentu obsługi
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    13. 4.13. Tworzenie androidowej wersji kalendarza Epoch (napisanego w HTML-u i JavaScripcie)
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  8. 5. Dostawcy treści
    1. 5.1. Wprowadzenie — dostawcy treści
      1. Omówienie
    2. 5.2. Pobieranie danych z dostawcy treści
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 5.3. Pisanie dostawcy treści
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 5.4. Pisanie zdalnej usługi na Android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  9. 6. Grafika
    1. 6.1. Wprowadzenie — grafika
      1. Omówienie
    2. 6.2. Stosowanie niestandardowej czcionki
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 6.3. Wyświetlanie obracającego się sześcianu za pomocą specyfikacji OpenGL ES
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    4. 6.4. Sterowanie obracającym się sześcianem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    5. 6.5. Odręczne rysowanie płynnych linii
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    6. 6.6. Robienie zdjęć za pomocą intencji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    7. 6.7. Robienie zdjęć za pomocą klasy android.media.Camera
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    8. 6.8. Skanowanie kodu kreskowego lub kodu QR za pomocą programu Google ZXing
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    9. 6.9. Wyświetlanie diagramów i wykresów za pomocą klasy AndroidPlot
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    10. 6.10. Tworzenie ikony do androidowego launchera za pomocą programu Inkscape
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    11. 6.11. Łatwe tworzenie ikon do launchera za pomocą programu Paint.NET i grafik z serwisu OpenClipArt.org
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    12. 6.12. Korzystanie z plików NinePatch
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    13. 6.13. Tworzenie wykresów na strony HTML5 za pomocą biblioteki RGraph
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    14. 6.14. Dodawanie prostej animacji rastrowej
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    15. 6.15. Przybliżanie obrazu za pomocą gestów dotykowych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  10. 7. Graficzny interfejs użytkownika
    1. 7.1. Wprowadzenie — interfejs GUI
      1. Omówienie
    2. 7.2. Poznawanie i przestrzeganie wytycznych tworzenia interfejsu użytkownika
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 7.3. Obsługa zmian konfiguracji przez oddzielenie widoku od modelu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 7.4. Tworzenie przycisku i odbiornika kliknięć
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 7.5. Pięć sposobów na dołączanie odbiornika zdarzeń
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Metoda 1. Klasa wewnętrzna
        2. Metoda 2. Interfejs jako typ
        3. Metoda 3. Anonimowa klasa wewnętrzna
        4. Metoda 4. Implementacja aktywności
        5. Metoda 5. Atrybut zdarzenia onClick w układzie widoku
    6. 7.6. Stosowanie kontrolek CheckBox i RadioButton
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 7.7. Wzbogacanie projektu interfejsu użytkownika za pomocą przycisków graficznych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 7.8. Udostępnianie listy rozwijanej z opcjami za pomocą klasy Spinner
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    9. 7.9. Obsługa długiego kliknięcia
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    10. 7.10. Wyświetlanie pól tekstowych TextView i EditText
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    11. 7.11. Ograniczanie wartości pola EditText za pomocą atrybutów oraz interfejsu TextWatcher
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    12. 7.12. Kontrolka AutoCompleteTextView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    13. 7.13. Zapełnianie kontrolki AutoCompleteTextView za pomocą zapytań do bazy SQLite
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    14. 7.14. Przekształcanie pól tekstowych w pola na hasło
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    15. 7.15. Zmiana klawisza Enter na Next na klawiaturze programowej
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    16. 7.16. Obsługa w aktywności zdarzeń związanych z klawiszami
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    17. 7.17. Pokaż im gwiazdy — kontrolka RatingBar
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz też
    18. 7.18. Drgający widok
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    19. 7.19. Wyświetlanie dotykowych informacji zwrotnych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Niestandardowe fizyczne informacje zwrotne oparte na wibracjach
        2. Gotowe zdarzenia generujące dotykowe informacje zwrotne
      4. Zobacz także
    20. 7.20. Przełączanie się między różnymi aktywnościami w widoku TabView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    21. 7.21. Tworzenie niestandardowego paska tytułu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    22. 7.22. Formatowanie liczb
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Ogólne metody formatujące
      4. Zobacz także
    23. 7.23. Poprawne stosowanie liczby mnogiej
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Lepsze podejście
        1. Najlepsze rozwiązanie (możliwe tylko w Androidzie)
      5. Zobacz także
    24. 7.24. Wyświetlanie drugiego ekranu z poziomu pierwszego
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    25. 7.25. Tworzenie ekranu wczytywania, wyświetlanego przy przełączaniu aktywności
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    26. 7.26. Zakrywanie innych komponentów za pomocą klasy SlidingDrawer
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    27. 7.27. Otwieranie komponentu SlidingDrawer od góry do dołu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    28. 7.28. Dodawanie do układu obramowania z zaokrąglonymi rogami
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    29. 7.29. Wykrywanie gestów w Androidzie
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    30. 7.30. Tworzenie interfejsu użytkownika w Androidzie 1.6 i nowszych wersjach za pomocą fragmentów z Androida 3.0
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    31. 7.31. Korzystanie z galerii zdjęć w Androidzie 3.0
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    32. 7.32. Tworzenie prostego widżetu aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  11. 8. Alerty w interfejsach GUI — menu, okna dialogowe, komunikaty toast i powiadomienia
    1. 8.1. Wprowadzenie — alerty w interfejsach GUI
      1. Omówienie
    2. 8.2. Tworzenie i wyświetlanie menu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 8.3. Obsługa wyboru opcji menu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 8.4. Tworzenie podmenu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 8.5. Tworzenie wyskakujących okien dialogowych (okien z alertami)
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 8.6. Kontrolka Timepicker
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 8.7. Tworzenie obrotowego mechanizmu wybierania (podobnego do tego z iPhone’ów)
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 8.8. Tworzenie okna dialogowego z zakładkami
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    9. 8.9. Tworzenie okna ProgressDialog
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    10. 8.10. Tworzenie niestandardowego okna dialogowego z przyciskami, rysunkami i tekstem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    11. 8.11. Klasa AboutBox do wielokrotnego użytku
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    12. 8.12. Modyfikowanie wyglądu komunikatów toast
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    13. 8.13. Tworzenie powiadomienia wyświetlanego na pasku stanu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Dźwięki i inne irytujące efekty
        2. Włączanie diod LED
      4. Zobacz także
  12. 9. GUI — kontrolka ListView
    1. 9.1. Wprowadzenie — kontrolka ListView
      1. Omówienie
    2. 9.2. Używanie kontrolki ListView do tworzenia aplikacji opartych na listach
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Konfigurowanie prostej kontrolki ListView
    3. 9.3. Tworzenie widoków „brak danych” dla kontrolek ListView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 9.4. Tworzenie zaawansowanych kontrolek ListView z rysunkami i tekstem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 9.5. Stosowanie nagłówków sekcji w kontrolkach ListView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    6. 9.6. Zachowywanie pozycji w kontrolce ListView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 9.7. Niestandardowy adapter listy
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 9.8. Obsługa zmian orientacji — od wartości z kontrolki ListView po wykresy w orientacji poziomej
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  13. 10. Multimedia
    1. 10.1. Wprowadzenie — multimedia
      1. Omówienie
    2. 10.2. Odtwarzanie filmów z serwisu YouTube
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 10.3. Używanie obiektu Gallery wraz z kontrolką ImageSwitcher
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 10.4. Rejestrowanie filmów za pomocą klasy MediaRecorder
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 10.5. Jak wykorzystać androidowy mechanizm wykrywania twarzy?
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 10.6. Odtwarzanie muzyki z pliku
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 10.7. Odtwarzanie dźwięku bez interakcji z użytkownikiem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    8. 10.8. Konwersja mowy na tekst
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    9. 10.9. Konwersja tekstu na mowę
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  14. 11. Utrwalanie danych
    1. 11.1. Wprowadzenie — utrwalanie danych
      1. Omówienie
    2. 11.2. Pobieranie informacji o plikach
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 11.3. Wczytywanie plików z aplikacji, a nie z systemu plików
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 11.4. Wyświetlanie zawartości katalogu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    5. 11.5. Określanie łącznej ilości pamięci oraz ilości wolnego miejsca na karcie SD
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 11.6. Prosty sposób tworzenia aktywności do ustawiania preferencji użytkownika
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 11.7. Sprawdzanie poprawności ustawień
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 11.8. Zaawansowane wyszukiwanie tekstu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    9. 11.9. Tworzenie bazy SQLite w aplikacji na Android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    10. 11.10. Wstawianie danych do bazy SQLite
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    11. 11.11. Wczytywanie wartości z istniejącej bazy SQLite
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    12. 11.12. Praca z datami w bazie SQLite
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Wprowadzenie
        2. Zalety
        3. Kod
      4. Zobacz także
    13. 11.13. Przetwarzanie danych w formacie JSON za pomocą klasy JSONObject
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    14. 11.14. Przetwarzanie dokumentów XML za pomocą interfejsu DOM API
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    15. 11.15. Przetwarzanie dokumentów w formacie XML z wykorzystaniem interfejsu XmlPullParser
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Przetwarzanie danych w formacie XML za pomocą interfejsu XmlPullParser
        2. Wersja ze sprawdzaniem poprawności
        3. Przetwarzanie statycznych zasobów XML-owych
        4. Podsumowanie
      4. Zobacz także
    16. 11.16. Dodawanie danych kontaktowych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    17. 11.17. Wczytywanie danych kontaktowych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  15. 12. Aplikacje do obsługi połączeń telefonicznych
    1. 12.1. Wprowadzenie — aplikacje do obsługi połączeń telefonicznych
      1. Omówienie
    2. 12.2. Wykonywanie operacji w momencie, gdy dzwoni telefon
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Co się dzieje, jeśli dwa odbiorniki rejestrują zmiany stanu telefonu?
        2. Końcowe uwagi
      4. Zobacz także
    3. 12.3. Przetwarzanie wychodzących połączeń telefonicznych
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Co się dzieje, jeśli połączenia wychodzące są przetwarzane przez dwa odbiorniki?
      4. Zobacz także
    4. 12.4. Wybieranie numeru telefonu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 12.5. Wysyłanie jedno- lub wieloczęściowych wiadomości SMS
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    6. 12.6. Odbieranie wiadomości SMS w aplikacjach na Android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 12.7. Wysyłanie wiadomości SMS do emulatora za pomocą okna Emulator Control
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 12.8. Korzystanie z androidowej klasy TelephonyManager do pobierania informacji o urządzeniu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  16. 13. Aplikacje sieciowe
    1. 13.1. Wprowadzenie — sieć
      1. Omówienie
        1. Wybór właściwego protokołu
    2. 13.2. Stosowanie usług sieciowych typu RESTful
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Stosowanie klas URL i URLConnection
        2. Korzystanie z biblioteki HttpClient
        3. Zwracane dane
      4. Zobacz także
    3. 13.3. Używanie wyrażeń regularnych do wyodrębniania informacji z nieustrukturyzowanego tekstu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    4. 13.4. Przetwarzanie danych z kanałów RSS i Atom za pomocą parsera ROME
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 13.5. Korzystanie ze skrótów MD5 do przetwarzania zwykłego tekstu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 13.6. Przekształcanie tekstu na odnośniki
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 13.7. Dostęp do stron internetowych za pomocą kontrolki WebView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 13.8. Modyfikowanie wyglądu kontrolki WebView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  17. 14. Gry i animacje
    1. 14.1. Wprowadzenie — gry i animacje
      1. Omówienie
    2. 14.2. Tworzenie gier na Android za pomocą frameworku flixel-android
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 14.3. Tworzenie gry na Android za pomocą narzędzia AndEngine (Android-Engine)
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 14.4. Przetwarzanie danych wejściowych wprowadzonych w określonym czasie
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  18. 15. Sieci społecznościowe
    1. 15.1. Wprowadzenie — sieci społecznościowe
      1. Omówienie
    2. 15.2. Integrowanie aplikacji z sieciami społecznościowymi za pomocą protokołu HTTP
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Krok 1. Pobieranie logo
        2. Krok 2. Tworzenie przycisków graficznych z logo
        3. Krok 3. Obsługa kliknięcia
    3. 15.3. Wczytywanie chronologicznych list tweetów za pomocą formatu JSON
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  19. 16. Lokalizacja i mapy
    1. 16.1. Wprowadzenie — aplikacje wykorzystujące lokalizację
      1. Omówienie
    2. 16.2. Pobieranie danych o lokalizacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 16.3. Dostęp do danych z GPS-a w aplikacjach
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 16.4. Podawanie fikcyjnych współrzędnych GPS w urządzeniu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Tworzenie metody setMockLocation
          1. Co dzieje się w kodzie?
        2. Korzystanie z metody setMockLocation
        3. Jak korzystać z przykładowej aplikacji?
      4. Zobacz także
    5. 16.5. Geokodowanie i geokodowanie odwrotne
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 16.6. Przygotowania do korzystania z map Google’a
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Konfigurowanie urządzenia AVD korzystającego z bibliotek pakietu SDK z Google API
        2. Tworzenie nowego projektu z docelowym pakietem Google APIs – 1.5 – API level 3
        3. Dodawanie elementu MapView do pliku układu
        4. Rejestrowanie klucza Google Maps API
        5. W pliku AndroidManifest.xml wprowadź następujące zmiany (gotowy plik pokazano na Przykład 16-10)
        6. Lista kontrolna
      4. Zobacz także
    7. 16.7. Wyświetlanie aktualnej lokalizacji urządzenia na mapach Google’a
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 16.8. Wyświetlanie znacznika lokalizacji w widoku MapView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    9. 16.9. Wyświetlanie kilku znaczników w widoku MapView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Wprowadzenie
        2. Dodawanie obiektu ItemizedOverlay do widoku MapView
        3. Używanie klasy MyItemizedOverlay w metodzie onCreate
          1. Dodatkowe ćwiczenie — wyświetlanie znacznika zastępczego
          2. Wykonywanie operacji w reakcji na kliknięcie znacznika
      4. Zobacz także
    10. 16.10. Tworzenie warstw dla widoku MapView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    11. 16.11. Zmienianie trybów widoku MapView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    12. 16.12. Wyświetlanie ikony na warstwie bez korzystania z obiektów Drawable
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Wprowadzenie
        2. Przesłanianie metody ItemizedOverlay::draw()
        3. Omówienie klasy MetarItem
        4. Omówienie metody MetarItem::draw()
        5. Uwagi końcowe
      4. Zobacz także
    13. 16.13. Implementowanie wyszukiwania lokalizacji na mapach Google’a
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    14. 16.14. Wyświetlanie widoku MapView w kontrolce TabView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    15. 16.15. Obsługa długich kliknięć w widokach MapView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    16. 16.16. Korzystanie z map OpenStreetMap
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    17. 16.17. Tworzenie warstw dla map OSM
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    18. 16.18. Stosowanie skali w mapach OSM
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    19. 16.19. Obsługa dotknięć warstwy mapy OSM
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    20. 16.20. Aktualizowanie lokalizacji na mapach OSM
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  20. 17. Akcelerometr
    1. 17.1. Wprowadzenie — czujniki
      1. Omówienie
    2. 17.2. Wykrywanie obecności lub braku czujnika
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 17.3. Wykorzystywanie akcelerometru do wykrywania potrząsania urządzeniem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 17.4. Używanie akcelerometru do sprawdzania, czy ekran skierowany jest w dół, czy w górę
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 17.5. Określanie ułożenia telefonu z Androidem za pomocą czujnika orientacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 17.6. Odczyt wskazań czujnika temperatury
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
  21. 18. Bluetooth
    1. 18.1. Wprowadzenie — Bluetooth
      1. Omówienie
    2. 18.2. Włączanie Bluetootha i umożliwianie wykrywania urządzenia
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 18.3. Podłączanie urządzenia z Bluetoothem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
    4. 18.4. Oczekiwanie na żądania połączenia Bluetooth oraz ich akceptowanie
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 18.5. Implementowanie wykrywania urządzeń z Bluetoothem
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  22. 19. Sterowanie systemem i urządzeniem
    1. 19.1. Wprowadzenie — sterowanie systemem i urządzeniem
      1. Omówienie
    2. 19.2. Dostęp do informacji o sieci i połączeniu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 19.3. Pobieranie informacji z pliku manifestu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 19.4. Zmienianie trybu dzwonka telefonu na cichy, wibracje lub normalny
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    5. 19.5. Kopiowanie tekstu i pobieranie go ze schowka
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 19.6. Powiadomienia oparte na diodach LED
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 19.7. Włączanie wibracji w urządzeniu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 19.8. Uruchamianie poleceń powłoki z poziomu aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    9. 19.9. Określanie, czy dana aplikacja jest uruchomiona
      1. Problem
      2. Rozwiązanie
      3. Omówienie
  23. 20. Inne języki programowania i frameworki
    1. 20.1. Wprowadzenie — inne języki programowania
      1. Omówienie
    2. 20.2. Uruchamianie zewnętrznych, natywnych instrukcji Uniksa i Linuksa
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    3. 20.3. Uruchamianie kodu natywnego w języku C lub C++ za pomocą interfejsu JNI z pakietu NDK
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Wywoływanie kodu natywnego w Javie — podstawowe kroki zalecane przez Iana:
      4. Zobacz także
    4. 20.4. Wprowadzenie do aplikacji Scripting Layer for Android (SL4A; wcześniej Android Scripting Environment)
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Wybieranie języka (tu jest to Python)
        2. Edycja kodu źródłowego
      4. Zobacz także
    5. 20.5. Tworzenie alertów za pomocą biblioteki SL4A
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    6. 20.6. Pobieranie dokumentów Google i wyświetlanie ich w kontrolce ListView za pomocą biblioteki SL4A
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    7. 20.7. Używanie kodów QR do rozpowszechniania skryptów SL4A
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    8. 20.8. Używanie JavaScriptu do wykorzystania wbudowanych funkcji telefonu poprzez kontrolkę WebView
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    9. 20.9. Tworzenie aplikacji niezależnych od platformy za pomocą frameworku PhoneGap
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
  24. 21. Łańcuchy znaków i internacjonalizacja
    1. 21.1. Wprowadzenie — internacjonalizacja
      1. Omówienie
        1. Internacjonalizacja — podstawowe kroki proponowane przez Iana
      2. Zobacz także
    2. 21.2. Internacjonalizacja tekstu aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Czy to naprawdę jest aż tak proste?
        2. Wersje regionalne
      4. Zobacz także
    3. 21.3. Wyszukiwanie i tłumaczenie łańcuchów znaków
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 21.4. Niuanse związane z plikami strings.xml
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
  25. 22. Tworzenie pakietów, instalowanie, dystrybucja i sprzedaż aplikacji
    1. 22.1. Wprowadzenie — tworzenie pakietów, instalowanie i dystrybucja
      1. Omówienie
    2. 22.2. Tworzenie certyfikatu używanego przy podpisywaniu
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Generowanie pary kluczy (publicznego i prywatnego) oraz certyfikatu
      4. Zobacz także
    3. 22.3. Podpisywanie aplikacji
      1. Problem
      2. Rozwiązanie
      3. Omówienie
    4. 22.4. Udostępnianie aplikacji w sklepie Google Play (dawny Android Market)
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Rejestrowanie się jako programista aplikacji na Android
        2. Przesyłanie aplikacji
        3. Co dalej?
    5. 22.5. Integrowanie sieci AdMob z aplikacją
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Krok 1
        2. Krok 2
        3. Krok 3
        4. Krok 4
        5. Krok 5
        6. Krok 6
      4. Zobacz także
    6. 22.6. Zaciemnianie i optymalizowanie kodu za pomocą ProGuarda
      1. Problem
      2. Rozwiązanie
      3. Omówienie
        1. Plik konfiguracyjny
      4. Zobacz także
    7. 22.7. Odnośniki do aplikacji ze sklepu Google Play
      1. Problem
      2. Rozwiązanie
      3. Omówienie
      4. Zobacz także
  26. A. O autorze
  27. Indeks
  28. Kolofon
  29. Copyright