有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java应用程序仅在三星Galaxy S7 Edge上运行缓慢,OutOfMemoryException

我正在几个设备上调试我的应用程序,包括Oppo Find 7a(安卓6.0.1、Snapdragon 801和2GB内存)、三星Galaxy S5 mini(安卓5.1、Exynos某物和1.5GB内存),一台旧的三星平板电脑(安卓IV.IV.I,轮子上的仓鼠,3颗糖果)以及刚买的三星Galaxy S7 Edge(安卓6.0.1,Exynos之类的,4GB内存)

我把新的S7和Oppo做了一个主要的比较,因为我认为拥有相同的Android版本,他们可能会被视为硬件升级的同一个设备

因此,我有巨大的性能问题的新三星S7。不仅将其与Oppo进行比较,还将其与旧款进行比较。即使是药片也能很容易地让病人吃下灰尘

此外,我还报告了使用common OutOfMemoryExection的S7出现崩溃,即使其阈值为256MB(是S5 Mini的2倍,应用程序在任何情况下都能平稳运行)

我大量使用了使用截击的HTTP请求,以及带有片段和ViewPager的动态内容

这是应用程序上次运行的日志http://pastebin.com/EwuKZKLa

你能帮我找出为什么只有在这个设备上我才有这些问题吗?(如果您猜的话,该设备是100%原装的) 谢谢


共 (1) 个答案

  1. # 1 楼答案

    关于堆栈跟踪,Glide尝试使用的占位符可绘制资源太大。Android需要为此图像分配132710412字节。这相当于5738px乘以5738px的图像,比设备屏幕大

    我的猜测是,您在res/drawable/中有这个可绘制的。那是res/drawable-mdpi/的同义词。然后将该图像上采样到-xxxhdpi(或S7边缘的任何密度),这就是问题所在。创建此图像的适当密度格式副本,或将其移动到res/drawable-nodpi/res/drawable-anydpi/

    对于“巨大的性能问题”,使用方法跟踪和类似的工具来确定问题的确切位置