应用程序在使用OutOfMemoryException的三星Galaxy S7 Edge上缓慢运行

时间:2016-05-08 10:28:26

标签: java android performance

我在几台设备上调试我的应用程序,包括Oppo Find 7a(Android 6.0.1,Snapdragon 801和2GB内存),三星Galaxy S5 mini(Android 5.1,Exynos和1.5GB内存) ),旧的三星平板电脑(Android IV.IV.I,Hamster on a wheel,3 candy)以及刚购买的三星Galaxy S7 Edge(Android 6.0.1,Exynos的东西,4GB的RAM)。

我在新S7和Oppo之间进行的主要比较,因为我认为拥有相同的Android版本,他们本可以看到与硬件升级相同。

因此,我在新三星S7上遇到了巨大的性能问题。不仅要与Oppo进行比较,还要与旧型号进行比较。即便是平板电脑也能轻松让S7吃掉灰尘。

此外,即使他的阈值为256MB(应用程序在各种情况下平稳运行的S5 Mini的2倍),我也会使用常见的OutOfMemoryExeption报告S7上的崩溃情况。

我使用Volley大量使用HTTP请求,以及使用片段和viewPagers的动态内容。

此处是应用http://pastebin.com/EwuKZKLa

上次运行的日志

你能帮我找出为什么只有在这台设备上我有这些问题吗? (如果您猜测,该设备是100%原创) 感谢

1 个答案:

答案 0 :(得分:3)

关于堆栈跟踪,Glide尝试使用的占位符可绘制资源太大了。 Android需要为此映像分配132,710,412个字节。这相当于一个5738像素乘5738像素的图像,它大于设备屏幕。

我的猜测是你在res/drawable/中有这个抽象。这是res/drawable-mdpi/的同义词。然后,该图像被上采样到-xxxhdpi(或者S7 Edge的密度),这就是您的问题所在。为此图片创建适当的密度再现,或将其移至res/drawable-nodpi/res/drawable-anydpi/

关于您的"巨大的性能问题",请使用方法跟踪和类似工具来确定问题的确切位置。