2013-05-03 89 views
3

我看到谷歌已经增加了一个新的部分称为开发者控制台“优化技巧”设置targetSdk。基于“优化技巧”

在这里面提到它我应该设定一个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,我只是想知道是否应该设置更高,即使你不需要它)

+1

目标SDK版本与最低SDK版本之间存在区别。 – kabuko 2013-05-03 20:19:06

回答

3

我应该真的把我的目标设定到最高值(目前API 17)

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

这方面的一个例子是,随着虚拟软键装置,即Nexus手机的最后几代,会显示传统的选项菜单按钮,如果你没有目标至少API级别11

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

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

+0

简单,回答 - 我会将其设置为最高。我根本不使用菜单(或任何更高级的功能),所以我不确定将它设置得更高会产生效果,但听起来它绝对不会受到伤害。 – 2013-05-03 20:28:20

+0

想想textviews。如果你还记得,在Android Gingerbread中有那些空白背景和黄色边框的难看的文本视图。如果您将应用程序定位到最大的SDK,它会自动将您的textView更改为ICS textView(黑色背景,底部蓝色边框)。相信我,姜饼TextViews现在看起来极端老式:D – edoardotognoni 2013-05-03 20:37:24

+1

@BruceLowe是的,有很多性能改进,所以这绝对是你应该做的:) – 2013-05-03 20:54:45

1

设置一个targetSdk版本就像是表明你有考虑到更高级别的API开发。正如米歇尔指出的那样,它会自动处理一些事情。

在另一面,这也将“意味着”你已经采取谨慎的处理在你的代码API的任何淘汰的API /行为的变化。

  1. 例如,API 11之前和在APIlevel用于在线程池(并行执行)时要执行AsyncTasks> = 11 AsyncTasks的执行默认模式是单一线程,这些任务正在排队。现在,当您将SDK> = 11作为目标时,您隐式接受您的AsyncTasks可以在单个线程上运行(无并行执行)。

  2. 谷歌Nexus设备对屏幕软菜单按钮(如果您已实现菜单),当您不指定targetSDK版本。现在,当您指定> = 11的目标时,表明您正在照顾自己显示菜单。

有几件事你应该知道。如上所示,如果您仔细检查链接http://developer.android.com/guide/topics/manifest/uses-sdk-element.html 并且在指定目标后对应用程序进行了足够的测试,那么效果会更好。

+2

谢谢,我不知道有关AsyncTasks。你和密歇尔的答案似乎都是正确和清楚的解释。对不起,我只能选择其中一个答案,所以我已经走了第一个 - 但非常感谢! – 2013-05-03 21:13:29