gpt4 book ai didi

android - 在 Android WebViews 上调试缓慢的点击响应?

转载 作者:太空狗 更新时间:2023-10-29 14:26:13 24 4
gpt4 key购买 nike

我在我的 Android 应用程序中实现了一个 WebView(根据 the documentation)。我使用自定义 WebViewClient 并覆盖 shouldOverrideUrlLoading 以显示在新 Activity 中单击的链接,几乎与文档显示的完全一样。

我遇到的问题是我的应用程序接收指示已单击链接的消息所花费的时间(例如,调用 shouldOverrideUrlLoading)。通常,它会在 1-2 秒内发生(勉强可以接受),但有时需要 10++ 秒(!!完全不能接受)。请注意,我已阅读 this thread on Android WebView touch responsiveness并了解固有的 300 毫秒延迟,但我的延迟时间更糟。另请注意,渲染/滚动速度不是问题(事实上,我可以以惊人的速度向下滚动 WebView)。

我最好的猜测是延迟是由页面上的 Javascript 引起的,尽管我不知道如何调试它甚至无法证实我的怀疑!我已经在我的 Javascript 中插入了许多 console.log() 语句,但没有看到发生什么,所以即使是这个问题也很难缩小范围。

我也试过禁用缓存,per this thread .


我实例化 WebView 的代码如下。请注意,WebView 在我的 Android 应用程序中是唯一的 View 。我还在我的 list 中打开了硬件加速。

// the _web_view is inflated, etc...

_web_view.getSettings().setSupportZoom(false);
_web_view.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH);
_web_view.setWebChromeClient(new CustomWebChromeClient());
_web_view.getSettings().setJavaScriptEnabled(true);
_web_view.getSettings().setDomStorageEnabled(true);
_web_view.setWebViewClient(new CustomWebViewClient());
_web_view.loadUrl(url);

FWIW,这是自定义的 Chrome 客户端:

public class CustomWebChromeClient extends WebChromeClient {

public boolean onConsoleMessage(ConsoleMessage cm) {
Log.d("Javascript", cm.message() + " -- From line "
+ cm.lineNumber() + " of "
+ cm.sourceId() );
return true;
}
}

和自定义 WebView 客户端...

public class CustomWebViewClient extends WebViewClient {


@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Intent intent = new Intent(view.getContext(), WebPopupActivity.class) ;
intent.putExtra("url", url);
MyApp.Singleton.startActivity(intent);
return true;
}
}

编辑:还应该注意的是,我已经在标准的 Android 内置浏览器中测试了我的网络应用程序,并且它在那里运行良好。没有任何滞后;链接点击实时打开。

最佳答案

如果您还没有尝试过,看看您是否可以使用 ADT Eclipse plugin support比较您的应用程序和 Android 浏览器之间的 traceview 输出,分析从单击链接到打开下一页之间的时间。结果可能不会直接指向问题,但可能会给您一些提示。

This answer has a short description关于如何在 Eclipse 中的选定进程上使用该工具。

关于android - 在 Android WebViews 上调试缓慢的点击响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12323556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com