[英]React Native: What's the difference between gradle references in gradle-wrapper.properties and build.gradle?
[英]What's the difference between principles of useLibrary and compile files('') in build.gradle?
在Android 6.0发行之后,将删除对Apache HTTP客户端的支持。 如果我们的应用程序正在使用此客户端,并且定位到Android 2.3(API级别9)或更高版本 ,则建议使用HttpURLConnection
类。 据说此API效率更高,因为它通过透明压缩和响应缓存减少了网络使用,并最大程度地降低了功耗。 如果要继续使用Apache HTTP API ,则必须首先在build.gradl
e文件中声明以下编译时依赖项:
android {
useLibrary 'org.apache.http.legacy'
}
旧版jar位于Android SDK中 ,其路径为sdk/platforms/android-23/optional/
。 因此,它几乎是独立的。 同时,此apache旧版jar放在Android SDK中的optional/
中,那么什么是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
使用它呢? 我可以这样使用其他罐子吗?
有人可以提供一些想法吗?
useLibrary
在编译时将库添加到类路径中,但不会将库与应用程序捆绑在一起。
compile
依赖项在编译时位于classpath中,此外,它们还随APK一起提供。
为了获得Apache HttpClient的支持,在使用SDK 23+进行编译时,请使用useLibrary
。 该库已经在目标平台中了。 它只是在编译SDK中不存在。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.