创建OkHttpClient时的TrustManagerFactory.getTrustManagers性能

时间:2016-12-07 04:28:52

标签: android okhttp okhttp3

我从分析中注意到,当构建器创建OkHttpClient时,TrustManagerFactory.getTrustManagers似乎花了很长时间并且在启动时阻止了我的UI线程。完成需要大约111毫秒。

对TrustManagers并不是非常熟悉,我想知道是否有更快的方法可以将这些提供给OkHttpClient,并将其作为一个问题删除。

与此同时,我会看看是否可以将我的OkHttpClient的创建推迟到后台主题。

1 个答案:

答案 0 :(得分:1)

您应该可以致电

OkHttpClient client = new OkHttpClient.Builder().sslSocketFactory(sslSocketFactory, trustManager).build();

https://github.com/square/okhttp/blob/4568075b1a163bec48a8598917e6d6bcc9b2d96b/okhttp/src/main/java/okhttp3/OkHttpClient.java#L655

但最终这是你需要做的事情,触发JVM加载加载SSL相关类,从系统加载CA证书等。所以这似乎不太可能是性能上的胜利。

在后台线程上创建OkHttpClient听起来是最好的选择。