- 博客(14)
- 收藏
- 关注
原创 Retrofit2代码分析
几个核心的类 Retrofit,入口类 Call,请求接口类 CallAdapter,Call适配器,可以将Call转换为其他的类实例,比如,在与Rxjava一起使用的时候,将Call转换为Observable Converter,request和response的转换类 ServiceMethod,个人感觉是最核心的实现类,request、response的各种转换都是在这里执行的 OkHt
2018-01-13 16:40:31 232
原创 okHttp连接流程
在okhttp发起请求的调用链中,在发起请求之前需要建立连接,负责建立连接的就是ConnectInterceptor.intercept了 @Override public Response intercept(Chain chain) throws IOException { RealInterceptorChain realChain = (RealInterceptorChain
2018-01-08 16:54:43 1278
原创 okHttp缓存机制
基本流程 CacheInterceptor,主要的步骤已经在下面代码中注释了出来,最关键的就是第二步,单独分析一下这一步 @Override public Response intercept(Chain chain) throws IOException { // 1、get cache Response cacheCandidate = cache != null
2018-01-08 16:54:12 639
原创 okHttp重试机制
RetryAndFollowUpInterceptor,重试流程比较清晰,简略写了下注释,涉及到的类主要就是StreamAllocation,这个类用来管理链接connection、请求及编解码类HttpCodec、路由RouteSelector,真正的使用时在后面的连接和请求过程中,这里主要是实例化和释放 @Override public Response intercept(Chain
2018-01-08 16:47:25 9469 1
原创 Android 应用安装流程初探
启动安装 在app代码中,如果想安装另一个应用,一般通过下列代码实现,调用后会显示系统安装界面 Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType("the apkPath of app...",
2018-01-05 16:21:44 768
原创 okHttp基本流程
基本用法 同步: OkHttpClient client = new OkHttpClient.Builder().build(); Request request = new Request.Builder().url("http://www.csdn.net").build(); try { client.newCall(request).execute(); } catch
2018-01-02 14:53:15 340
原创 Replugin ContentProvider实现机制
plugin调用ContentProvider是通过plugin-lib的PluginProviderClient类进行的,以PluginProviderClient.query为例,看一下Replugin ContentProvider的实现机制。 先总结一下调用栈 PluginProviderClient.query -- plugin-lib PluginProviderCl
2017-11-23 14:48:06 1209
原创 RxLifecycle防内存泄漏分析
调用链的生成以fragment为例,fragment继承RxLifecycle的RxFragment,然后在fragment中发起网络请求// Retrofit生成的observable Retrofit.create(xxx).subscribeOn(Schedulers.io()) .unsubscribeOn(Schedulers.io())
2017-08-16 17:37:22 864
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人