创建 OkHttpClient 的新实例很慢(500 毫秒)

Creating new instance of OkHttpClient is slow (500ms)

我在创建 OkHttpClient 的新实例时遇到问题 class。它需要 500-600 毫秒。

import okhttp3.OkHttpClient;

OkHttpClient client = new OkHttpClient();

我只在使用 Android api 16 的摩托罗拉 TC55 上遇到问题。我使用 3.8.1 版的 OkHttp 库。我试过的其他设备都正常工作并立即创建了实例。

我还在 Motorola TC55 设备上尝试了版本 2.4.0 中的 OkHttp 库,并且立即创建了实例。

从跟踪器可以明显看出它减慢了密钥库的加载速度。

Stack - Method Tracer

很可能是初始化 SSL 套接字工厂、信任管理器和证书链清理器速度慢。自 OkHttp 2.7.5 以来,清理证书链是新的。此代码解决了一个潜在的安全问题。

最好的缓解措施是对所有请求重用同一个 OkHttp 客户端实例。或者尝试在API16.

中找到优化证书链清洁器的方法

https://github.com/square/okhttp/blob/master/okhttp/src/main/java/okhttp3/internal/platform/AndroidPlatform.java#L187