[ Pobierz całość w formacie PDF ]
Spis treci
O autorze.......................................................................................................9
Redaktorzy techniczni .................................................................................11
Podzikowania ...........................................................................................13
Wprowadzenie ...........................................................................................15
Rozdzia 1
Optymalizowanie kodu w Javie ..................................................................17
W jaki sposób Android wykonuje kod? ............................................................................. 18
Optymalizowanie obliczania ciągu Fibonacciego ............................................................. 20
Od rekurencji do iteracji ................................................................................................ 20
Typ BigInteger .................................................................................................................21
Zapisywanie wyników w pamięci podręcznej ................................................................... 25
Klasa android.util.LruCache<K, V> ............................................................................ 27
Wersje interfejsu API ............................................................................................................ 28
Fragmentacja rynku ........................................................................................................ 30
Struktury danych ................................................................................................................... 30
Reagowanie ............................................................................................................................. 33
Leniwe inicjowanie ......................................................................................................... 35
Klasa StrictMode ............................................................................................................. 35
SQLite ...................................................................................................................................... 37
Instrukcje bazy SQLite ................................................................................................... 37
Transakcje ........................................................................................................................ 40
Zapytania .......................................................................................................................... 41
Podsumowanie ....................................................................................................................... 42
SPIS TRECI
Rozdzia 2
Wprowadzenie do pakietu NDK ..................................................................43
Co znajduje się w pakiecie NDK? ........................................................................................ 44
Łączenie Javy oraz C i C++ ................................................................................................... 46
Deklarowanie metody natywnej ................................................................................... 47
Implementowanie warstwy łączącej JNI ..................................................................... 47
Tworzenie plików makefile ........................................................................................... 49
Implementowanie funkcji natywnej ............................................................................ 50
Kompilowanie biblioteki natywnej .............................................................................. 52
Wczytywanie biblioteki natywnej ................................................................................ 52
Plik Application.mk ............................................................................................................... 53
Optymalizowanie pod kątem (prawie) wszystkich urządzeń ................................... 54
Obsługa wszystkich urządzeń ....................................................................................... 56
Plik Android.mk .................................................................................................................... 58
Usprawnianie wydajności za pomocą kodu w językach C lub C++ ............................... 60
Więcej o JNI ..................................................................................................................... 64
Klasa NativeActivity .............................................................................................................. 68
Budowanie brakującej biblioteki .................................................................................. 70
Inne podejście .................................................................................................................. 76
Podsumowanie ....................................................................................................................... 77
Rozdzia 3
Zaawansowane mechanizmy pakietu NDK .................................................79
Asembler ................................................................................................................................. 79
Największy wspólny dzielnik ........................................................................................ 80
Przekształcanie zapisu kolorów .................................................................................... 84
Równoległe obliczanie średniej ..................................................................................... 88
Instrukcje architektury ARM ........................................................................................ 91
Rozszerzenie NEON ....................................................................................................... 98
Mechanizmy procesora .................................................................................................. 98
Rozszerzenia języka C ......................................................................................................... 100
Funkcje wbudowane ..................................................................................................... 100
Instrukcje dla wektorów .............................................................................................. 101
Wskazówki ............................................................................................................................ 105
Rozwijanie funkcji ........................................................................................................ 105
Rozwijanie pętli ............................................................................................................. 105
Wstępne wczytywanie do pamięci ............................................................................. 106
Stosowanie instrukcji LDM i STM zamiast LDR i STD .......................................... 107
Podsumowanie ..................................................................................................................... 107
Rozdzia 4
Wydajne korzystanie z pamici ................................................................109
Krótko o pamięci ................................................................................................................. 109
Typy danych ......................................................................................................................... 110
Porównywanie wartości ............................................................................................... 112
Inne algorytmy .............................................................................................................. 114
Sortowanie tablic ........................................................................................................... 115
Tworzenie własnych klas ............................................................................................. 116
4
SPIS TRECI
Dostęp do pamięci ............................................................................................................... 117
Długość wiersza w pamięci podręcznej ..................................................................... 118
Określanie struktury danych .............................................................................................. 118
Przywracanie pamięci ......................................................................................................... 123
Wyciekanie pamięci ..................................................................................................... 123
Referencje ....................................................................................................................... 124
Interfejsy API ....................................................................................................................... 128
Mała ilość pamięci ............................................................................................................... 128
Podsumowanie ..................................................................................................................... 129
Rozdzia 5
Wielowtkowo i synchronizacja ............................................................131
Wątki ..................................................................................................................................... 132
Klasa AsyncTask .................................................................................................................. 134
Klasy Handler i Looper ....................................................................................................... 137
Obiekty Handler ........................................................................................................... 137
Obiekty Looper ............................................................................................................. 139
Typy danych ......................................................................................................................... 139
Model pamięci a słowa kluczowe synchronized i volatile ...................................... 140
Współbieżność ..................................................................................................................... 143
Architektury wielordzeniowe ............................................................................................ 144
Modyfikowanie algorytmu pod kątem architektury wielordzeniowej ........................ 145
Stosowanie współbieżnej pamięci podręcznej .......................................................... 148
Cykl życia aktywności ......................................................................................................... 150
Przekazywanie informacji ............................................................................................ 151
Zapamiętywanie stanu ................................................................................................. 153
Podsumowanie ..................................................................................................................... 156
Rozdzia 6
Testy szybkoci i profilowanie ..................................................................157
Pomiar czasu ......................................................................................................................... 157
System.nanoTime() ...................................................................................................... 158
Debug.threadCpuTimeNanos() ................................................................................. 159
Śledzenie ................................................................................................................................ 160
Debug.startMethodTracing() ...................................................................................... 160
Korzystanie z narzędzia Traceview ............................................................................ 161
Narzędzie Traceview w perspektywie DDMS .......................................................... 163
Śledzenie kodu natywnego .......................................................................................... 164
Rejestrowanie komunikatów .............................................................................................. 166
Podsumowanie ..................................................................................................................... 168
Rozdzia 7
Maksymalizowanie czasu pracy na baterii ................................................ 169
Baterie .................................................................................................................................... 169
Pomiar zużycia baterii .................................................................................................. 171
Wyłączanie odbiorników rozgłoszeniowych ................................................................... 174
Wyłączanie i włączanie odbiornika rozgłoszeniowego ........................................... 176
Sieć ......................................................................................................................................... 178
Pobieranie danych w tle ............................................................................................... 178
Transfer danych ............................................................................................................ 179
5
SPIS TRECI
Lokalizacja ............................................................................................................................. 181
Wyrejestrowywanie odbiornika .................................................................................. 182
Częstotliwość aktualizacji ............................................................................................ 183
Wielu dostawców .......................................................................................................... 184
Filtrowanie dostawców ................................................................................................ 185
Ostatnia znana lokalizacja ........................................................................................... 187
Czujniki ................................................................................................................................. 188
Grafika ................................................................................................................................... 189
Alarmy ................................................................................................................................... 190
Planowanie zgłaszania alarmów ................................................................................. 191
Blokady WakeLock .............................................................................................................. 192
Zapobieganie problemom ........................................................................................... 193
Podsumowanie ..................................................................................................................... 194
Rozdzia 8
Grafika ......................................................................................................195
Optymalizowanie układów ................................................................................................. 195
Układ RelativeLayout ................................................................................................... 197
Scalanie układów ........................................................................................................... 200
Ponowne wykorzystanie układów .............................................................................. 201
Namiastki widoków ...................................................................................................... 203
Narzędzia wspomagające tworzenie układów ................................................................. 204
Przeglądarka hierarchii ................................................................................................ 205
Narzędzie layoutopt ...................................................................................................... 205
Standard OpenGL ES .......................................................................................................... 205
Rozszerzenia .................................................................................................................. 206
Kompresja tekstur ......................................................................................................... 207
Mipmapy ........................................................................................................................ 212
Różne pliki APK ............................................................................................................ 213
Programy cieniowania ................................................................................................. 213
Złożoność sceny ............................................................................................................ 214
Odrzucanie ..................................................................................................................... 214
Tryb renderowania ....................................................................................................... 214
Zużycie energii .............................................................................................................. 214
Podsumowanie ..................................................................................................................... 215
Rozdzia 9
RenderScript .............................................................................................217
Wprowadzenie ..................................................................................................................... 217
Witaj, świecie ........................................................................................................................ 219
Witaj, renderingu ................................................................................................................. 222
Tworzenie skryptu renderującego .............................................................................. 222
Tworzenie kontekstu (obiektu RenderScriptGL) ..................................................... 223
Rozszerzanie klasy RSSurfaceView ............................................................................ 224
Ustawianie widoku zawartości .................................................................................... 224
Stosowanie zmiennych w skrypcie .................................................................................... 225
6
[ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • audipoznan.keep.pl