2016-02-13 73 views
0

我有一個嘗試從服務器獲取圖像的android應用程序。將圖像作爲base64編碼的bytearray或其路徑傳遞

那麼哪一個能夠提供更好的性能?爲什麼? (在時間和空間上)

  • 傳遞字節陣列作爲響應於Android應用

  • 在服務器傳遞的圖像的唯一路徑作爲響應和檢索圖像從Android應用程序的網址。
+0

到底它是相同的,因爲當你傳遞一個url時,它將被下載爲一個字節數組 –

+0

只傳遞路徑服務器中的圖像 –

+0

爲什麼呢? –

回答

0

答案取決於圖像的質量和尺寸......假設你已經創建了一個圖像庫應用程序,從服務器獲取圖像,並且你想要非常高質量的可下載圖像....那麼你應該使用圖像路徑

如果你只是用圖像的縮略圖,或者如果用戶沒有使用的圖像,你可以使用base64編碼圖像的應用程序,因爲它的加載時間非常快,重疊分離是由應用程序完成的,而不是通過網絡完成的......即通過路徑加載整個圖像需要時間和大量數據,而base64編碼圖像就像商場字符串,這將被應用程序轉換爲圖像,並將儘量減少加載時間..

+0

這兩種方法都會產生高質量的圖像嗎? –

+0

編碼的圖像不會產生高質量的圖像 –

+0

爲什麼? –

0

我會建議保存/檢索圖像從/到服務器的路徑。

有時圖像尺寸可能太大,無法將圖像檢索到您的android應用程序,但是如果您將圖像路徑存儲到服務器,則不會遇到問題。

我總是將圖像存儲在一個文件夾中,只保存圖像路徑到服務器。它使數據庫規模很小,查詢數量少,查詢結果的大小很小,這都意味着數據庫執行速度更快。

0

將圖像編碼爲base64字符串並將其包含在您的響應中是一種常見做法。

但是,如果您選擇僅包含圖像的URL,則可以從傳輸的大小/速度中獲益,因爲base64流的大小是原始二進制流的4/3(33%開銷)。

此外,在這種情況下,您可以緩存圖像。