WebView 加载缓慢 url

WebView slow loading url

在WebView中测试一个url实现加载大概需要6~8秒。与 iOS 相比,WebView 只需要 2 秒。两个设备都在同一个 wifi 网络上。我在 WebView 中使用以下设置。

//Manifest
//android:hardwareAccelerated="true"

webView = (WebView) findViewById(R.id.wvProduct);

            final WebSettings settings = webView.getSettings();

            settings.setJavaScriptEnabled(true);
            settings.setAppCacheEnabled(true);
            settings.setDomStorageEnabled(true);
            settings.setLoadsImagesAutomatically(true);
            settings.setDatabaseEnabled(true);
            settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
            settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
            }

            //webView.setWebViewClient(new MyWebClient());
            webView.loadUrl(url);

if (Build.VERSION.SDK_INT >= 19) {

            webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

        } else {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

                webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

            }

        }

public class MyWebClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view,
                                                String urlNewString) {
            view.loadUrl(urlNewString);
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {

            if(LoadingDialog.instanceProgressDialog().isShowing()) {
                LoadingDialog.dismissDialog();
            }
        }

        @Override
        public void onReceivedError(WebView view, int errorCode,
                                    String description, String failingUrl) {
            super.onReceivedError(view, errorCode, description, failingUrl);

            if(LoadingDialog.instanceProgressDialog() != null) {

                if (LoadingDialog.instanceProgressDialog().isShowing()) {

                    LoadingDialog.dismissDialog();

                }

            }

            Log.e(Constants.ERROR,
                    "****Error: " + description + " code: " + errorCode);
        }

    }

陌生人删除了用于删除加载程序对话框的 WebViewClient,并赢得了 2 秒(4~5)的加载时间。我怎样才能缩短 WebView 加载时间,这个 url 是一个移动商务,包含图像和 javascript。这个问题主要发生在第一次充电时(恶化),即偏离activity和return最好的事情时间很短(3 ~ 4秒)。

问题出在这一行。

webView.setWebViewClient(new WebViewClient());

奇怪的是,将客户端添加到 webview 加载时间会增加。当我删除这条线时,时间下降了 2 秒。