【问题标题】:Different android:minSdkVersion and targetSdkVersion causing performance problems不同的 android:minSdkVersion 和 targetSdkVersion 导致性能问题
【发布时间】:2012-12-03 12:46:14
【问题描述】:

我目前正在开发一个 android 应用程序,在我的 Nexus S 上对其进行测试。如果我正在运行它,使用 minSdkVersion="7", targetSdkVersion="7" 它表现良好,但如果我设置 targetSdkVersion(或两个变量)高于 13 时,应用开始表现不佳。

在我的自定义视图绘制完成后,应用程序的 GUI 挂起(不显示 ANR)大约 5 秒钟,然后它就可以正常工作了。

有什么想法吗?

编辑:

我想在 API 16 上开发我的应用,但要向下兼容 API 级别 7,所以我想在 API 16 和 API 7 上对其进行测试。但是在级别 16 上它的性能很差。

IMO 这没有任何意义,因为如果我的手机使用 Android 4.1,那么以 16 级为目标的应用应该比以 7 为目标的应用表现更好。

API 13 和 14 在绘制 View 时的主要区别是什么?

我正在使用一些自定义视图,即支持包中的 SherlockActionbar 和 ViewPager。

谢谢

【问题讨论】:

  • 您能否提供有关您的应用的更多详细信息?
  • 我也遇到了类似的问题,如果我只使用 minsdk 意味着我的应用程序工作正常,但是当我同时使用 minsdk 和 targetsdk 时意味着应用程序 UI 变得巨大。

标签: android


【解决方案1】:

我遇到了同样的问题。

当您切换到targetSdkVersion=14 时,android:hardwareAccelerated 将默认为“true”而不是“false”

这将使您可以定位 14 并且不会遇到性能问题:

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="14" />
<application android:hardwareAccelerated="false" >

【讨论】:

  • 哇解决了我在播放动画 gif 文件时没有显示没有 android:hardwareAccelerated="false" 属性的 gif 的问题
【解决方案2】:

如果您将目标版本设置为高于您的最低版本,那么您可以使用最低版本不知道的命令。它适用于您知道更高版本具有更好代码变体的情况,因此您将检查设备运行的版本,然后使用代码 nr1 或代码 nr2。

如果您确定如何处理,您应该只使用不同的 api 版本。

【讨论】:

    猜你喜欢
    • 2019-05-04
    • 2017-12-10
    • 2012-02-10
    • 1970-01-01
    • 2020-09-05
    • 2022-11-18
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    相关资源
    最近更新 更多