【发布时间】:2020-03-29 19:31:49
【问题描述】:
OkHttp 具有 recently dropped support for Android 4,但通过 separate 3.12.x branch 除外,它将在 2021 年 12 月结束之前得到支持(并且可能只会收到重要的更新或错误修复)。
假设您希望像我一样继续支持 Android 4,因为 10% 的 Android 用户群仍然是一个很大的比例,并且不想陷入死胡同。 .
不是卡在所有 sdk 版本的 3.12.x 分支上,有没有什么方法可以使用 sdk < 21 的 3.12 分支和 sdk >= 21 的 3.13 分支,有点像当然可以将HttpUrlConnection 用于sdk < 21 和OkHttp 3.13 用于sdk >= 21?
【问题讨论】:
-
是的,这是可能的。制作两个build flavors,一个带有
minSdkVersion 21和OkHttp 3.13+,另一个带有默认minSdkVersion和OkHttp LeakCanary Readme 请记住,您不能在src/main中的公共代码中使用新的 API。仅在src/<newOkHttpFlavor>. -
有趣。但我的项目中也有不同的风格:
free、pro、devfree和devpro,每个都有略微不同的设置。那么,由于我们需要拆分每一个...free-okhttp-old、free-okhttp-new等,因此采用您的方法是否不可能(或非常困难)?如果新的3.13分支是一个完全独立的库(可能是okhttp4),这样我们可以独立使用它,并在基于android.os.Build.VERSION.SDK_INT的代码中选择它们,那会不会容易很多? -
搜索“风味尺寸”。看起来你应该有 3 个维度,“环境”与“生产”和“开发”,“货币化”与“免费”和“付费”,以及“sdk”与“遗留”和“棒棒糖”。不要将其限制为 okhttp。各种事情都需要 API 21。不要在运行时决定这个。未使用的代码根本不应该在 apk 中。
-
谢谢,这很有帮助。听起来我需要稍微调整一下我的项目。非常感谢您的帮助。
-
@EugenPechanec 如果您将您的第一条评论作为答案,我可以接受!