我正在多台设备上调试我的应用程序,包括 Oppo Find 7a(Android 6.0.1、Snapdragon 801 和 2GB RAM)、Samsung Galaxy S5 mini(Android 5.1、Exynos 等和 1.5GB RAM),一台旧的三星平板电脑(Android IV.IV.I、滚轮上的仓鼠、3 颗糖果)以及刚买的三星 Galaxy S7 Edge(Android 6.0.1、Exynos 等、4GB RAM)。
我对新款 S7 和 Oppo 进行了主要比较,因为我认为具有相同的 Android 版本,它们可以被视为具有硬件升级的相同设备。
因此,我在新的三星 S7 上遇到了巨大的性能问题。不仅与 Oppo 进行比较,还与旧型号进行比较。即使是平板电脑也能轻松让S7吃灰。
此外,我正在报告 S7 上的崩溃,并出现常见的 OutOfMemoryExeption,即使他的阈值是 256MB(是 S5 Mini 的 2 倍,其中应用程序在各种条件下都能顺利运行)
我通过 Volley 大量使用 HTTP 请求,以及带有 fragment 和 viewPagers 的动态内容。
这是应用程序上次运行的日志 http://pastebin.com/EwuKZKLa
您能帮我找出为什么只有在这台设备上才会出现这些问题吗? (如果你猜的话,该设备是 100% 原装) 谢谢
最佳答案
关于堆栈跟踪,Glide 尝试使用的占位符可绘制资源太大。 Android 需要为此图像分配 132,710,412 字节。这相当于 5738 像素 x 5738 像素的图像,大于设备屏幕。
我的猜测是,您在 res/drawable/
中有这个可绘制对象。这是 res/drawable-mdpi/
的同义词。然后将该图像上采样到 -xxxhdpi
(或 S7 Edge 的任何密度),这就是您的问题所在。创建此图像的适当密度再现,或将其移至 res/drawable-nodpi/
或 res/drawable-anydpi/
。
关于“巨大的性能问题”,请使用方法跟踪和类似工具来准确确定问题所在。
关于java - 应用程序仅在 Samsung Galaxy S7 Edge 上速度缓慢并出现 OutOfMemoryException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37098783/