【问题标题】:Turn on "Force Gpu Rendering " programmatically以编程方式打开“强制 Gpu 渲染”
【发布时间】:2012-04-25 22:00:03
【问题描述】:

我的应用程序的 minSdk 版本是 7,与 3.0 以下的版本相比,我的应用程序在带有 ICS 的 nexus 上运行流畅,因为 min sdk 是 7,所以我想以编程方式打开 gpu 渲染选项(如果它尚未启用)对于 3.0 以上的版本,我可以让我的应用程序与 2.0 兼容,即仅为 OS>=3.0 启用 gpu 渲染选项。我想在应用程序级别启用渲染,而不仅仅是在视图级别

【问题讨论】:

    标签: android gpu


    【解决方案1】:

    android:hardwareAccelerated="true" 添加到清单的应用程序标记中。 Pre Honeycomb 设备将忽略它。确保您的目标 sdk 是蜂窝或更高版本。

    您需要检查您没有使用更高级别的 api,但这不是一个大问题。您可以通过反射来解决更复杂的任务,或者简单地使用 if 语句,例如:

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){
    }
    

    还有更多关于这个here的细节

    【讨论】:

    • 是的,但是通过这种方式,我总是需要在市场上上传两个 apk 文件,因为我希望它能够安装在预 Honeycomb 设备中。如果我将目标 sdk 设置为蜂窝,那么 IDE 将显示我的新方法,如果我使用 sdk>=3.0 支持的一些方法,如果该 apk 文件安装在 sdk
    • 不,你不会。您可以这样设置:<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>
    • Scott,我已经编辑了我的评论,对于我刚才提到的在 2.0 设备中使用 3.0 以后支持的方法的场景,您能否提供更详细的答案?
    • 我已经编辑了我的答案,详细说明了如何为多个版本编写代码。
    • 谢谢你,斯科特,你的回答很有帮助。实际上,我试图避免这种“新方法冲突”,尽管除了检查您使用的方法是否支持从哪个 API 级别开始之外,别无他法。您建议的页面还说我们应该将目标 sdk 版本设置为最新的可用版本,并在使用新方法之前添加版本检查。
    猜你喜欢
    • 2021-07-20
    • 2011-09-12
    • 2010-11-19
    • 2020-08-12
    • 2012-03-31
    • 1970-01-01
    • 1970-01-01
    • 2011-10-09
    • 1970-01-01
    相关资源
    最近更新 更多