我正在几个设备上调试我的应用程序,包括Oppo Find 7A(Android 6.0.1、Snapdragon 801和2GB RAM)、三星Galaxy S5 Mini(Android 5.1、Exynos Something和1.5GB RAM)、三星旧平板电脑(Android IV.IV.I、仓鼠轮、3颗糖果)以及刚刚购买的三星Galaxy S7 Edge(Android 6.0.1、Exynos Something和4GB RAM)。
我主要比较了新的s7和oppo在哪里,因为我认为拥有相同的android版本,他们可能会被视为同一个devive的硬件升级。
因此,我有巨大的性能问题上的新三星s7。不仅与OPPO相比,还与老款车型相比。即使是平板电脑也很容易让s7吃到灰尘。
此外,我还报告了使用普通OutOfMemoryExption的S7上的崩溃,即使他的阈值是256MB(是应用程序在各种情况下都能平稳运行的S5 m in i的两倍)。
我使用volley大量使用http请求,以及带有片段和viewpager的动态内容。
这是应用程序最后一次运行的日志http://pastebin.com/EwuKZKLa
你能帮我找出为什么只有在这个设备上我才有这些问题吗?(如果你猜的话,这个设备是100%原装的)
谢谢
最佳答案
对于堆栈跟踪,glide试图使用的占位符可绘制资源太大。Android需要为此映像分配132710412字节。这相当于5738px乘以5738px的图像,它比设备屏幕大。
我的猜测是你在res/drawable/
里有这个抽屉。这是res/drawable-mdpi/
的同义词。然后,该图像被上采样到-xxxhdpi
(或s7边缘的密度),这就是问题所在。创建此图像的适当密度格式副本,或将其移到res/drawable-nodpi/
或res/drawable-anydpi/
中。
对于“巨大的性能问题”,使用方法跟踪和类似的工具来确定问题所在。