Android性能api 11级及以上

Android性能api 11级及以上,android,performance,Android,Performance,我似乎有一个无法解决的问题,我花了一个周末在上面,没能把它修好。 当我制作一个包含两个活动的简单测试应用程序时: 1.Mainactivity:几个按钮、一个计时器(后台线程)和一个对SQLite db的轻请求。 2.第二个活动:几个按钮,只有一个有点击监听器,当你点击它时,你只需返回到第一个活动。 我使用大按钮(屏幕宽度约为屏幕高度的四分之一),xml布局资源不包含任何嵌套权重元素或其他外来元素 它是一个测试项目,没有其他功能 我有以下严重问题: -当我将清单文件中的api级别设置为3时,一切

我似乎有一个无法解决的问题,我花了一个周末在上面,没能把它修好。 当我制作一个包含两个活动的简单测试应用程序时: 1.Mainactivity:几个按钮、一个计时器(后台线程)和一个对SQLite db的轻请求。 2.第二个活动:几个按钮,只有一个有点击监听器,当你点击它时,你只需返回到第一个活动。 我使用大按钮(屏幕宽度约为屏幕高度的四分之一),xml布局资源不包含任何嵌套权重元素或其他外来元素

它是一个测试项目,没有其他功能

我有以下严重问题: -当我将清单文件中的api级别设置为3时,一切都很完美。(在兼容模式下自动显示屏幕) -当我将api级别设置为11或更高时,加载第二个活动最多需要10秒。 在第一次打开第二个活动之后,事情似乎被缓存了,延迟不再存在。 -当我将api级别设置为11或更高,并强制(屏幕分辨率)兼容模式:无更改时,延迟保持不变

我之所以构建此测试项目,是因为我在升级旧应用程序时遇到此问题。它在较旧的api级别上运行平稳,每当我将它放到Android版本3或更高版本时,它都会延迟25秒!(即使打开仅显示静态文本的活动…)

我正在测试一个新的Galaxy标签,这不是问题。我花了几个小时在谷歌上搜索一个解决方案,从来没有找到任何接近它的。我甚至完全卸载了Eclipse和所有android资源,并对所有内容进行了全新安装和更新(包括Galaxy选项卡的出厂重置)。不走运

我做了跟踪,问题出在GLES20Canvas.nDrawDisplayList中。似乎建立这个列表需要很多时间,即使没有太多的东西要建立

有人知道我如何解决这个问题吗

谢谢, 马丁

GLES20Canvas.nDrawDisplayList

如果你画了很多,尤其是非常大的视图,那么在这一过程中,
预计会占用大量的时间


我希望你能给你一个链接,告诉你该做什么和不该做什么,我通过查看这篇文章找到了解决这个问题的方法:

解决方案是禁用硬件加速

AndroidManifest.xml
的应用程序标记中,添加:

android:hardwareAccelerated="false"

现在一切又顺利了。不幸的是,硬件加速并不能使应用程序在启动时运行得更快。

谢谢。我以前读过那篇文章并做过实验。不走运。事实上,即使是一个简单的textview也需要几秒钟的时间来渲染(布局中没有其他内容)。到目前为止,我找到的唯一有效的解决方案是禁用硬件加速。Romain Guy只是谷歌的辩护人,不想费心解决开发者面临的实际问题。你可能不想对所有设备禁用硬件加速,请参阅->我只在一台设备上注意到这个问题,HTC one。traceview结果显示问题与nDrawDisplayList有关。我尝试过的任何其他设备的Traceview结果都很好。这似乎暗示了一个设备或操作系统级的错误,而不是应用程序代码的错误。在人们报告看到这个问题的设备(HTC One或Galaxy Nexus)上,使用低深度listview或scrollview似乎很容易复制。