2014-12-03 41 views
1

我觉得我对使用支持库有一些疑问。几个月前开始开发的时候,我面临的情况是,我的所有目标设备(假设API> 16)都具有相当好的一致性工具,足够聪明以适应我的需求,但与API = 21。由于图形原因在Android中使用支持库

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

我想知道:如果不是严格需要依赖支持库,是否方便?增加大小并失去一些平滑性,只是为了将材料带入> 4.2用户是否合理?单独的样式并采取一些(有时是艰苦的)工作来模拟较旧的操作系统版本的新功能会更好吗? (请注意,这里的目标是最大化该应用的受欢迎程度)。

作为一个消费者我自己,我会去看看最好看的用户界面,但只有当应用程序运行它应该。另外,设备越旧(我们在这里讨论的是旧设备),用户应该关心的是尺寸和平滑度,因为他的硬件会过时。

P.S.:我不认为4MB是一个令人不安的尺寸 - 我正在寻求某种“规则”。另外,我读here,我觉得我的问题可能是“建设性”,虽然是次要的。如果不是,请随时举报。

回答

2

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

对于APK的大小和“流程的平滑度”,Google提供了两种缩小工具(通过ProGuard)和根据this Google+ post announcing their availability缩小资源。假设你正在使用的Android Studio和摇篮,你可以添加:

android { 
    buildTypes { 
     release { 
      minifyEnabled true 
      shrinkResources true 
     } 
    } 
} 

这将去掉未使用的方法(在minifyEnabled部分),以及未使用的资源(shrinkResources部分)。这可能对图书馆尤其有用,例如AppCompat支持库,其中包含许多图像资源,而您在应用程序中实际上可能不会使用这些资源。

显然,缩小/缩小过程需要一些时间,可能会减慢开发过程,因此为什么只在该示例中为发布构建启用它们。

+0

我不知道那些工具,我一定会检查出来。谢谢,希望这对其他人有用。我很抱歉我的英语。 – natario 2014-12-04 16:43:35

0

我肯定会推荐使用支持库。我们在我们的商业应用中使用它们,我们不会收到使用旧设备的用户的投诉。但是因为我们使用它们,我们能够很快地采取新的Android功能,其中很多功能将非常难以实施。特别是对于棒棒堂,谷歌正在让它更难以模仿用户界面。

我打算添加一些关于ProGuard的评论,我也推荐他,但伊恩的回答在这些方面有一些很好的建议,所以我会留下它。