为 targetsdk 19(kitkat) 编译的 apk,适用于 sdk v21(Lollipop) 设备

apk compiled for targetsdk 19(kitkat), works on sdk v21(Lollipop) device

productFlavors {
    kkandbelow {
        minSdkVersion 19
        targetSdkVersion 19
        applicationId 'bla.bla'
        versionCode 1
        versionName "1.0"
    }
    landabove {
        minSdkVersion 21
        applicationId 'bla.bla'
        versionCode 1
        versionName "1.0"
    }
}

flavor kkandbelow 编译的 apk 是 android-21(marshmallow) 上的有效安装程序文件? 虽然 targetSdkversion 指定为 19,但 apk 仍在安装在 androd 5.0.1 设备上。 这种行为是预期的吗?

这种行为是预期的吗? 是的。您仍然可以在较新的 OS 版本上使用较低目标 sdk 版本的 apk,这是向后兼容原则。

更多信息您可以查看this

在较新版本上安装旧 apk 时,您应该担心的唯一一件事是主要的安全更改,如文件系统访问、运行时权限等。这些可能导致崩溃,需要在代码中采用.