在API 10上开发Android应用程序 - 它仍将在使用API​​ 7的设备上运行吗?

时间:2011-10-19 14:01:43

标签: android api

我对Android世界有点新鲜,并且有一个简单的问题。

如果我使用API​​ 13(或API10)上的库开发应用程序 此应用程序是否仍会在仅安装API 7 的Android手机上运行?

当我尝试在带有API 7的Android手机上使用EClipse运行当前应用时,我收到一条错误消息,指出我的应用至少需要API 10 - 所以我不敢在API 13上进行开发。

我应该更好地坚持使用API​​ 7而不是使用新功能吗?

在这种情况下,最好的办法是什么?

非常感谢

4 个答案:

答案 0 :(得分:3)

如果您没有使用旧版API中不存在的API10中的任何功能,它将起作用。

您仍然可以使用带反射的新功能。 首先检查函数是否可用,然后用反射执行它。

示例:

    // try to override the transition animation
    if (VERSION.SDK_INT > android.os.Build.VERSION_CODES.DONUT) {
      try {
        Method method = getClass().getMethod("overridePendingTransition",
            new Class[]{int.class, int.class});
        method.invoke(this, 0, 0);
      } catch (Throwable e) {
        // can not override transition animation, so do nothing
      }
    }

还要确保设置android:minSdkVersion。

答案 1 :(得分:1)

您通常希望使用程序所需功能的最低API版本进行开发。这将允许它在大多数设备上工作。

API 7设备可以运行API 7及更低版本。

答案 2 :(得分:1)

您获得的消息只是对清单文件中设置的响应。您可以更改应用程序的最小API版本:

<manifest android:minSdkVersion="9"> </manifest>

正如Heuristic所说,出于兼容性原因,您应该使用最小API版本,但如果您的应用程序使用手机上安装的较新版本的库,则该应用程序将无法运行。

答案 3 :(得分:1)

如果您具有真正的最低API级别,则应为该级别开发并设置适当的minSDKVersion标志,以便您的应用程序甚至不会出现在不符合该标准的设备的市场中。一般来说,回答您的问题,最低可能要求取决于您利用的API的哪些功能。如果您想提供向后兼容性但仍希望使用较新API中的某些功能,我认为您需要创建应用程序的两个版本并相应地设置min / target / max SDK标志,以便客户获得最适合他们设备的版本。

您可以查看Android API列表,了解每个级别之间的差异,以确定您是否真的想要使用某些功能。

http://developer.android.com/guide/appendix/api-levels.html