Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android targetSdkVersion:访问更高的功能和风险_Java_Android_Hardware Acceleration - Fatal编程技术网

Java Android targetSdkVersion:访问更高的功能和风险

Java Android targetSdkVersion:访问更高的功能和风险,java,android,hardware-acceleration,Java,Android,Hardware Acceleration,我知道minSdkVersion和targetSdkVersion是如何工作的,但在这个具体案例中我需要确认(我不想意外地忽略任何事情) 我的应用程序(游戏)支持Android 2.2及以上版本的所有设备。到目前为止,minSdkVersion和targetSdkVersion被设置为8(即API级别8,对应于Android 2.2) 如果为其启用了硬件加速,我的一个视图的工作效率会显著提高,但我无法在项目中设置它,因为它需要API级别11。(当时我是怎么注意到的?我的一个测试设备在开发者设置中

我知道
minSdkVersion
targetSdkVersion
是如何工作的,但在这个具体案例中我需要确认(我不想意外地忽略任何事情)

我的应用程序(游戏)支持Android 2.2及以上版本的所有设备。到目前为止,
minSdkVersion
targetSdkVersion
被设置为8(即API级别8,对应于Android 2.2)

如果为其启用了硬件加速,我的一个
视图
的工作效率会显著提高,但我无法在项目中设置它,因为它需要API级别11。(当时我是怎么注意到的?我的一个测试设备在开发者设置中提供了一个复选框“强制GPU映射”,所以当我运行我的应用程序时,我注意到了差异。)

我假设解决方案是将
targetSdkVersion
设置为11(但将
minSdkVersion
保持为8),然后从代码中检查我们是否在API级别11或更高的级别上运行,然后为视图(窗口)启用硬件加速。最后一步需要更高的API级别,因为在源代码中无法识别
FLAG\u HARDWARE\u ACCELERATED


假设我的所有代码只使用
minSdkVersion
API(除了在运行时检查平台版本是否有异常调用,如硬件加速),是否可以保证
targetSdkVersion
以下的设备不会出现问题?(由于以上的解决方案,我的意思是。)我想避免我的应用程序在预蜂窝设备上不能正常工作。(请注意,我也根据平台版本在各种设备上测试我的应用程序,因此测试不是问题。)

在您的
活动中,如果您的窗口为API级别11或更高,请使用此行设置硬件加速:

if( Build.VERSION.SDK_INT >= Build.HONEYCOMB ) {
    getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
    WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);
}
编辑: 作为编辑的答案,Android Lint可能会抛出一个错误,表示它不适用于TargetSDK,但它可以工作,并且不会对旧版本抛出任何异常。如果是这样的话,版本不知何故大于10,这是不可能的


但是您应该更新您的TargetSDK,因为通过使用硬件加速,您的目标是更高的API目标。

我正准备这样做,但我感谢您的回答(如果您能确认我对新添加的问题的回答,我会将其设为一个答案)。很抱歉耽搁了(我不得不编辑我的帖子)。如果你能确认我新添加的问题,你对
是什么意思?
?我编辑了我原来的帖子,请参见最后一段。我想问的是,使用minSdkVersion和targetSdkVersion(加上使用您添加的代码,是的)的方法是否在所有情况下都是安全的,即在预蜂窝设备上也是安全的。