0

我正在构建一个针对 API-17 编译的 Android 应用程序:project.properties 包含

target=android-17

我有点困惑,因为我可以在运行 Gingerbread 3.3.6,API 10 的 Android 手机上下载并执行该应用程序。也许有人可以澄清一下吗?

4

3 回答 3

2

您可以在 API 10 上运行它,因为您android:minSdkVersion将小于 10。它是一个整数,指定运行应用程序所需的最低 API 级别。

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html

targetproject.properties 和android:targetSdkVersion

target=android-sdkproject.properties 文件中的版本表明 Eclipse 不允许使用高于此版本的 sdk 中的方法或类。

android:targetSdkVersion属性通知系统您已针对目标版本进行了测试,并且系统不应启用任何兼容性行为以保持您的应用程序与目标版本的前向兼容性。该应用程序仍然能够在旧版本上运行

来源:“project.properties”文件中的“target”设置与清单中的“android:targetSdkVersion”标签有什么区别?

于 2013-08-31T06:12:11.263 回答
2

因为 target=android-17 是编译目标而不是 MIN-SDK。Min-sdk 版本将是 Android 2.2,因此您可以在 3.3.6、API 10 上下载和执行

于 2013-08-31T06:12:33.890 回答
0

以前的答案是有效的。

我只会补充一个条件:该应用程序的代码应该用 API-10 兼容的代码编写。应用程序不应调用 API-10 中未定义的类或方法,否则会在这样做时崩溃。

然后,Android 有很多方法供开发者解决兼容性问题,例如支持库和检测设备版本以编写特定的兼容性代码。

于 2013-08-31T07:48:03.520 回答