跳过 773 帧!应用程序可能在其主线程上做了太多工作。 [ANDROID 网络视图]

Skipped 773 frames! The application may be doing too much work on its main thread. [ANDROID WEBVIEW]

我有一个 webview 应用程序。它加载了一个 HTML 页面,我在其中使用了一些 JS 和 Jquery。但最近我在模拟器上收到了这个警告:

Skipped 773 frames! The application may be doing too much work on its main thread.

Suspending all threads took: 14.255ms

Background sticky concurrent mark sweep GC freed 38341(1813KB) AllocSpace objects, 8(160KB) LOS objects, 0% free, 11MB/11MB, paused 46.590ms total 800.341ms

Suspending all threads took: 35.225ms

Attempt to remove non-JNI local reference, dumping thread

Suspending all threads took: 224.946ms

Background partial concurrent mark sweep GC freed 100(3KB) AllocSpace objects, 0(0B) LOS objects, 25% free, 11MB/15MB, paused 65.153ms total 423.872ms

Suspending all threads took: 19.208ms

Skipped 152 frames! The application may be doing too much work on its main thread.

这一直持续到 index.html 加载。

这是MainActivity.java:

    package checker.coin.crypto.wingcrony.by.cryptocoinchecker;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import com.google.android.gms.common.api.GoogleApiClient;

public class MainActivity extends Activity {

    private GoogleApiClient client;
    private WebView view;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        view = (WebView) this.findViewById(R.id.webView);
        view.getSettings().setJavaScriptEnabled(true);
        view.getSettings().setDomStorageEnabled(true);
        view.setWebViewClient(new MyBrowser());
        view.loadUrl("file:///android_asset/www/index.html"); //try js alert
        view.setWebChromeClient(new WebChromeClient()); // adding js alert support


    }

    private class MyBrowser extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url.startsWith("mailto:") || url.startsWith("mms:") || url.startsWith("mmsto:") || url.startsWith("market:") || url.equals("http://wingcrony.com/?actie=donate")) {
                Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                startActivity(intent);
                return true;
            }
            else {
                view.loadUrl(url);
                return true;
            }
        }
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && view.canGoBack()) {
            view.goBack(); //method goback()
            return true;
        }

        return super.onKeyDown(keyCode, event);
    }
}

是否有 multieThread webview 或任何让它工作得更快的方法?

我添加了启动画面以提高速度。

view.setWebViewClient(new MyBrowser() {

            @Override
            public void onPageFinished(WebView view, String url) {
                //hide loading image
                findViewById(R.id.imageLoading1).setVisibility(View.GONE);
                //show webview
                findViewById(R.id.webView).setVisibility(View.VISIBLE);
            }


        });