Bas*_*ANI 2 debugging android android-glide stetho okhttp3
如何结合Glide和Stetho使用okhttp3调试图像加载系统
我做了以下
1.增加了依赖性
//stetho
compile 'com.facebook.stetho:stetho:1.3.1'
compile 'com.facebook.stetho:stetho-okhttp3:1.3.1'
//glide
compile 'com.github.bumptech.glide:glide:3.7.0'
// Glide's OkHttp3 Integration
compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
//okhttp3
compile 'com.squareup.okhttp3:okhttp:3.2.0'
Run Code Online (Sandbox Code Playgroud)
1.增加了初始化
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Stetho.initialize(
Stetho.newInitializerBuilder(this)
.enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this))
.build());
}
}
Run Code Online (Sandbox Code Playgroud)
3.add glide config使用okhttp3
/**
* Created by Arnaud Camus Copied by MOMANI on 2016/04/15.
* http://arnaud-camus.fr/combining-glide-and-stetho-to-easily-debug-your-image-loading-system/
*/
public class StethoOkHttpGlideModule implements GlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) { }
@Override
public void registerComponents(Context context, Glide glide) {
okhttp3.OkHttpClient client = new okhttp3.OkHttpClient();
client.networkInterceptors().add(new com.facebook.stetho.okhttp3.StethoInterceptor());
glide.register(GlideUrl.class, InputStream.class, new OkHttpUrlLoader.Factory(client));
}
}
Run Code Online (Sandbox Code Playgroud)
4.添加GlideModule元数据标签AndroidManifest.xml
<application
android:name=".....">
.....
<meta-data android:name="android.alcode.com.material.utils.glide.StethoOkHttpGlideModule"
android:value="GlideModule" />
</application>
Run Code Online (Sandbox Code Playgroud)
5.Glide loadimg图像线
Glide.with(((ViewHolderSmall) holder).imageView.getContext())
.load(post.getImageUrl())
// .diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(((ViewHolderSmall) holder).imageView);
Run Code Online (Sandbox Code Playgroud)
当我打开chrome开发工具Resources Tab工作完美,但network tab没有!
为什么?我的错在哪里?是否建议okhttp3与Glide 一起使用?以及如何在不使用okhttp3的情况下连接它
任何重复或链接都会有所帮助
Re:建议在滑音时使用okhttp3吗?
是的,这是OkHttp集成的方法.
回复:为什么?我的错在哪里?
这可能是需要的,因为内置的GlideModule可能会覆盖您截获的客户端(GlideModule执行之间没有定义的顺序).从维基中考虑以下内容:
覆盖默认行为时,请确保在清单中注册了自定义GlideModule,并排除了默认行为.排除可能意味着从清单中删除相应的元数据或使用jar依赖项而不是aar.- 覆盖默认行为 - Glide Wiki
基于冲突GlideModules - Glide Wiki:@aar从okhttp3-integration依赖中删除,或添加到清单:
<meta-data android:name="com.bumptech.glide.integration.okhttp3.OkHttpGlideModule" tools:node=”remove” />
Run Code Online (Sandbox Code Playgroud)
另外,还要确保你不被愚弄缓存:.diskCacheStrategy(NONE).skipMemoryCache(true); 您可以在看到请求后立即将其删除.
OkHttp3改变了API client.networkInterceptors()不再可写:
okhttp3.OkHttpClient client = new okhttp3.OkHttpClient.Builder()
.addNetworkInterceptor(new com.facebook.stetho.okhttp3.StethoInterceptor())
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2546 次 |
| 最近记录: |