停止使用 AppCompat
Stop using AppCompat
当我第一次注意到我已经达到最大级别的方法时,我开始考虑我应该从依赖项中删除什么。我假设我不必使用支持库,因为我的最小目标是 17。
我将 Activity 从 AppCompatActivity 更改为 Activity,删除了对 v7 的依赖,但样式出现问题,因为此样式 @android:style/Theme.Holo.Light.DarkActionBar"
给出了旧的操作栏。
所以我想知道,如何获得更新的操作栏,删除支持库是一种好习惯吗?
您的问题有 2 个解决方案。
1) 使用 Activity 而不是 AppCompatActivity,但是你将只有 API 级别 21+ 中的 "newer" 操作栏(因为它仅受支持21 岁以上)。
为此,您必须为 API 17+ 和 API 21+ 设置不同的样式表,因此 API 17-20 将使用旧样式,并且21+ 将使用新的。
2) 使用 AppCompatActivity,并在所有 API 级别上保留 "newer" 操作栏,然后启用 Proguard。 Proguard 将删除所有未使用的 类、方法等。这将使您远远低于限制。正确设置需要一些时间,但这是迄今为止解决问题的最佳方法。
我最近没有设置它,但 google 应该可以帮助你。
我认为您最好使用 AppCompatActivity,这样您就可以遵守 material 设计准则。如果您达到 DEX 限制,您可以在 proguard and/or multidex 中使用 minify,将您的 DEX 拆分为两个或多个独立的 DEX 文件,每个文件限制在 64K。现在添加multidex很简单,大家可以看here
当我第一次注意到我已经达到最大级别的方法时,我开始考虑我应该从依赖项中删除什么。我假设我不必使用支持库,因为我的最小目标是 17。
我将 Activity 从 AppCompatActivity 更改为 Activity,删除了对 v7 的依赖,但样式出现问题,因为此样式 @android:style/Theme.Holo.Light.DarkActionBar"
给出了旧的操作栏。
所以我想知道,如何获得更新的操作栏,删除支持库是一种好习惯吗?
您的问题有 2 个解决方案。
1) 使用 Activity 而不是 AppCompatActivity,但是你将只有 API 级别 21+ 中的 "newer" 操作栏(因为它仅受支持21 岁以上)。
为此,您必须为 API 17+ 和 API 21+ 设置不同的样式表,因此 API 17-20 将使用旧样式,并且21+ 将使用新的。
2) 使用 AppCompatActivity,并在所有 API 级别上保留 "newer" 操作栏,然后启用 Proguard。 Proguard 将删除所有未使用的 类、方法等。这将使您远远低于限制。正确设置需要一些时间,但这是迄今为止解决问题的最佳方法。
我最近没有设置它,但 google 应该可以帮助你。
我认为您最好使用 AppCompatActivity,这样您就可以遵守 material 设计准则。如果您达到 DEX 限制,您可以在 proguard and/or multidex 中使用 minify,将您的 DEX 拆分为两个或多个独立的 DEX 文件,每个文件限制在 64K。现在添加multidex很简单,大家可以看here