目标android 4.1适用于以前的版本?

时间:2013-01-21 02:33:19

标签: java android api target

我有一个可能看起来很愚蠢的问题,但我有这个问题......

我有一个Android的应用程序,由于使用apis必须放置Android 4.1。

我怀疑该应用程序是否适用于系统低于4.1的Android设备?

在我的清单文件中输入以下内容

<uses-sdk
         android: minSdkVersion = "8"
         android: targetSdkVersion = "16" />

我在我的设备上测试了android 2.3.6并运行正常没有任何错误,其他版本也没有出现问题吗?

3 个答案:

答案 0 :(得分:3)

最低SDK版本

最低SDK版本是您可以运行应用程序而不会导致问题的最低API。

  

一个整数,指定运行应用程序所需的最低API级别。如果系统的API级别低于此属性中指定的值,则Android系统将阻止用户安装应用程序。您应该始终声明此属性。

     

- <uses-sdk> Documentation

目标SDK版本

目标SDK版本只是说明了您可以为您的应用程序使用哪种API。

  

指定应用程序所针对的API级别的整数。 ...此属性通知系统您已针对目标版本进行了测试,系统不应启用任何兼容性行为来维持应用程序与目标版本的向前兼容性。该应用程序仍然可以在旧版本上运行(低至minSdkVersion)。

     

- <uses-sdk> Documentation

实施例

例如,假设您在应用中使用Display.getSize(Point)。此方法仅适用于API 13+,因此必须目标13或更高。但是,如果您不在使用API​​ 12或更低版本的设备上调用此方法,则不会遇到任何问题。

但是,假设您的应用要求您可以访问Fragment及其方法(并且不想使用支持库)。然后,必须的最低SDK级别为11 - 否则,它将在低于该API级别的设备上崩溃。

简短回答

android:minSdkVersion="8"表示您的应用可以在Android 2.2+上使用。 android: targetSdkVersion="16"表示无论何时编译应用,您都可以访问Android 4.1及其他任何内容(但意味着较旧的设备可以使用这些功能)。

答案 1 :(得分:1)

minSdkVersion = 8表示它可以在运行Android 2.2或更高版本的设备上运行

答案 2 :(得分:1)

Eric的答案非常好......我只是想从文档中添加更多内容。它可能对你有帮助..

关于minsdkversion

  1. 如果系统的API级别低于此属性中指定的值,Android系统将阻止用户安装应用程序
  2. 如果您未声明此属性,系统将采用默认值“1”,表示您的应用程序与所有Android版本兼容
  3. 所以如果你使用你的minsdk版本后引入的任何api,那么程序将崩溃。
  4. 关于targetsdkversion

    1. 如果未设置,则默认值等于给予minSdkVersion。
    2. 取决于你的应用程序的targetdkversion对不同版本的android os的行为和外观可能会有所改变。因此来自doc ..
    3.   

      例如,将此值设置为“11”或更高允许系统   在Android上运行时,将新的默认主题(Holo)应用于您的应用   3.0或更高版本,并且在更大的屏幕上运行时也会禁用屏幕兼容模式(因为隐式支持API级别11)   支持更大的屏幕)。

      另一个例子。假设您将targetsdk版本设置为5.然后在所有操作系统版本中,菜单,标题栏和整体主题将类似于ECLAIR。但是如果你将targetsdk版本设置为14.那么对于ics,主题将是ics。在os的下面版本中,主题将对应于那个操作系统。

      最后关于maxsdkVersion:

      正如提到的其他两个所以我认为我们也应该包括这个孤独的属性。如果声明了此属性,则其值必须等于或大于系统的API级别整数。如果未声明,则系统假定应用程序没有最大API级别。