我看到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,我只是想知道是否应该将它设置得更高,即使你不需要它)
答案 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 /行为更改。
例如,AsyncTasks曾经在API 11之前的ThreadPool(并行执行)中执行。在APIlevel&gt; = 11中,AsyncTasks的默认执行模式是单线程,任务排队。现在当你以SDK&gt; = 11为目标时,你隐含地接受你的AsyncTasks可以在一个线程上运行(没有并行执行)。
当您未指定targetSDK版本时,Google Nexus设备会在屏幕上显示软菜单按钮(当您实施菜单时)。现在,当您指定目标&gt; = 11时,表明您正在自行处理显示菜单。
你应该注意这些事情。如上所述,如果您可以浏览链接http://developer.android.com/guide/topics/manifest/uses-sdk-element.html会更好 在指定目标后,仔细并充分测试应用程序是否有任何偏差。