根据“优化提示”设置targetSdk

时间:2013-05-03 20:11:44

标签: android

我看到Google在开发者控制台中添加了一个名为“优化提示”的新部分。

其中提到我应该设置一个targetSdk。我目前只有:

<uses-sdk android:minSdkVersion="7"/>

their documentation 他们说:

"You can set the app's range of targeted Android versions in the manifest file, in the <uses-sdk> element. In most cases, you can target Android versions properly by setting the element's targetSdkVersion attribute to the highest API level available."

"targetSdkVersion is declared with value 11 or higher (14 or higher is recommended)"

我的应用程序适用于所有版本的Android,包括平板电脑。基于他们所说的内容,即使我的应用程序支持版本7,并且不使用更高版本的功能 - 我是否应该将目标设置为最高可能值(目前为API 17)。

目前我为我的应用程序获得了合理的下载量,所以我不能正确理解它的好处 - 它只是谷歌的一个指标我已经在更高的设备上测试过它(因为它是一个全屏画布应用程序 - 配色方案和菜单风格,改变不大可能对我有任何影响)

(顺便说一下,我明白为什么有人可能想要使用更高的targetSdk,我只是想知道是否应该将它设置得更高,即使你不需要它)

2 个答案:

答案 0 :(得分:3)

  

我应该将目标设置为最高可能值(目前为API 17)

是。它将以各种方式改善新设备的用户体验。

这方面的一个示例是,如果您的目标不是至少API级别11,那么具有虚拟软键的设备(即最近几代Nexus手机)将显示旧版选项菜单按钮。

还有其他一些事情要提,但我现在的时间有点短。简而言之:您应始终包含目标API和最低API级别。

我强烈建议您阅读这篇文章:http://android-developers.blogspot.dk/2012/01/say-goodbye-to-menu-button.html

答案 1 :(得分:1)

设置targetSdk版本就像是指示您使用更高级别的API进行开发。正如密歇尔指出的那样,它会自动处理一些事情。

另一方面,这也“暗示”您已经负责处理代码中API的任何已弃用的API /行为更改。

  1. 例如,AsyncTasks曾经在API 11之前的ThreadPool(并行执行)中执行。在APIlevel&gt; = 11中,AsyncTasks的默认执行模式是单线程,任务排队。现在当你以SDK&gt; = 11为目标时,你隐含地接受你的AsyncTasks可以在一个线程上运行(没有并行执行)。

  2. 当您未指定targetSDK版本时,Google Nexus设备会在屏幕上显示软菜单按钮(当您实施菜单时)。现在,当您指定目标&gt; = 11时,表明您正在自行处理显示菜单。

  3. 你应该注意这些事情。如上所述,如果您可以浏览链接http://developer.android.com/guide/topics/manifest/uses-sdk-element.html会更好 在指定目标后,仔细并充分测试应用程序是否有任何偏差。