Wydajne aplikacje dla systemu Android

Book description

Świetny pomysł i piękny wygląd nie sprawią, że użytkownik będzie zadowolony z aplikacji, którą pobrał i zainstalował na urządzeniu mobilnym. Przede wszystkim musi ona działać szybko, posiadać wydajny interfejs, a przy tym oszczędnie korzystać z zasobów urządzenia. Nieefektywne oprogramowanie jest bardzo szybko usuwane. Innymi słowy, aplikacje, które działają szybko i płynnie, są częściej używane i przynoszą większe zyski. Okazuje się jednak, że niewielu programistów stara się skutecznie rozwiązywać problemy wydajnościowe i umie korzystać z przeznaczonych do tego narzędzi.

Książka ta porusza szeroki zakres zagadnień dotyczących wydajności aplikacji w systemie Android, w szczególności badań wydajności dla różnych urządzeń. Zamieszczono tu przydatne informacje dotyczące częstych problemów i sposobów ich rozwiązywania. Na przykładach opisano wpływ kodu aplikacji na urządzenie: na działanie akumulatora, wyświetlacza, procesora, sieci itp. Programiści i testerzy z pewnością docenią przewodniki po różnych narzędziach do testowania aplikacji, opracowane przez Google, Qualcomm, ATT i innych producentów.

Dzięki tej książce:

dowiesz się, dlaczego wysiłek włożony w dopracowanie wydajności aplikacji się opłaci
zapoznasz się z metodami testowania aplikacji na różnych rodzajach urządzeń mobilnych
odkryjesz, jak rozwiązywać problemy ze zbyt szybko wyczerpującym się akumulatorem
nauczysz się optymalizować interfejs użytkownika w celu poprawy wydajności wyświetlacza
poznasz narzędzia, dzięki którym lepiej wykorzystasz pamięć i procesor urządzenia
zobaczysz, jak usprawnić komunikację sieciową, również przy korzystaniu ze starszych technologii
Wydajność aplikacji ma znaczenie!

Table of contents

  1. Przedmowa
  2. Wstęp
    1. Dla kogo jest ta książka?
    2. Dlaczego napisałem tę książkę?
    3. Jak poruszać się po tej książce?
    4. Przykłady kodów
    5. Kolorowe wersje ilustracji
    6. Zastosowane konwencje
    7. Podziękowania
  3. Rozdział 1. Wprowadzenie do wydajności aplikacji w systemie Android
    1. Wydajność aplikacji jest ważna dla jej użytkowników
      1. Handel elektroniczny a wydajność aplikacji
      2. Nie tylko handel elektroniczny
      3. Oszczędności w infrastrukturze
    2. Najgorsze scenariusze wydajnościowe: awarie
      1. Niska wydajność to ciągła awaria
      2. Reakcje użytkowników na problemy wydajnościowe
      3. Papierek lakmusowy: żywotność akumulatora smartfonu
    3. Wykrywanie problemów wydajnościowych aplikacji
      1. Testy syntetyczne
      2. Monitorowanie rzeczywistych wrażeń użytkowników
    4. Podsumowanie
  4. Rozdział 2. Budowanie laboratorium testowego
    1. Jakich urządzeń używają Twoi klienci?
    2. Podział urządzeń według elementów
      1. Wyświetlacz
      2. Wersja pakietu SDK
      3. Procesor, pamięć RAM i pamięć wbudowana
    3. Z jakich sieci korzystają klienci?
    4. Twoje urządzenia nie są takie same jak urządzenia Twoich klientów
    5. Testowanie aplikacji
    6. Tworzenie laboratorium testowego
      1. Potrzebujesz X tysięcy złotych na urządzenia?
      2. Jakie więc urządzenia wybrać?
        1. Urządzenia popularne wczoraj
        2. Urządzenia popularne dzisiaj
        3. Urządzenia popularne jutro
      3. Nie tylko telefony
        1. Android Wear
      4. Urządzenia z systemem Android Open Source Project
        1. Amazon
        2. Inne telefony i tablety z systemem Android
      5. Inne możliwości testów
        1. Zdalny dostęp do urządzeń
        2. Otwarte laboratoria
      6. Dodatkowe informacje
      7. Moje laboratorium
    7. Podsumowanie
  5. Rozdział 3. Wydajność sprzętu a żywotność akumulatora
    1. Układy urządzenia z systemem Android
    2. Mniej znaczy więcej
    3. Co powoduje wyczerpanie akumulatora?
      1. Profil zasilania systemu Android
      2. Wyświetlacz
        1. Wyświetlacz LCD
        2. Wyświetlacz LED
      3. Układy radiowe
      4. Procesor
      5. Inne układy
      6. Czas spać!
      7. Procesy wybudzające i alarmy
        1. Procesy wybudzające urządzenie
        2. Alarmy
      8. Platforma Doze
    4. Podstawowa analiza wykorzystania akumulatora
      1. Informacje o wykorzystaniu akumulatora przez aplikacje
      2. Korelacja informacji o wykorzystaniu akumulatora i przesłanych danych
      3. Stan wstrzymania aplikacji
    5. Zaawansowany monitoring akumulatora
      1. Polecenie batterystats
      2. Narzędzie Battery Historian
        1. Wyszukiwanie za pomocą raportów Battery Historian niepożądanych procesów wybudzających
      3. Narzędzie Battery Historian 2.0
    6. Interfejs JobScheduler
    7. Podsumowanie
  6. Rozdział 4. Wydajność wyświetlacza i interfejsu użytkownika
    1. Wskaźniki wydajnościowe interfejsu użytkownika
      1. Pomijanie ramek
    2. Interfejs użytkownika i szybkość wyświetlania treści
    3. Tworzenie widoków
      1. Narzędzie Hierarchy Viewer
        1. Hierarchy Viewer to nie tylko analiza struktury
    4. Redukcja zasobów
      1. Nakładanie widoków
      2. Wykrywanie nakładania widoków
      3. Nakładanie widoków w narzędziu Hierarchy Viewer
      4. Nakładanie widoków w systemie KitKat
    5. Analiza pomijania ramek
      1. Monitoring wyświetlania ramek w systemie Marshmallow
    6. Nie tylko pomijanie ramek
      1. Narzędzie Systrace
      2. Analiza operacji graficznych za pomocą narzędzia Systrace
      3. Wyniki pomiaru w przypadku przeciążenia procesora
      4. Nowa wersja narzędzia Systrace
      5. Narzędzia diagnostyczne producentów sprzętu
    7. Postrzegana wydajność aplikacji
      1. Symbole oczekiwania — zalety i wady
      2. Animacje maskujące zwłokę w ładowaniu aplikacji
      3. Kłamstewka w dobrej wierze o natychmiastowych zmianach
      4. Porady, jak poprawić postrzeganą wydajność aplikacji
    8. Podsumowanie
  7. Rozdział 5. Wydajność pamięci
    1. Jak działa pamięć w systemie Android?
      1. Pamięć współdzielona i prywatna
      2. Dane czyste i brudne
      3. Porządkowanie pamięci
        1. Ewolucja procesu porządkującego
        2. Kiedy porządkowana jest pamięć?
      4. Sprawdzenie ilości pamięci wykorzystywanej przez aplikację
      5. Polecenie procstats
      6. Ostrzeżenia o stanie pamięci
    2. Zarządzanie pamięcią i jej wycieki w języku Java
    3. Narzędzia do wykrywania wycieków pamięci
      1. Heap Dump
      2. Allocation Tracker
      3. Wywołanie wycieku pamięci
      4. Głębsza analiza, czyli narzędzia MAT i LeakCanary
      5. Eclipse Memory Analyzer Tool
      6. LeakCanary
    4. Podsumowanie
  8. Rozdział 6. Procesor i jego wydajność
    1. Pomiar obciążenia procesora
    2. Narzędzie Systrace do analizy obciążenia procesora
    3. Narzędzie Traceview (Android Device Monitor)
    4. Narzędzie Traceview (Android Studio)
    5. Inne narzędzia profilujące
    6. Podsumowanie
  9. Rozdział 7. Wydajność sieci
    1. Sieć wi-fi i sieć komórkowa
      1. Sieć wi-fi
      2. Sieć komórkowa
      3. Maszyna stanów RCC
        1. Maszyna stanów w sieci 4G (LTE)
        2. Czy Twoja aplikacja współpracuje z maszyną stanów RRC?
    2. Narzędzia testowe
      1. Wireshark
      2. Fiddler
      3. MITMProxy
      4. AT&T Application Resource Optimizer
      5. Aplikacje hybrydowe i serwis WebPageTest.org
    3. Optymalizacja komunikacji sieciowej w systemie Android
      1. Optymalizacja przesyłania plików
        1. Kompresja plików tekstowych (komponenty Gzip)
      2. Minimalizacja plików tekstowych (reguła Soundersa: minimalizuj skrypty w JavaScripcie)
      3. Obrazy
        1. Pliki w rozmiarze XXXL?
        2. Metadane
        3. Kompresja
      4. Umieszczanie plików w pamięci podręcznej
        1. Konfiguracja pamięci podręcznej na urządzeniu
        2. Konfiguracja pamięci podręcznej na serwerze
          1. Nagłówek Cache-Control
          2. Nagłówek ETag
          3. Nagłówek Expires
      5. Nie tylko pliki
      6. Grupowanie połączeń
        1. Regularne nawiązywanie połączenia
      7. Wykrywanie w aplikacji okresów aktywności układu radiowego
        1. GCM Network Manager
      8. Wszystko, co dobre, ma swój koniec, czyli zamykanie połączeń
      9. Regularnie powtarzane operacje
      10. Bezpieczeństwo transmisji danych (protokoły HTTP i HTTPS)
    4. Światowy zasięg sieci komórkowych
      1. Sieci CDN
      2. Testowanie działania aplikacji w wolnych sieciach
      3. Testowanie wolnej sieci bez nadwerężania portfela
        1. Spowolnienie sieci wi-fi
        2. Emulator
        3. Klatka Faradaya domowej roboty
        4. Network Attenuator
      4. Tworzenie aplikacji rozpoznającej sieć
      5. Uwzględnienie opóźnienia pakietów
      6. Opóźnienie ostatniej mili
    5. Inne technologie komunikacji radiowej
      1. GPS
      2. Bluetooth
    6. Podsumowanie
  10. Rozdział 8. Badanie wrażeń użytkowników
    1. Implementacja narzędzi RUM
    2. Analiza RUM przykładowej aplikacji
    3. Awarie
      1. Zawartość raportu Crashlytics
      2. Wykorzystanie aplikacji
      3. Informacje uzyskiwane w czasie rzeczywistym
    4. Ratunek w analizie wielkich ilości danych?
      1. Wydajność pakietów SDK
    5. Podsumowanie
  11. Dodatek A Wydajność aplikacji w firmie
    1. Budowanie świadomości (ukierunkowanie zarządu na wydajność)
    2. Rozmowy o wydajności
    3. Tworzenie aplikacji
    4. Testowanie aplikacji
    5. Wskaźniki wydajnościowe
      1. Weryfikacja wskaźników wydajnościowych
      2. O autorze
      3. Kolofon

Product information

  • Title: Wydajne aplikacje dla systemu Android
  • Author(s): Doug Sillars
  • Release date: December 2016
  • Publisher(s): Helion
  • ISBN: 9781098125240