【问题标题】:apk compiled for targetsdk 19(kitkat), works on sdk v21(Lollipop) device为targetsdk 19(kitkat)编译的apk,适用于sdk v21(Lollipop)设备
【发布时间】:2017-06-26 09:43:57
【问题描述】:
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 设备上。 这是意料之中的行为吗?

【问题讨论】:

  • 是的,这是预期的行为。运行此应用时,设备将模拟 API-19 环境。
  • 是的,因为它不限制最大 SDK。
  • @Henry,这会导致应用程序故障。比如说,API 在 21 上被贬低,会产生错误的结果。
  • 不,正如我所说,设备将提供旧功能(嗯,至少只要旧 API 不太旧)。

标签: android android-studio android-version


【解决方案1】:

这种行为是否正常? 是的。您仍然可以在较新的操作系统版本上使用较低的目标 sdk 版本进行 apk,这是向后兼容的原则。

更多信息可以查看this

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

【讨论】:

    猜你喜欢
    • 2016-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2016-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多