在同一个项目中支持3.0及更低版本

问题描述:

  1. 我在android上有一个9级的应用程序,我想知道我是否可以在同一个项目中使用11级(Android 3.0)的新功能?
  2. 对于3.0平板电脑版本,我的布局将包含片段。我如何使用这些片段并允许9级版本成功构建和运行?
  3. 我可以为不同的API级别(在res/layout中)定义不同的布局吗?
  4. 如果我保留2个版本,一个用于手机的其他平板电脑,我可以使用相同的软件包名称将它添加到android-marketplace中吗?

我在android上有一个9级的应用程序,我想知道我是否可以在同一个项目中使用11级(Android 3.0)的新功能?

是的,通过反射或条件类加载,如威利斯先生所建议的。 Here is a sample application演示了这个动作栏,也是新的API级别11.

对于3.0平板电脑版本,我的布局将包含片段。我如何使用这些片段并允许9级版本成功构建和运行?

使用Android compatibility library

我可以为不同的API级别(在res/layout中)定义不同的布局吗?

是的,通过-vNN资源集后缀(例如res/layout-v11)。不过,你应该尽量减少这个。

如果我保留2个版本,其中一个用于手机平板电脑,我可以使用相同的软件包名称将它添加到android-marketplace中吗?

+0

号是否有针对Android兼容性库的任何文档? – FARH 2011-03-24 17:24:58

+0

@FARH:通常,它与常规片段相同,但除了安装库时安装的代码示例以外,库中没有太多具体内容。 – CommonsWare 2011-03-24 23:21:11

This question答案似乎有帮助。

官方文档还包括 Backward Compatibility for Applications的解决方案。

尝试:http://android-developers.blogspot.com/2009/04/backward-compatibility-for-android.html

使用反射建议,它允许您以编程方式搜索的类和方法在运行时存在。

至于布局,请尝试检出Supporting Multiple Screen Sizes。有不同的版面尺寸,例如您可以使用的layout-xlarge

如果我把2个版本,一个是平板电脑 其他的手机,我可以添加到 的Android的市场具有相同 包的名称?

对于两个不同的应用程序,不能使用相同的包名称。

如果您的代码根据您使用的API版本而有很大不同,那么您可能希望分叉代码,然后在您确信大部分用户基础已升级到所需的API级别后重新合并它。