Android 6.0發佈後,將刪除對Apache HTTP客戶端的支持。如果我們的應用程序使用此客戶端並且目標爲Android 2.3(API等級9)或更高,則建議使用HttpURLConnection
類。據說這個API更高效,因爲它通過透明的壓縮和響應緩存來減少網絡使用,並且最大限度地降低了功耗。如果我們wonna繼續使用Apache的HTTP API S,你必須首先聲明以下編譯時依賴於我們的build.gradl
ë文件:build.gradle中useLibrary和編譯文件('')的原理有什麼區別?
android {
useLibrary 'org.apache.http.legacy'
}
遺留罐子是Android SDK中,其路徑是sdk/platforms/android-23/optional/
。所以,它幾乎是獨立的。同時,這個apache遺留的jar在Android SDK中被放入optional/
,那麼什麼是optional/
?那是什麼意思?
此外,我們知道,我們可以把這個罐子到libs
,然後宣佈它在我們build.gradle
文件是這樣的:
dependencies {
compile files('libs/org.apache.http.legacy.jar')
}
這兩種方法都工作時,我測試的預期。
但我徘徊爲什麼。
useLibrary
和compile files('')
在build.gradle
之間有什麼區別?僅僅是因爲遺留的jar文件在android SDK中,所以我可以在build.gradle
中聲明useLibrary
來使用它?我能以這種方式使用其他jar
嗎?
我很困惑。有人可以提供一些關於這方面的想法嗎?提前致謝。
你是什麼意思'圖書館已經在目標平臺'?如果我的'targetSDK'是23+,是這樣嗎? – SilentKnight
它在預裝在設備上的庫中。 TargetSDK控制啓用了向後兼容模式,而不是安裝什麼庫。 – laalto
那麼,預裝在設備上的庫和我們開發的Android SDK不是一回事嗎?你能詳細描述一下嗎? – SilentKnight