Glide開源庫存在的暗坑

2021-08-04 21:55:17 字數 747 閱讀 4400

glide庫想必大家都非常喜歡使用,無論是載入gif或者bitmap圖,都如絲般順滑!!! 但是,但是,就在這個但是上,你是否遇到過glide載入失敗的情況呢?? 

問題追蹤過程:

1.url位址有問題?  抓到url放到瀏覽器,完全能正常展示

2.glide有bug? 但是別的手機都是ok,都能正常展示呢? 這怎麼解釋?

3.仔細檢視log日誌記錄,你能發現一行這樣的錯誤日誌  , android  ua   0x5****  can not .....芸芸 ,意思請求中的ua有問題 

順藤摸瓜,debug斷點跟蹤發現,的確,我的手機ua有問題,有什麼問題呢?  帶有中文!!有中文!!!有中文!! glide開源庫對有中文ua支援不了!!

怎麼辦呢?? google一番,發現兩種解決方案:

1.方法一是利用glidemodule , 網上**很多,不再贅述,基本搜尋: glide  自定義header頭,就能搜尋很多

2.方法二:

glideurl glideurl = new glideurl(revert(realurl), new lazyheaders.builder()

輕鬆愉快解決!!!

總結:目前主流的手機裝置廠商ua基本不會出現中文的情況,即使出現了,我們在okhttp請求中也會對ua進行urlencode,但是glide沒考慮到這種情況,還好良好的擴充套件效能支援設定!!!

使用glide填過的各種坑

使用版本glide 3.7.0 坑一 無法手動重新整理快取,只能改變key新增自定義簽名,我是將頭像版本號放到key中了,因為取頭像是根據手機號取的,頭像url路徑並不會變,而且首次載入時並不能拿到版本號。builder.signature new stringsignature etag 坑二 從...

iOS KVO存在的坑

所有的設計模式最終目的都是乙個,就是要解耦。解耦 是指任何模組之間不存在硬關聯,都是可以對關聯進行修改與替換。這是提供系統的可擴充套件性和可維護性的基礎,降低模組 元件之間的耦合度是開發人員應該牢記的乙個程式設計準側。觀察者模式是一種行為型設計模式。行為型設計模式討論的是模組實體在執行過程中的行為模...

Glide使用過程中遇到的坑

專案之前使用的載入庫是universal image loader,但是此庫已經好久不維護了,同時也發現了更加不錯的載入庫,也就是glide,用起來很方便並且記憶體佔用量還很令人滿意,所以決定大刀闊斧的將之前的載入庫換成glide。但是在換使用者頭像相關模組的時候發現問題了,就是載入網路時第一次載入...