Sil*_*ght 5 android android-build android-gradle-plugin android-apache-legacy android-uselibrary
Android 6.0发布后,将删除对Apache HTTP客户端的支持.如果我们的应用程序使用此客户端和目标的Android 2.3(API等级9)或更高,HttpURLConnection建议类.据说这个API更有效,因为它通过透明压缩和响应缓存减少了网络使用,并最大限度地降低了功耗.如果我们想继续使用Apache HTTP API,您必须首先在我们的build.gradle文件中声明以下编译时依赖项:
android {
    useLibrary 'org.apache.http.legacy'
}
旧版jar在Android SDK中,其路径为sdk/platforms/android-23/optional/.所以,它几乎是独立的.同时,这个apache传统jar是optional/在Android SDK中推出的,那么它是什么optional/?那是什么意思?
我们也知道,我们可以把这个jar放进去libs,然后在我们的build.gradle文件中声明它:
dependencies {
    compile files('libs/org.apache.http.legacy.jar')
}
当我测试时,两种方法都按预期工作.
但我为什么徘徊.
什么之间的区别useLibrary,并compile files('')在build.gradle?只是由于传统的jar文件采用的是Android SDK,所以我可以声明useLibrary在build.gradle使用它?我可以用HttpURLConnection这种方式使用其他的吗?
我很迷惑.有人可以就此提供一些想法吗?提前致谢.
useLibrary 在编译时将库添加到类路径,但不将库与应用程序捆绑在一起.
compile 依赖关系在编译时在类路径中,另外它们随APK一起提供.
对于Apache HttpClient支持,请useLibrary在使用SDK 23+进行编译时使用.该库已经存在于目标平台中.它只是在编译SDK中没有.