一个项目有多个AndroidManifest.xml文件?

一个项目有多个AndroidManifest.xml文件?,android,compatibility,android-manifest,Android,Compatibility,Android Manifest,在过去的几个月里,我一直在开发一款针对Cupcake的Android应用程序(Android 1.5,API Lvl 3),一切都运行得很好(总的来说,这是一款相当简单的应用程序) 然而,最近我注意到我想做两件事: 将权限限制为仅使用Internet(对于API Lvl 3,它使用2个其他权限,尽管在清单xml中仅定义了Internet权限) 允许用户将应用程序移动到SD卡/外部存储器 这两个更改都非常简单,AndroidManifest.xml 我找到的解决办法是: 要限制权限,请添加: 要

在过去的几个月里,我一直在开发一款针对Cupcake的Android应用程序(Android 1.5,API Lvl 3),一切都运行得很好(总的来说,这是一款相当简单的应用程序)

然而,最近我注意到我想做两件事:

  • 将权限限制为仅使用Internet(对于API Lvl 3,它使用2个其他权限,尽管在清单xml中仅定义了Internet权限)
  • 允许用户将应用程序移动到SD卡/外部存储器
  • 这两个更改都非常简单,
    AndroidManifest.xml

    我找到的解决办法是:

  • 要限制权限,请添加:
  • 要允许用户将应用程序移动到SD卡,请添加(到
    manifest
    标记):
    android:installLocation=“auto”
  • 然而,#1的解决方案需要API Lvl 4(Android 1.6),而#2的解决方案需要API Lvl 8(Android 2.2)

    那么,这是否意味着如果我想要上面列出的#1和#2,我的应用程序将只兼容安卓2.2+

    或者,有没有一种方法可以为一个项目提供多个AndroidManifest.xml文件?(我知道该应用程序的实际代码适用于Android 1.5,仅仅为了清单文件中的几行额外代码就将其排除在外似乎是一种浪费)


    谢谢

    关于将应用程序移动到SD卡。这不是以前。安卓1.5推出时,还没有这样的概念。这是安卓1.5的新概念

    我不认为你能为安卓1.5提供这个功能

    谢谢
    Deepak

    关于将应用程序移动到SD卡。这不是以前。安卓1.5推出时,还没有这样的概念。这是安卓1.5的新概念

    我不认为你能为安卓1.5提供这个功能

    谢谢
    Deepak

    添加
    android:installLocation=“auto”
    不会对向后兼容性产生负面影响——它只会被旧版本的android忽略

    但是,设置
    将阻止该应用程序在Android 1.5设备上安装或在市场上显示。这就是它的全部目的


    如果您需要对不同的SDK版本拥有不同的权限集,那么很遗憾,您需要两个单独的项目和两个单独的市场列表。您可以通过在
    标签中添加
    android:maxSdkVersion=“3”
    来防止应用程序的纸杯蛋糕版本在较新的设备上显示。

    添加
    android:installLocation=“auto”
    不会对向后兼容性产生负面影响——旧版本的android只会忽略它

    但是,设置
    将阻止该应用程序在Android 1.5设备上安装或在市场上显示。这就是它的全部目的


    如果您需要对不同的SDK版本拥有不同的权限集,那么很遗憾,您需要两个单独的项目和两个单独的市场列表。您可以通过在
    标记中添加
    android:maxSdkVersion=“3”
    来防止应用程序的杯形蛋糕版本在较新设备上显示。

    使用android软件包重命名,以便拥有两个不同的软件包,即同一应用程序在一个项目中具有不同的AndroidManifest.xml文件。请参见

    使用Android软件包重命名,以便拥有两个不同的软件包,即同一个应用程序在一个项目中具有不同的AndroidManifest.xml文件。请参见

    如果你想使用第二种东西,那么你的应用程序的minsdkVersion=8。一个项目中没有两个manifeat文件请参见下文
    android:installLocation
    不会影响向后兼容性--
    minSdkVersion
    会影响向后兼容性。如果你想使用第二个东西,那么你的应用程序的minSdkVersion=8。一个项目中没有两个Manifeat文件,请参见下文
    android:installLocation
    不会影响向后兼容性--
    minSdkVersion
    会影响向后兼容性。就个人而言,我建议只向一个项目添加所有必需的权限。虽然肯定不是很理想,但Android 1.5的市场规模还不足以让拆分项目以删除几个权限变得值得,imho.hmm,我也可以做targetSdkVersion=“4”我相信删除权限。我遇到的问题是,将这些添加到清单文件中似乎使其无法使用Android 1.5进行编译。。希望它们(特别是installLocation=auto)可以被忽略。。。但这似乎是不可能的:(Android 1.5 Cupcake的SDK版本是3。将
    放在清单中绝对阻止Android 1.5使用该应用程序。这是
    minSdkVersion
    设置的唯一目的——它定义了该应用程序可以安装的最低SDK版本。
    targetSdkVersion
    几乎是该应用程序使用的最高SDK版本。)它让Android知道可能需要在较新的SDK版本上为应用程序启用兼容性功能,以考虑开发人员无法预料的SDK更改。
    maxSdkVersion
    完全排除较新的SDK。我有
    Android:installLocation=“auto”
    设置在我自己的一个应用程序上。它在安卓1.5上运行完美,在安卓1.5市场上可见。很酷,很高兴知道-我今晚会再次尝试。谢谢:)就我个人而言,我建议将所有必需的权限添加到一个项目中。虽然肯定不理想,但Android 1.5的市场规模还不足以让拆分项目以删除几个权限变得值得,imho.hmm,我也可以完成targetSdkVersion=“4”我认为应该删除权限。我遇到的问题是,将这些权限添加到清单文件中似乎使其无法使用Android 1.5进行编译。我希望可以忽略这些权限(尤其是installLocation=auto),但这似乎是不可能的:(Android 1.5 Cupcake的SDK版本是3。将
    放在清单中绝对可以防止