簡體   English   中英

useLibrary的原理與build.gradle中的compile files('')的原理有什么區別?

[英]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')
}

測試時,這兩種方法均按預期工作。

但為什么?

useLibrarycompile files('')有什么build.gradle 只是由於傳統的jar文件采用的是Android SDK,所以我可以聲明useLibrarybuild.gradle使用它呢? 我可以這樣使用其他罐子嗎?

有人可以提供一些想法嗎?

useLibrary在編譯時將庫添加到類路徑中,但不會將庫與應用程序捆綁在一起。

compile依賴項在編譯時位於classpath中,此外,它們還隨APK一起提供。

為了獲得Apache HttpClient的支持,在使用SDK 23+進行編譯時,請使用useLibrary 該庫已經在目標平台中了。 它只是在編譯SDK中不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM