Skip to content

BUG memory-leak during display-rotation with integrated skeleton in RecyclerView (sample-app) #18

@ajans

Description

@ajans

Describe the bug
After about 50 display-rotations, there is a significant increase in memory-usage of the sample-app in the demo-2 branch.
After the initial start of the app on an API-29 emulator, the usage was about 80mb.
After the rotation-marathon, it peaked to about 148mb. After the last rotation, in rest, the usage only went down to around 129mb.
It took around 2:30 minutes to reproduce this level of memory leakage.

If I can do something to help reproduce or fix the issue, please let me know.
This is the best skeleton-library I have found so far (and the only one working comfortably with CardViews in RecyclerView, for sure), so I still want to use it in our app-project.

To Reproduce
Steps to reproduce the behavior:

  1. Go to branch demo-2
  2. Compile and run the sample-app on an emulator
  3. With the app running, rotate the emulator display in rapid succession (Hotkeys: Ctrl-Left, Ctrl-Right), with a short delay to let the UI display itself, for at least 20 times. To reach the aforementioned increase, around 50 rotations are necessary.
  4. No error is posted, the app is stable by itself, but it is only a matter of rotation-count to bring the app to a crash

Expected behavior
I expected the memory usage to stay around 80mb. In my own app-project, my app is itself also around 80mb and stays there with 4 RecyclerViews loading stuff from the internet. Integrating the Skeleton-Bones library shows the same behavior as in the sample-app, memory increased to the double amount after 40-50 rotations. This should not happen.

Screenshots
Bildschirmfoto vom 2021-01-14 14-13-56

Smartphone (please complete the following information):

  • Device: Emulator 30.3.5 with Android 10 API-Level 29 x86 ABI
  • SDK Version 29
  • Version tested with demo-2 sample app and library 1.3

Additional context
I did an analysis of the sample-app demo-2 with LeakCanary as described here:
https://square.github.io/leakcanary/fundamentals-fixing-a-memory-leak/#3-find-the-reference-causing-the-leak

The LeakCanary-dump is this:
skeleton-bones-demo2-sample-leak.log

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions