你能在Android中测量在webView中加载网页所需的时间吗?

你能在Android中测量在webView中加载网页所需的时间吗?,android,time,webview,load,android-webview,Android,Time,Webview,Load,Android Webview,有很多关于Android中WebView加载时间过长的问题,但是我希望能够准确地计算完成加载所需的时间,然后显示结果 这可能吗?我可以启动一个计时器,但是WebView在加载后是否有一个HTML OnLoad样式的调用 我的代码是基本的: /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { supe

有很多关于Android中WebView加载时间过长的问题,但是我希望能够准确地计算完成加载所需的时间,然后显示结果

这可能吗?我可以启动一个计时器,但是WebView在加载后是否有一个HTML OnLoad样式的调用

我的代码是基本的:

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.pageloadtest);

        webView = (WebView) findViewById(R.id.webView1);
        webView.loadUrl("http://www.airometricwireless.com");
}

这会很好地加载页面。我只需要计算一下需要多长时间

要完成页面加载,请使用

webView.setWebViewClient(new WebViewClient() {

   public void onPageFinished(WebView view, String url) {
        // do your stuff here
    }
});

也许科学上不准确,但我想你可以打电话

long a, b;

mWebView.setWebViewClient(new WebViewClient() {

    public void onPageStarted(WebView view, String url) {
        a = (new Date()).getTime;
    }

    public void onPageFinished(WebView view, String url) {
        b = (new Date()).getTime;
    }
});
然后是b-a

希望能有帮助

致以最诚挚的问候。

您可以使用,但正如文档所说,“调用onPageFinished()时,渲染图片可能尚未更新。”

此外,它仅对简单页面有意义,因为它不会考虑iFrame或动态加载的内容,例如加载其他JavaScript(如社交媒体按钮、广告、跟踪脚本等)的JavaScript。通常,正是这些内容导致页面感觉不好

当人们说“加载很慢”时,他们通常的意思是“我需要很长时间才能与页面交互”,这与加载资产所需的时间非常不同。为此,您可能希望测试JavaScript何时触发类似于onDOMReady的事件,或者如果不使用该事件,则测试非延迟JS何时实际初始化

本质上,一旦页面中出现任何动态加载行为,
onPageFinished
就变得毫无意义,您需要使用JS进行度量

与任何性能问题一样

  • 测量交互以发现瓶颈
  • 尝试修复瓶颈并再次测量
  • 重复此操作,直到性能合格为止

  • WebViewClient
    中有一个
    onPageStarted()
    回调,您可以使用它来获取更准确的
    a