I am trying to analyze the memory usage of the Android
app. I do that using
adb shell dumpsys meminfo <package name>
My app has only one Activity
and I repeat the following steps probably a dozen of times:
After doing that a dozen of times dumpsys
shows that around 1-2 instances of my Activities
are still in memory. After I hit adb dumpsys
for a couple of times the Activity
count goes down to zero. Is this normal? If it is a leak I don't expect the Activity
count to go down to zero. Does that mean GC
claims the memory of the Activity
objects slowly?
Does that mean GC claims the memory of the activity objects slowly?
Finishing an Activity
by pressing the back button does not mean its instance will be immediately killed and the memory GC
-ed. The Activity
's onDestroy()
method is not a "finalizer". One can meet the case when by the time of starting a new Activity
instance the "old" one is still sitting in memory (as a reference).
If it is a leak I don't expect the activity count to go down to zero.
If you see the app's process running it's not a leak as "the activity count goes down to zero".
After I hit adb dumpsys for a couple of times the activity count goes down to zero. Is this normal?
Yes, by the reasons described above.