Android源码修改:apache的class预加载改进

 

改进前:

    /**
     * The factory using the default JVM settings for secure connections.
     */
    private static final SSLSocketFactory DEFAULT_FACTORY = new SSLSocketFactory();
    
    /**
     * Gets an singleton instance of the SSLProtocolSocketFactory.
     * @return a SSLProtocolSocketFactory
     */
    public static SSLSocketFactory getSocketFactory() {
        return DEFAULT_FACTORY;
    }

 

改进后:

    /*
     * Put defaults into holder class to avoid class preloading creating an
     * instance of the classes referenced.
     */
    private static class NoPreloadHolder {
        /**
         * The factory using the default JVM settings for secure connections.
         */
        private static final SSLSocketFactory DEFAULT_FACTORY = new SSLSocketFactory();
    }

    /**
     * Gets an singleton instance of the SSLProtocolSocketFactory.
     * @return a SSLProtocolSocketFactory
     */
    public static SSLSocketFactory getSocketFactory() {
        return NoPreloadHolder.DEFAULT_FACTORY;
    }

 

posted @ 2013-12-24 19:54  easynote  阅读(174)  评论(0编辑  收藏  举报