2014-07-25 27 views
6

Mam na myśli wykorzystanie pamięci aplikacji wyświetlanej w menu Ustawienia> Aplikacja> Uruchomione. Dlaczego ta liczba różni się znacznie od rozmiaru sterty aplikacji w DDMS? Na przykład w obrazie OS mówi, że moja aplikacja używa 151 MB (w tym Google PLay Service), ale DDMS mówi, że używane jest tylko 40 MB pamięci.W jaki sposób system operacyjny Android oblicza zużycie pamięci przez aplikację?

Pytanie drugie: usługa Google Analytics używa 27 MB, dotyczy to wyłącznie mojej aplikacji lub w przypadku wszystkich aplikacji korzysta z usługi Google Analytics? Jeśli jest to tylko moja aplikacja, to jest to kosztowny koszt!

enter image description here

+0

Na tym duplikacie znajdziesz bardzo wyczerpującą odpowiedź - http://stackoverflow.com/questions/2298208/how-to-discover-memory-usage-of-my-application-in-android?rq= 1 –

Odpowiedz

2

Odsyłacze z Android Developer Website

procesowe Stats: Zrozumienie, jak Twoja aplikacja wykorzystuje pamięć RAM ->http://android-developers.blogspot.com/2014/01/process-stats-understanding-how-your.html

Zarządzanie pamięcią aplikacji ->https://developer.android.com/training/articles/memory.html

Badanie Wykorzystanie pamięci RAM ->https://developer.android.com/tools/debugging/debugging-memory.html


Android 4.4 KitKat wprowadził nową usługę systemową o nazwie procstats, która pomaga lepiej zrozum, w jaki sposób Twoja aplikacja korzysta z zasobów pamięci RAM na urządzeniu.

Możesz uzyskać dostęp do danych procstats za pomocą polecenia powłoki adb, ale dla wygody istnieje również nowe narzędzie programistyczne Process Stats, które zapewnia graficzny interfejs dla tych samych danych. Możesz znaleźć statystyki procesu w Settings > Developer options > Process Stats.

Android Process

Patrząc na systemowym wykorzystania pamięci i procesów w tle

Po otwarciu procesowe Statystyki widzisz podsumowanie systemowy warunkach pamięci i szczegóły na temat procesów z wykorzystaniem pamięci w czasie. Obraz po prawej daje przykład tego, co możesz zobaczyć na typowym urządzeniu.

Analiza pamięci dla poszczególnych procesów

Android Memory

Android Memory

dane statystyki Sposób pamięci dla procesów zegar i klawiaturę ostatnich 3,5 godziny.

Szczegóły dotyczące tych dwóch procesów wynika, że:

  • Dlatego, że zegar został uruchomiony w ogóle znaczy, ponieważ jest on używany jako bieżącego wygaszacza ekranu, gdy urządzenie jest w stanie bezczynności.
  • Mimo że proces zegara działał przez mniej niż połowę czasu klawiatury, jego użycie ramek było znacznie większe (prawie 3x), dlatego jego całkowita waga jest większa.

Zasadniczo, procstats udostępnia wskaźnik wykorzystania pamięci, który jest podobny do wskaźnika użycia pamięci lub wskaźników wykorzystania danych, pokazując ile pamięci RAM wykorzystuje aplikacje działające w tle. Jednak w przeciwieństwie do przechowywania lub danych użycie pamięci jest o wiele trudniejsze do oszacowania i zmierzenia, a procstats wykorzystuje do tego pewne sztuczki. Aby zilustrować złożoność pomiaru użycia pamięci, rozważ powiązany temat: menedżerowie zadań.

RAM Snapshot

Total PSS by OOM adjustment: 
    31841 kB: Native 
       13173 kB: zygote (pid 23001) 
       4372 kB: surfaceflinger (pid 23000) 
       3721 kB: mediaserver (pid 126) 
       3317 kB: glgps (pid 22993) 
       1656 kB: drmserver (pid 125) 
       995 kB: wpa_supplicant (pid 23148) 
       786 kB: netd (pid 121) 
       518 kB: sdcard (pid 132) 
       475 kB: vold (pid 119) 
       458 kB: keystore (pid 128) 
       448 kB: /init (pid 1) 
       412 kB: adbd (pid 134) 
       254 kB: ueventd (pid 108) 
       238 kB: dhcpcd (pid 10617) 
       229 kB: tf_daemon (pid 130) 
       200 kB: installd (pid 127) 
       185 kB: dumpsys (pid 14207) 
       144 kB: healthd (pid 117) 
       139 kB: debuggerd (pid 122) 
       121 kB: servicemanager (pid 118) 
    48217 kB: System 
       48217 kB: system (pid 23064) 
    49095 kB: Persistent 
       34012 kB: com.android.systemui (pid 23163/activities) 
       7719 kB: com.android.phone (pid 23357) 
       4676 kB: com.android.nfc (pid 23371) 
       2688 kB: com.nuance.xt9.input (pid 23344) 
    24945 kB: Foreground 
       24945 kB: com.android.settings (pid 24811/activities) 
    17136 kB: Visible 
       14026 kB: com.google.process.location (pid 23472) 
       3110 kB: com.android.defcontainer (pid 13976) 
    6911 kB: Perceptible 
       6911 kB: com.google.android.inputmethod.latin (pid 23298) 
    14277 kB: A Services 
       14277 kB: com.google.process.gapps (pid 23513) 
    26422 kB: Home 
       26422 kB: com.android.launcher (pid 23395/activities) 
    21798 kB: B Services 
       16242 kB: com.google.android.apps.currents (pid 23767) 
       5556 kB: android.process.media (pid 7738) 
    145869 kB: Cached 
       41588 kB: com.google.android.apps.plus (pid 24689) 
       21417 kB: com.google.android.deskclock (pid 23966/activities) 
       14463 kB: com.google.android.apps.docs (pid 8644) 
       14303 kB: com.google.android.gm (pid 9115) 
       11014 kB: com.google.android.music:main (pid 7716) 
       10688 kB: com.google.android.apps.magazines (pid 13892) 
       10240 kB: com.google.android.gms (pid 23338) 
       9882 kB: com.google.android.youtube (pid 5131) 
       8807 kB: com.google.android.apps.walletnfcrel (pid 8937) 
       3467 kB: com.google.android.setupwizard (pid 8922) 

Total RAM: 998096 kB 
Free RAM: 574945 kB (145869 cached pss + 393200 cached + 35876 free) 
Used RAM: 392334 kB (240642 used pss + 107196 buffers + 3856 shmem + 40640 slab) 
Lost RAM: 30817 kB 
    Tuning: 64 (large 384), oom 122880 kB, restore limit 40960 kB (high-end-gfx) 
0

Sterty jest tylko częścią zużycia pamięci aplikacje. Rzeczy takie jak pliki mapowane do pamięci (np. Dla bibliotek systemowych, z których korzystasz) mogą również pojawiać się w obliczeniach pamięci, chociaż często są udostępniane, więc obliczenia są nieco arbitralne.