我有一个有很多涟漪效果和动画的应用程序。
我尝试来回切换多个屏幕,以及垃圾邮件点击按钮。
我注意到即使某些屏幕已经关闭,堆大小也会不断增加。
当我检查堆转储时,保留堆最高的类是android.graphics.Bitmap
该类,它指向我单击的所有具有涟漪效应的按钮。
按钮上的波纹效果只是?attr/selectableItemBackgroundBorderless
用作背景的简单波纹。但每次点击带有涟漪的按钮时,它都会增加 0.3mb 或 0.5mb。
我有一个有很多涟漪效果和动画的应用程序。
我尝试来回切换多个屏幕,以及垃圾邮件点击按钮。
我注意到即使某些屏幕已经关闭,堆大小也会不断增加。
当我检查堆转储时,保留堆最高的类是android.graphics.Bitmap
该类,它指向我单击的所有具有涟漪效应的按钮。
按钮上的波纹效果只是?attr/selectableItemBackgroundBorderless
用作背景的简单波纹。但每次点击带有涟漪的按钮时,它都会增加 0.3mb 或 0.5mb。
可能是某种内存泄漏。如果不分析代码,几乎不可能知道问题出在哪里。我推荐一些测试。
你可以试试Leak Canary库。该库可以“监视”特定对象并缩小对泄漏的搜索范围。