2016-11-30 70 views
0

我对targetSdkVersion的要求/行为感到困惑。据我了解,将目标SDK设置为特定版本表示应用程序(UI)的行为在该特定版本之前得到确保。Android targetSdkVersion行为

在我的应用程序中,我将我的targetSdkVersion设置为1(用于测试),并且在我的页面中有一些按钮。我期望的是,按钮点击(在Android的更高版本中引入)不会有任何涟漪效应。但是当我点击按钮时会产生连锁反应。

应用程序在lollipop上运行。

任何人都可以解释这是如何工作的。

+0

'targetSdkVersion'与您的用户界面无关,它只是指定应用程序设计运行的API级别。 –

+0

我还不清楚。你能否提供一个关于它如何影响我的应用程序在不同设备中的行为的例子。 –

+0

你说涟漪效应即使在targetSdkVersion被设置为1时也能正常工作,这是一个很好的例子吗?如果targetSDKVersion设置为大于23,那么将targetSDKVersion设置为任何值都不会影响您的应用程序,在这种情况下,您必须添加运行时权限。您与compileSdkVersion混淆。 –

回答

3

有注意到三个SDK级别:

  • targetSdkVersion:这是一个提示到Android是什么版本的应用程序的设计上运行。它的相关性的一个例子是,如果你设置targetSdkVersion为22,那么android将不会强制引入版本23中的权限......如果你将targetSdKVersion设置为23,则android将此作为一个指示,表示你的应用程序知道如何处理系统权限请求。

  • minSdkVersion:您的应用程序将运行的最低版本(您说)。游戏不会向低版本的用户展示该应用。

  • compileSdkVersion:这是您的应用程序编译的版本。您需要下载相关的SDK以进行构建。这是你在上面的例子中会产生影响的变量。由于相关系统不适用于您的应用程序。

-1

在我看来,目标SDK不会影响你的应用程序的行为。它只是API级别,并不涉及用户界面部分。

指定应用程序所针对的API级别的整数。

使用此属性集,应用程序表示它可以在旧版本上运行(下载到minSdkVersion),但明确地测试过可以使用此处指定的版本。指定此目标版本允许平台禁用目标版本不需要的兼容性设置(否则为了保持向前兼容性可能会打开该兼容性设置),或者启用较旧应用程序无法使用的较新功能。这并不意味着您可以针对不同版本的平台编写不同的功能 - 它只是通知平台您已经针对目标版本进行了测试,并且平台不应该执行任何额外的工作来维持与目标版本的向前兼容性。

希望这有助于伴侣!干杯编码快乐

相关问题