2016-12-07 2 views
1

Я заметил из профилирования, что когда мой OkHttpClient создается разработчиком, TrustManagerFactory.getTrustManagers, кажется, занимает много времени и блокирует мой поток пользовательского интерфейса при запуске. Это займет около 111 миллисов.Производительность TrustManagerFactory.getTrustManagers при создании OkHttpClient

Не очень знакомый с 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 на фоне нити звучит как лучший вариант.

Смежные вопросы