Android 性能 API 级别 11 及以上

标签 android performance

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

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

我遇到了以下严重问题: - 当我将 list 文件中的 api 级别设置为 3 时,一切正常。 (在兼容模式下自动屏幕) - 当我将 api 级别设置为 11 或更高时,加载第二个 Activity 最多可能需要 10 秒。 第一次打开第二个activity后,东西好像被缓存了,延迟不复存在了。 - 当我将 api 级别设置为 11 或更高时,我强制(屏幕分辨率)兼容模式:没有变化,延迟仍然存在。

我构建了这个测试项目,因为我在升级旧版应用时遇到了这个问题。它在较旧的 api 级别上运行顺利,每当我将它放入 Android 版本 3 或更高版本时,它都会延迟长达 25 秒! (即使打开仅显示静态文本的 Activity ...)。

我正在测试新的 Galaxy Tab,这不是问题所在。我花了几个小时在谷歌上搜索解决方案,但从未找到任何接近它的东西。我什至完全卸载了 Eclipse 和所有 android 资源,并重新安装和更新了所有内容(包括我的 Galaxy Tab 的出厂重置)。没运气。

查了一下,问题出在GLES20Canvas.nDrawDisplayList。构建此列表似乎需要花费大量时间,即使构建的内容并不多......

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

谢谢, 马丁

最佳答案

我通过检查这篇文章找到了解决这个问题的方法: http://code.google.com/p/android/issues/detail?id=22514

解决方案是禁用硬件加速。

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

android:hardwareAccelerated="false"

现在一切都恢复正常了。不幸的是,硬件加速并不能使您的应用在启动时运行得更快。

关于Android 性能 API 级别 11 及以上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13820952/

相关文章:

android - 为什么android的值为:background still being used after a switch to a new theme

java - Play Billing Library v1.0 过期订阅

.net - C++/CLI 函数指针与 .NET 委托(delegate)的性能

mysql - UPDATE vs COUNT vs SELECT 性能

WCF 协议(protocol)异常

android - 获取 NoSuchFieldError 实例 org/apache/http/message/BasicHeaderValueParser

java - Recycler View 的程序流程

android - FragmentPagerAdapter notifyDataSetChanged 不起作用

performance - 标准的 Jira on Tomcat 安装可以承受多少负载?

jQuery "$(this)": is repeated use efficient?