在 Android 6.0 版本之后,对Apache HTTP 客户端的支持被移除。如果我们的应用正在使用此客户端并针对Android 2.3(API 级别 9)或更高版本,HttpURLConnection
则建议使用 class。据说这个 API 更高效,因为它通过透明压缩和响应缓存减少了网络使用,并最大限度地降低了功耗。如果我们想继续使用Apache HTTP API,首先必须在我们的build.gradl
e 文件中声明如下编译时依赖:
android {
useLibrary 'org.apache.http.legacy'
}
遗留 jar 在Android SDK中,其路径为sdk/platforms/android-23/optional/
. 所以,它几乎是独立的。同时,这个 apache legacy jar 被放入optional/
Android SDK 中,那是optional/
什么?这意味着什么?
我们也知道,我们可以将这个 jar 放入libs
,然后在我们的build.gradle
文件中声明它,如下所示:
dependencies {
compile files('libs/org.apache.http.legacy.jar')
}
当我测试时,这两种方法都按预期工作。
但为什么?
useLibrary
in和compile files('')
in和有什么不一样build.gradle
?只是因为遗留的 jar 文件在 android SDK 中,所以我可以声明useLibrary
使用build.gradle
它?我可以以这种方式使用其他罐子吗?
有人可以提供一些关于这个的想法吗?