web视图提高性能(应该是相同的性能,本机的Web浏览器)性能、视图、本机、应该是

由网友(寂然安兮)分享简介:我的经验是,在一个web视图装载网站比执行同样的动作,在Android Web浏览器慢得多。我可以看到,在我的Apache日志已加载的所有文件,这将需要几秒钟,直到页面显示的WebView控件,但是。打开同一页中的本地Web浏览器将导致立即显示。看来,渲染在某种程度上削弱。哪些浏览器设置,我们必须为了达到相同的性能,在...

我的经验是,在一个web视图装载网站比执行同样的动作,在Android Web浏览器慢得多。我可以看到,在我的Apache日志已加载的所有文件,这将需要几秒钟,直到页面显示的WebView控件,但是。打开同一页中的本地Web浏览器将导致立即显示。看来,渲染在某种程度上削弱。

哪些浏览器设置,我们必须为了达到相同的性能,在本地Web浏览器加载页面申请?

我们的当前设置:

  browserset.setLoadsImagesAutomatically(真正的);
browserset.setJavaScriptEnabled(真正的);
browserset.setDatabaseEnabled(真正的);
browserset.setDatabasePath(数据/数据​​/ com.xxx /数据库);
browserset.setDomStorageEnabled(真正的);
browserset.setRenderPriority(WebSettings.RenderPriority.HIGH);
browserset.setSupportZoom(假);
browserset.setUserAgentString(browserset.getUserAgentString()+(XY ClientApp));
browserset.setAllowFileAccess(真正的);
browserset.setSavePassword(假);
browserset.setSupportMultipleWindows(假);
browserset.setAppCacheEnabled(真正的);
browserset.setAppCachePath();
browserset.setAppCacheMaxSize(5 * 1024 * 1024);
 

解决方案

我遇到了类似的问题,经过一些沉重的调试注意到了本地浏览器和浏览器的WebView似乎可以用不同的缓存。

如何设置网页浏览器的 兼容性 视图

这code可以用来禁用的WebView缓存,并取得的WebView快得多,我(但在不缓存的费用)。注意,它使用专用的API,所以通过使用它,你正在冒着code将在未来的版本中突破:

 尝试
{
  方法M = CacheManager.class.getDeclaredMethod(setCacheDisabled,boolean.class);
  m.setAccessible(真正的);
  m.invoke(NULL,TRUE);
}
赶上(Throwable的E)
{
  Log.i(MyApp的,反思失败,E);
}
 

My experience is that loading websites in a WebView is much slower than performing the same actions in the Android Web Browser. I can see that all files have been loaded in my Apache log, it will take a few seconds until the page is displayed in the WebView control, however. Opening the same page in the native Web browser will result in an immediate display. It seems that rendering is somehow crippled.

Which browser settings do we have to apply in order to achieve the same performance as loading the page in the native web browser?

Our current settings:

browserset.setLoadsImagesAutomatically(true);
browserset.setJavaScriptEnabled(true);
browserset.setDatabaseEnabled(true);
browserset.setDatabasePath("data/data/com.xxx/databases");
browserset.setDomStorageEnabled(true);
browserset.setRenderPriority(WebSettings.RenderPriority.HIGH);
browserset.setSupportZoom(false);
browserset.setUserAgentString( browserset.getUserAgentString() + " (XY ClientApp)" );
browserset.setAllowFileAccess(true);
browserset.setSavePassword(false);
browserset.setSupportMultipleWindows(false);
browserset.setAppCacheEnabled(true);
browserset.setAppCachePath("");
browserset.setAppCacheMaxSize(5*1024*1024);

解决方案

I ran into a similar issue, and after some heavy debugging noticed the native browser and WebView browser seem to be using different caches.

This code can be used to disable the WebView cache, and made WebView much faster for me (though at the expense of not caching). Note that it uses private APIs, so by using it you're risking the code will break in future releases:

try
{
  Method m = CacheManager.class.getDeclaredMethod("setCacheDisabled", boolean.class);
  m.setAccessible(true);
  m.invoke(null, true);
}
catch (Throwable e)
{
  Log.i("myapp","Reflection failed", e);
}

阅读全文

相关推荐

最新文章