Here is a piece of analytical data on memory consumption by a single Android application. As you can guess, abrupt downward cliffs are triggered by the Java garbage collector.
If the "jumps" were more abrupt, then it would be possible to conclude that there are obvious memory leaks in the code and, in principle, inefficient use of memory.
But what can be said from this data? Is it possible to unequivocally say how economically / uneconomically memory is used here?
PS
The code is quite large, I don’t see any reason to bring it, but it is worth noting that it is dominated by the operations of creating small “non-living” (up to 30 seconds) objects.
Pps
But this example (the same application after attempts to make optimizations) can be regarded as a less efficient use of memory compared to the example above: 
