如果我的Android项目只有v21布局,它会支持旧设备吗?

如果我的Android项目只有v21布局,它会支持旧设备吗?,android,xml,android-studio,layout,material-design,Android,Xml,Android Studio,Layout,Material Design,假设我的Android项目中有以下布局资源文件: activity_create_group.xml (v21) activity_create_group.xml (large-v21) activity_create_group.xml (small-v21) activity_create_group.xml (xlarge-v21) activity_create_group.xml (xlarge-land-v21) 这是否意味着低于API 21的设备将崩溃?或者,通过自动删除某些特

假设我的Android项目中有以下布局资源文件:

activity_create_group.xml (v21)
activity_create_group.xml (large-v21)
activity_create_group.xml (small-v21)
activity_create_group.xml (xlarge-v21)
activity_create_group.xml (xlarge-land-v21)
这是否意味着低于API 21的设备将崩溃?或者,通过自动删除某些特定于API的功能,例如
android:elevation=“4dp”
(v21)和
android:fontfamine=“sans serif light”
(v16),此文件是否仍支持旧设备

对这件事的判决是什么

如果我有这些附加功能,并且还想支持较旧的操作系统,我还应该包括:

activity_create_group.xml (v16)
activity_create_group.xml (large-v16)
activity_create_group.xml (small-v16)
activity_create_group.xml (xlarge-v16)
activity_create_group.xml (xlarge-land-v16)
……和:

activity_create_group.xml
activity_create_group.xml (large)
activity_create_group.xml (small)
activity_create_group.xml (xlarge)
activity_create_group.xml (xlarge-land)
似乎有点过分了。此外,还有很多繁琐的复制粘贴。是否有用于以这种方式生成布局文件的通用批处理脚本?Android Studio能处理这个问题吗?例如,Android开发工作室的UI团队如何处理所有这些资源文件

降级时,我通常必须更改几个功能,例如更改以下内容:

android:paddingEnd="10dp"
android:paddingStart="25dp"
…致:

android:paddingRight="10dp"
android:paddingLeft="25dp"
android:paddingEnd="10dp"
android:paddingStart="25dp"
如果我真的想支持每个设备和每个特定于API的功能,您需要为每个活动维护15个布局文件。我不能接受这一点,但考虑到我从未在一家机构工作过,而该机构可能对此非常敏感,我不确定在哪里可以找到此类信息


总之,我的问题是第一个如果我只提供上面提供的v21布局文件,哪些设备将不受支持?

只要用户界面尺寸不受影响,并且您不必担心其他样式更改(如标高),那么您就可以安全地继续编写单个布局文件,而无需根据API对其进行分类

IDE会警告您有关API的信息,以便您可以使用该API的替代项,例如使用9面片阴影在较低的API中创建提升效果,但如果您的应用程序可以在没有这些额外的设计奢侈品的情况下工作,则始终建议使用单个默认布局文件


对于
paddingStart
&
paddingLeft
marginstat
&
marginLeft
而言,将这两个属性都包含在一个xml中而不是创建两个具有相关属性的xml是无害的

试着用android虚拟设备模拟器测试它们,创建一个虚拟设备,例如带有冰淇淋三明治的nexus 4,并将应用程序与之分离。

好吧,所以即使我在布局文件中包含那些设计奢侈品,但这些设计奢侈品并没有按照API分类,这也不会对无法处理它们的设备造成干扰?我想确认的是,这些仅仅是对开发者的警告。干杯。我要是能在这个老家伙的联想上拥有虚拟化就好了;PIntel Core i5-6300 CPU@2.40 GHz 64位Windows 7 12.0 GBRAM@santafebound您可以尝试在启动时启用虚拟化,然后从SDK manager安装intel haxm。谷歌提供了前者的步骤。您的联想能够在santafebound进行虚拟化,请按照Mohammed的建议在bios中启用虚拟化