我对Android世界有点新鲜,并且有一个简单的问题。
如果我使用API 13(或API10)上的库开发应用程序 此应用程序是否仍会在仅安装API 7 的Android手机上运行?
当我尝试在带有API 7的Android手机上使用EClipse运行当前应用时,我收到一条错误消息,指出我的应用至少需要API 10 - 所以我不敢在API 13上进行开发。
我应该更好地坚持使用API 7而不是使用新功能吗?
在这种情况下,最好的办法是什么?
非常感谢
答案 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列表,了解每个级别之间的差异,以确定您是否真的想要使用某些功能。