android - 出于图形原因在 Android 中使用支持库

标签 android android-support-library

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

今天我从 v7 支持库中添加了三个新的依赖项。我注意到,正如预期的那样,应用程序大小从 200kB 增加到 3800kB。虽然这并没有真正让我担心,但我可以想象,随着大小的增加,依赖依赖关系的过程的流畅性会降低。我选择 v7 是出于纯粹的图形愿望。

我想知道:如果不是严格需要,依赖支持库是否方便?增加尺寸并失去一些平滑度是否合理,只是为了将 Material 带给 >4.2 的用户?拥有不同的风格并采取一些(有时是艰苦的)工作来模拟旧操作系统版本上的新功能会更好吗? (请注意,这里的目标是最大限度地提高应用程序的知名度)。

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

P.S.:我不认为 4MB 是一个麻烦的大小 - 我要求某种“规则”。另外,我读过here ,我觉得我的问题可能是“建设性的”,尽管是次要的。如果不是,请随意标记它。

最佳答案

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

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

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

这将去除未使用的方法(minifyEnabled 部分)以及未使用的资源(shr​​inkResources 部分)。这对于 AppCompat 支持库等库特别有用,它包含许多您可能不会在应用程序中实际使用的图像资源。

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

关于android - 出于图形原因在 Android 中使用支持库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27279609/

相关文章:

android - 错误 :Execution failed for task ':app:packageAllDebugClassesForMultiDex' in Android Studio

android - 迁移到 Android Studio 包括 libpd

android - Samsung Android BLE 多重读写

android - 添加 gradle 依赖以支持 android.util.ArrayMap

android - 为什么我不能导入 'androidx.core.app.NotificationChannelCompat' ?

android - 使用不忽略夜间限定符的 ContextCompat 以编程方式从资源中获取颜色

Android Espresso 测试错误 : No static method loadSingleServiceOrNull()

Java:数据类型类似于javascript对象?

android - 终止服务后通知仍在栏中

android - 错误 : "duplicate entry: android/support/v7/appcompat/R$anim.class"