基于图形化原因在Android中使用支持库

基于图形化原因在Android中使用支持库,android,android-support-library,Android,Android Support Library,我觉得我对使用支持库有一些疑问。在几个月前开始开发之后,我面临的情况是,我所有的目标设备(比如API>16)都有相当好的一致性工具,足够智能以满足我的需要,但与API=21相比,确实缺少一些UI元素 今天,我从v7支持库中添加了三个新的依赖项。我注意到,正如预期的那样,应用程序大小从200kB提升到3800kB。虽然这并不真的让我担心,但我可以想象,随着规模的增加,依赖依赖依赖关系的流程的平滑度会降低。我选择v7纯粹是为了实现图形化的愿望 我想知道:如果不是严格需要,依赖支持库是否方便?仅仅为了

我觉得我对使用支持库有一些疑问。在几个月前开始开发之后,我面临的情况是,我所有的目标设备(比如API>16)都有相当好的一致性工具,足够智能以满足我的需要,但与API=21相比,确实缺少一些UI元素

今天,我从v7支持库中添加了三个新的依赖项。我注意到,正如预期的那样,应用程序大小从200kB提升到3800kB。虽然这并不真的让我担心,但我可以想象,随着规模的增加,依赖依赖依赖关系的流程的平滑度会降低。我选择v7纯粹是为了实现图形化的愿望

我想知道:如果不是严格需要,依赖支持库是否方便?仅仅为了给(比如)大于4.2的用户提供材质,增加尺寸并失去一些平滑度是否合理?在较旧的操作系统版本上,采用不同的样式并进行一些(有时是艰苦的)工作来模拟新功能会更好吗? (请注意,这里的目标是最大限度地提高应用程序的受欢迎程度)

作为一名消费者,我会选择外观最好的UI,但前提是应用程序能够正常运行。此外,设备越旧(我们这里讨论的是旧设备),用户就越应该关心尺寸和平滑度,因为他的硬件可能会过时


注:我不认为4MB是一个令人不安的尺寸——我要求的是某种“规则”。另外,我读过,我觉得我的问题可能是“建设性的”,虽然是次要的。如果不是,请随意标记它。

使用任何库都是自己完成所有工作的捷径-如果您发现在许多设备和许多API版本上倾诉设计指南、实现和测试更有效,那么就这样做。对于许多人来说,更容易的选择是使用支持库

对于APK大小和“流程的平滑度”,谷歌提供了两个工具缩小(via)和资源缩减。假设您使用的是Android Studio和Gradle,您可以添加:

android {
    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
        }
    }
}
这将去除未使用的方法(启用了
minify
部分)以及未使用的资源(收缩资源
部分)。这对于诸如AppCompat支持库之类的库尤其有用,该库包含许多可能在应用程序中实际不使用的图像资源


显然,缩小/缩小过程需要一些时间,可能会减慢您的开发过程,因此,在该示例中,它们仅在发布版本中启用。

我绝对建议使用支持库。我们在我们的商业应用程序中使用它们,我们不会收到使用旧设备的用户的投诉。但由于我们使用了它们,我们能够非常迅速地采用Android的新功能,其中许多功能很难自己实现。特别是有了棒棒糖,谷歌使得仅仅模仿用户界面变得更加困难


我本来打算对ProGuard添加一些评论,我也推荐它,但Ian的回答中有一些很好的建议,所以我就到此为止。

我不知道这些工具,我一定会查看它们。谢谢,希望这能对其他人有用。我为我的英语感到抱歉。