我正在使用vectordrawable来显示图像。图像是与app(apk)捆绑在一起的所有资源。我的问题是,每次新活动的内存都会大大增加,直到应用程序崩溃并出现OutOffMemoryException。
java.lang.OutOfMemoryError
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:903)
at android.graphics.Bitmap.createBitmap(Bitmap.java:880)
at android.graphics.Bitmap.createBitmap(Bitmap.java:847)
我已经调查了MAT的内存泄漏,但没有找到比位图错误更多的东西。
显示vectordrawables的效率方法有哪些?也许我的应用程序的一般架构不适合活动生命周期?
我没有找到关于其他应用程序(facebook,aibnb,whatsapp,...)的常见内存消息的任何信息。我的用法大约是40-70MB。
答案 0 :(得分:1)
处理图像时需要注意以下几点:
bitmap.recycle()
来清理分配的位图内存。这使位图无效并释放所有占用的内存,使其可用于其他操作。OutOfMemoryError
,即使内存可用。在这种情况下,您可能希望优化您尝试加载的图像文件。浏览您的应用并逐一检查这些潜在问题。此外,还有适用于Android平台的良好分析工具。它们可以向您展示内存管理的潜在问题,例如过多的内存分配等。
祝你好运。