在同一个项目中支持3.0和更低级别

时间:2011-03-18 14:15:17

标签: android android-layout google-play android-3.0-honeycomb android-fragments

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

2 个答案:

答案 0 :(得分:3)

  

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

是的,按照威利斯先生的建议,通过反思或条件类加载。 Here is a sample application为操作栏演示了这一点,也是API Level 11的新功能。

  

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

使用Android compatibility library

  

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

是,通过-vNN资源集后缀(例如res/layout-v11)。但是,您应该尽量减少这种情况。

  

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

没有

答案 1 :(得分:0)

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-marketplace与之相同   包名?

您不能对两个不同的应用使用相同的包名称。

如果您的代码根据您使用的API版本而有很大差异,那么您可能希望分叉代码,然后在您确信大部分用户已升级到所需的API级别后再将其合并。