Android WebView中的网页设置时间

时间:2014-10-20 18:33:06

标签: android http web

目前我正在开发一款应用程序来测量网页加载时间,包含的资源数量(和大小)等。

我仍然缺少的一件事是"设置时间",这是点击"开始测量"按钮,到加载页面的第一个字节的时间。

到目前为止,我已经通过在点击按钮后注意系统的毫秒时间来测量这个时间,然后注意onPageStarted事件的时间来获得这个设置时间。

我觉得我很好,但最近我发现,如果我想测量这样的几个网页(我总是通过调用stopLoading并加载about:blank来清除webview),我看到这个设置时间非常明显低于加载第一页的时间。

示例值:

Setup Time (www.google.com): 0.156s
Setup Time (www.manwe.cz): 0.05s
Setup Time (www.anothersite.com): 0.007s
Setup Time (www.reddit.com): 0.025s

首先 - 为什么时间如此不同, 第二 - 任何想法如何正确测量这个设置时间? (因为这显然不正确)。

只是一个注意事项:我加载第一个/第二个等的网站并不重要......(这意味着如果我首先加载google.com,然后reddit.com第二个,反之亦然,这个想法是第一个加载的页面具有明显更高的“#34;设置时间")

编辑:代码片段

自定义webViewClient

  private WebViewClient myWebViewClient = new WebViewClient() {

    public void onPageStarted(WebView view, String url, Bitmap favicon) {
        setupTime = (System.currentTimeMillis()-startTime)/1000.0;
        startTime = System.currentTimeMillis();
    }               

    public void onPageFinished(WebView view, String url){
        pageLoaded();
        endTime = System.currentTimeMillis();
    }
}

使用myWebView客户端

public void StartURL(){ 

    setupTime = 0.0;
    endTime = (long) 0;
    startTime = (long) 0;   

    startTime = System.currentTimeMillis();
    activity.wv.setWebViewClient(myWebViewClient);      
    currentURL = URLList.remove(0);
    activity.wv.loadUrl( currentURL );
}

一切都完成后我用

activity.wv.stopLoading();
activity.wv.setWebViewClient(clearWebClient);
activity.wv.loadUrl("about:blank");

和clearWebClient是

private WebViewClient clearWebClient = new WebViewClient() {

    public void onPageFinished(WebView view, String url){
        StartURL();
    }

};

基本上只是重新启动StartURL处理另一个网站的过程

0 个答案:

没有答案