【问题标题】:Supported android version and compiling android version?支持的android版本和编译android版本?
【发布时间】:2012-09-05 08:17:38
【问题描述】:

我去试试aviary,在文档中找到了这些词:

Aviary Android SDK 支持 Android 2.2+ 作为 minSdkVersion,但它必须使用 Android 4.0(API 级别 14)作为目标 sdk 进行编译。这意味着您的应用程序必须在“Project Build Target”Eclipse 面板中选择“Android 4.0”。

我很困惑为什么它必须使用android 4.0编译同时支持Android 2.2?如果我用它写一个应用程序,它可以在android 2.2 手机上运行吗?如果是,为什么需要 android 4.0 编译?

【问题讨论】:

  • 简单的排序行,如果您通过 android 4.0 编译您的应用程序,它也将在具有 android 2.2 或更高版本的设备上运行而不会失败。 因此,请让您的应用程序在Android 4.0 并在清单文件中写入minSdkVersion=2.2..
  • 为什么不能使用android 2.2编译,如minSdkVersion
  • 因为如果设备中可用,它可能会利用更新版本的 android 的 API 调用
  • 支持一些 2.2 中不可用的功能和 API。

标签: android version aviary


【解决方案1】:

AndEngine 需要 Android 4.0 才能编译,但它会检查手机的 Android 版本是否正在运行,以确保它只会调用与该版本兼容的 API。因此,尽管它是使用 android 4.0 编译的,但它可以在 Android 2.3 设备中正常运行。我想这同样适用于 Aviary。

这个链接很有用:http://developer.android.com/training/basics/supporting-devices/platforms.html

【讨论】:

  • Android使用Java,是静态类型语言(无宏),AndEngine如何检查版本,只调用指定版本支持的API?
  • 我的意思是在Java中,旧的JVM可能会拒绝运行新的JVM生成的类字节,Dalvik VM没有这个限制?
  • 我刚刚测试了一些Java代码,发现它是一样的。我误解了java :)
  • 确实没有宏,但是有反射。这允许在获取Method 对象之前检查方法,然后在其上调用invoke
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-22
  • 1970-01-01
  • 2018-06-21
  • 2013-04-05
  • 2016-10-21
相关资源
最近更新 更多