我对android sdks有疑问。我正在开发一个Android应用程序,它必须在Android 2.3.3及更高版本上运行。
因为我需要使用“android-support-v7-appcompat”库,我需要使用Android 4或更高版本编译项目。如果我尝试使用Android 2.3.3进行编译,则该项目无法编译。
那么如果我使用Android 4编译项目会发生什么?它能在Android 2.3.3上运行吗?
当然我会在AndroidManifest中设置。
答案 0 :(得分:1)
在任何情况下,您都应该在清单文件中正确定义minSDK和targetSDK。当你使用API 19(KitKat)进行编译并设置为minSDK API 10时,一切都应该适用于2.3.3 Android。
但是如果你在你的代码中使用了一些方法,那些在2.3.3上没有的常量,你将在Eclipse中得到警告/错误(我也在Android Studio中打赌)。例如:
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN_MR2) {
// before JELLY_BEAN_MR2 code;
// methods, constants available for example from API 1
} else {
// after JELLY_BEAN_MR2 code
// here are new methods,constants available from GINGERBREAD_MR1 and after
}
所以这里你的应用程序将以两种不同的方式执行某些操作,具体取决于它运行的Android版本...如果你不使用等于或高于JELLY_BEAN_MR2的API进行编译,你甚至无法编译,因为之前,常量JELLY_BEAN_MR2在API中不可用...但是当您使用更高的API进行编译时,一切都将正确编译,应用程序将在早期版本上运行而不会出现问题。
如果你留下这样的代码警告会出现,但@SuppressLint(“NewApi”)在调用方法之前应该删除它而没有其它问题。
希望它有所帮助,现在很清楚......;)
干杯
答案 1 :(得分:0)
取决于您选择的目标:
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />