我正在为Android构建应用程序,但我想这样做,所以我至少可以使用4.0.3功能。我目前并不担心为那些使用4.0及以下版本的用户发布这个版本。
基本上,我的问题如下:
如果我已经有一个项目,其中Eclipse中的基本最小SDK设置为4.0.3,并且max设置为相同,我可以更改最大值吗?如果是这样,怎么样?
4.0.3应用程序是否与4.1应用程序兼容?如果没有,那么有什么好处呢?如果我在C / C ++中这样做,答案将是预处理器指令(例如,#ifdef ANDROID_OS_4_1 //do stuff for 4.1 only #endif
)。我知道在Java中没有这样的等价物,更不用说Android了。
答案 0 :(得分:4)
要针对JellyBean构建,您可以使用AndroidManifest中的<uses-sdk />
标记(位于<application />
标记上方):
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="16"/>
通过使用16的targetSdkVersion(JellyBean),您可以访问所有新API
在运行时,您可以检查运行该应用程序的Android版本,并根据该版本执行操作。我在我的应用程序中使用实用程序类来执行此操作:
public class Api {
public static final int LEVEL = Build.VERSION.SDK_INT;
public static final int FROYO = Build.VERSION_CODES.FROYO;
public static final int GINGERBREAD = Build.VERSION_CODES.GINGERBREAD;
public static final int GINGERBREAD_MR1 = Build.VERSION_CODES.GINGERBREAD_MR1;
public static final int HONEYCOMB = Build.VERSION_CODES.HONEYCOMB;
public static final int ICS = Build.VERSION_CODES.ICE_CREAM_SANDWICH;
public static final int JELLYBEAN = Build.VERSION_CODES.JELLY_BEAN;
public static boolean isMin(int level) {
return LEVEL >= level;
}
}
然后在您的代码中,您可以执行以下操作:
if(Api.isMin(Api.JELLYBEAN) )
doJellybeanStuff();
else if(Api.isMin(Api.ICS) )
doIcsStuff();
else
doOldStuff();
答案 1 :(得分:1)
您可以使用
获取版本int SDK_INT = android.os.Build.VERSION.SDK_INT;
您可以在设置参数
之前检查版本if(SDK_INT < 16) {
someAPIInLowerVersions();
} else {
someJBApi();
}