APK API级别是否覆盖JAR API级别

时间:2015-03-09 16:36:01

标签: java android api sdk

我有使用API​​ 19构建的Android APK文件。此APK包含使用API​​ 16构建的JAR。当我在设备上运行此APK时,我注意到JAR中包含的API调用的行为与它们在API中的行为相同级别19.具体的API是AlarmManager的set方法。此方法在API 16和API 19之间表现不同。

基于这种观察,我得到的印象是,在运行时,系统决定的API级别是基于APK的API级别。 APK中包含的JAR的API级别被APK的API级别覆盖。这是对的吗?

以下是我在AlarmManager的集合API的Android文档中找到的内容:

注意:从API 19开始,传递给此方法的触发时间被视为不精确:警报将不会在此时间之前传递,但可能会延迟并在稍后传递。 targetSdkVersion在API 19之前的应用程序将继续获得之前的警报行为:所有计划的警报都将被视为完全警告。

我不清楚APK的targetSdkVersion是否会覆盖APK中嵌入的JAR的targetSdkVersion。

1 个答案:

答案 0 :(得分:0)

我找到了解决这个问题的方法。 APK文件中的目标SDK版本会覆盖包含的JARS中的目标SDK版本。

具体来说,在上述情况下,当我将APK的targetSdkVersion更改为16时,AlarmManager的设置API开始表现为API 16中的情况。当我将APK的targetSdkVersion更改为19时, AlarmManager的API设置与API 19中的一样。