Java 目标安卓4.1可以在以前的版本上运行吗?

Java 目标安卓4.1可以在以前的版本上运行吗?,java,android,api,target,Java,Android,Api,Target,我有一个问题可能看起来很愚蠢,但我不得不感叹 我有一个针对android的应用程序,由于使用了API,它不得不将目标放在android 4.1上 我的疑问是,该应用程序能否在系统低于4.1的android设备上运行 在我的清单文件中放入以下内容 <uses-sdk android: minSdkVersion = "8" android: targetSdkVersion = "16" /> 我在装有安卓2.3.6的设备上进行了测试,运行正常,没

我有一个问题可能看起来很愚蠢,但我不得不感叹

我有一个针对android的应用程序,由于使用了API,它不得不将目标放在android 4.1上

我的疑问是,该应用程序能否在系统低于4.1的android设备上运行

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

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

我在装有安卓2.3.6的设备上进行了测试,运行正常,没有任何错误,其他版本也一样,没有出现问题?

minSdkVersion=8意味着它可以在运行安卓2.2或更高版本的设备上运行

minSdkVersion=8意味着它可以在运行安卓2.2或更高版本的设备上运行 最低SDK版本是运行应用程序而不会产生问题的最低API

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

-

目标SDK版本 目标SDK版本只是说明可以为应用程序使用哪个API的方法

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

-

实例 例如,假设您在应用程序中使用。此方法仅适用于API13+,因此必须针对13或更高版本。但是,如果在使用API12或更低版本的设备上不调用此方法,则不会遇到任何问题

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

简短回答 android:minSdkVersion=8表示您的应用程序可以在android 2.2+上使用。android:targetSdkVersion=16意味着无论何时编译应用程序,您都可以访问android 4.1+中的任何内容,但并不意味着较旧的设备可以使用这些功能。

最低SDK版本 最低SDK版本是运行应用程序而不会产生问题的最低API

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

-

目标SDK版本 目标SDK版本只是说明可以为应用程序使用哪个API的方法

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

-

实例 例如,假设您在应用程序中使用。此方法仅适用于API13+,因此必须针对13或更高版本。但是,如果在使用API12或更低版本的设备上不调用此方法,则不会遇到任何问题

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

简短回答
android:minSdkVersion=8表示您的应用程序可以在android 2.2+上使用。android:targetSdkVersion=16意味着无论何时编译应用程序,您都可以访问android 4.1+中的任何内容,但这并不意味着较旧的设备可以使用这些功能。

埃里克的答案很好。。我只想从文档中再添加一些东西。这可能对你有帮助

关于明斯克版本

如果系统的API级别低于此属性中指定的值,Android系统将阻止用户安装应用程序 如果不声明此属性,系统将假定默认值为1,这表示您的应用程序与所有版本的Android兼容 因此,如果您使用minsdk版本之后引入的任何api,那么程序将崩溃。 关于targetsdkversion

如果未设置,则默认值等于给定给minSdkVersion的值。 根据应用程序在不同版本的android操作系统上的targetsdkversion,行为和外观可能会发生变化。因此,从文件中。。 例如,将该值设置为11或更高可允许系统 在Android上运行时,将新的默认主题Holo应用于你的应用程序 3.0或更高版本,并在l上运行时禁用屏幕兼容模式 更大的屏幕,因为隐式支持API级别11 支持更大的屏幕

再比如说。假设您将targetsdk版本设置为5。然后,在所有操作系统版本中,菜单、标题栏和总体主题都将类似于ECLAIR。但如果将targetsdk版本设置为14。那么ics的主题就是ics。在以下版本的操作系统上,主题将与该操作系统相对应

关于maxsdkVersion的最后一点:


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

埃里克的回答很好。。我只想从文档中再添加一些东西。这可能对你有帮助

关于明斯克版本

如果系统的API级别低于此属性中指定的值,Android系统将阻止用户安装应用程序 如果不声明此属性,系统将假定默认值为1,这表示您的应用程序与所有版本的Android兼容 因此,如果您使用minsdk版本之后引入的任何api,那么程序将崩溃。 关于targetsdkversion

如果未设置,则默认值等于给定给minSdkVersion的值。 根据应用程序在不同版本的android操作系统上的targetsdkversion,行为和外观可能会发生变化。因此,从文件中。。 例如,将该值设置为11或更高可允许系统 在Android上运行时,将新的默认主题Holo应用于你的应用程序 3.0或更高版本,并在较大屏幕上运行时禁用屏幕兼容性模式,因为隐式支持API级别11 支持更大的屏幕

再比如说。假设您将targetsdk版本设置为5。然后,在所有操作系统版本中,菜单、标题栏和总体主题都将类似于ECLAIR。但如果将targetsdk版本设置为14。那么ics的主题就是ics。在以下版本的操作系统上,主题将与该操作系统相对应

关于maxsdkVersion的最后一点:

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