有没有办法在AVD模拟器上模拟Android操作系统升级方案?

abh*_*osh 18 android android-emulator apk

我一直在尝试模拟一个场景,我想在操作系统更新后查看我的Android应用程序的行为.但是在我可以运行实际操作系统更新方案的那一刻我无法访问物理设备,所以我不得不求助于在Android模拟器(AVD)上尝试它.

有没有办法可以在AVD上更新操作系统,就像它是真正的手机一样,并且能够看到我的应用程序的行为方式?


我本质上想要测试的是:

假设我在设备上安装了API级别为21的android.我安装了一个maxSdkVersion21 的应用程序.现在我的设备升级到API级别22.我的应用程序会发生什么?

  • 操作系统是否会默默地将我的应用程序卸载并保持这种状态?
  • 操作系统是否会检查Play商店是否可以使用支持的SDK级别构建我的应用程序并下载并安装它?
  • 操作系统是否至少会给我一个视觉警告或提示该特定应用程序在设备上不兼容,并告诉我接下来我能做什么?

Android开发者文档建议使用maxSdkVersion不是一个好主意,因为在某些情况下,卸载次数会发生.

在Google Play上发布了一个在其清单中声明maxSdkVersion ="5"的应用程序.设备运行Android 1.6(API级别4)的用户下载并安装应用程序.几周后,用户会收到Android 2.0(API级别5)的无线系统更新.安装更新后,系统会检查应用程序的maxSdkVersion并成功重新验证它.该应用程序正常运行.但是,一段时间后,设备会收到另一个系统更新,这次是针对Android 2.0.1(API Level 6).更新后,系统无法再重新验证应用程序,因为系统自身的API级别(6)现在高于应用程序支持的最大值(5).系统会阻止应用程序对用户可见,实际上将其从设备中删除.

警告:不建议声明此属性.首先,没有必要将属性设置为阻止将应用程序部署到Android平台的新版本上的方法.通过设计,该平台的新版本完全向后兼容.您的应用程序应该在新版本上正常运行,前提是它只使用标准API并遵循开发最佳实践.其次,请注意,在某些情况下,声明属性可能会导致在系统更新到更高的API级别后将应用程序从用户的设备中删除.大多数可能安装应用程序的设备将通过无线方式定期进行系统更新,因此在设置此属性之前,应考虑它们对应用程序的影响.

我还想弄清楚接下来会发生什么.什么"在某些情况下"本质上意味着什么?

Pri*_*agb 0

我创建了 2 个演示应用程序来使用模拟器检查您的问题。我已经更新了模拟器的 API 级别并重新启动它,因为每个设备在系统更新后都会重新启动。请观看视频发生了什么:)

操作系统会默默地卸载我的应用程序并保持这种状态吗?

是的应用程序被卸载

操作系统是否至少会给我一个视觉警告或提示,表明该特定应用程序在设备上不再兼容,并告诉我下一步可以做什么?

应用程序在没有任何消息或警告的情况下被卸载

操作系统是否会检查 Play 商店以查看具有支持的 SDK 级别的应用程序版本是否可用,然后下载并安装该版本?

我认为这可以检查该应用程序是否在游戏商店中可用。所以我无法对此进行测试。如果有人知道这个问题的答案请评论