2012年11月20日 星期二

[Android] 在Android中要進行HTTP網路連線時,該使用HttpClient還是HttpURLConnection?

 相信開發Android的人都知道,在進行HTTP網路連線時有兩個選擇可以使用:一是內建於基本Java函式庫中的java.net.HttpURLConnection類別;另一個則是Apache Commons下的HttpClient 函式庫。那麼,我們應該選用哪一個來進行HTTP連線呢?

 在做這個選擇之前,不要被所謂的「基本Java函式庫」(base Java library) 這個名字給騙了;所有被放進 Android application framework 中的類別(不管是不是基本的)都會被Google的Android開發團隊進行檢視並針對Android平台環境進行最佳化。所以,問題來了,當每個Android在進行平台升級與效能改善時,由於Apache HttpClient 函式庫所包含的類別數量太過龐大,因此難以針對Android平台對其進行修改 (甚至修bug);官方也建議,如果是在Android 3.0之後的裝置進行開發的話,請盡量使用HttpURLConnection

相關的資訊與討論可見:
Android官方開發者blog文章:http://android-developers.blogspot.tw/2011/09/androids-http-clients.html
官方blog文章簡中翻譯:http://ericbaner.iteye.com/blog/1183998
stackoverflow相關討論:http://stackoverflow.com/questions/9633236/apache-httpclient-4-x-vs-httpurlconnection-which-one-is-faster-on-android

沒有留言:

張貼留言