[英]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.