2016-12-07 17 views
1

從配置文件中我注意到,當我的OkHttpClient被構建器創建時,TrustManagerFactory.getTrustManagers似乎需要很長時間,並在啓動時阻塞我的UI線程。大約需要111毫米才能完成。OkHttpClient創建時TrustManagerFactory.getTrustManagers的性能

對TrustManagers不是很熟悉,我想知道是否有更快的方法可以將這些提供給OkHttpClient,並將其作爲一個關注點去除。

在平均時間,我會看看我能不能我OkHttpClient創建推遲到後臺線程。

回答

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聽起來就像是最好的選擇。