簡單分析下glide的實現機制

2021-08-20 14:02:38 字數 854 閱讀 4738

dataloadproviderregistry = new dataloadproviderregistry();

streambitmapdataloadprovider streambitmaploadprovider =

dataloadproviderregistry.register(inputstream.class, bitmap.class, streambitmaploadprovider);

filedescriptorbitmapdataloadprovider filedescriptorloadprovider =

dataloadproviderregistry.register(parcelfiledescriptor.class, bitmap.class, filedescriptorloadprovider);

register(file.class, parcelfiledescriptor.class, new filedescriptorfileloader.factory());

register(file.class, inputstream.class, new streamfileloader.factory());

這就是一種插拔式的設計,實際專案使用中可以根據具體的需求來做裁剪或新增.

另一方面glide的在快取設計上也很有獨到的地方,其快取大致可以分為:

(1) 基於lru的lruresourcecache

(2) 基於使用活躍頻率的儲存:

map

>> activeresources

簡單記錄下部分原理,具體詳情待下一步來完善.

Glide的簡單封裝GlideUtils

public static void loadimageview context mcontext,string path,imageview mimageview public static void loadimageviewsize context mcontext,string path,i...

簡單實用Glide的功能

dependenciesdependenciesglide.with context load into requestoptions option new requestoptions placeholder r.drawable.ic launcher background 佔位符 error ...

Android binder 機制簡單分析

android 系統使用驅動的方式實現binder,用來跨程序通訊。1.android binder驅動中分配了一塊記憶體,將其對映到核心空間和使用者空間,減少資料拷貝次數。2.設計了binder通訊協議。3.在servicemanager中註冊。4.並且簡化了binder通訊 開發流程,開發者使用...