Rendimiento de Android WebView

En mi aplicación, estoy cargando una lista de url externo en webview y permito que el usuario los revise. Las vistas Web se cargan en una aleta de vista. Encuentro que el funcionamiento es realmente malo en url de la carga de la tela. He intentado de todo, desde el uso de la trama de diseño para limitar el número de webviews a cargar. Sin embargo, el rendimiento no es satisfactorio.

¿Cómo optimizo el rendimiento de webview? Esto debe ser un uso común. ¿Estoy perdiendo algo obvio?

Mis configuraciones de Webview son –

webView.setInitialScale(WEBVIEW_SCALE); webView.getSettings().setJavaScriptEnabled(true); webView.getSettings().setBuiltInZoomControls(false); webView.setWebViewClient(new MyWebViewClient()); webView.setOnTouchListener( new OnTouchListener()); 

Prueba esto:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); } else { webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); } 

Creo que lo siguiente funciona mejor:

 if (Build.VERSION.SDK_INT >= 19) { webView.setLayerType(View.LAYER_TYPE_HARDWARE, null); } else { webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); } 

Android 19 tiene motor Chromium para WebView. Supongo que funciona mejor con la aceleración de hardware.

Para más información Android 4.4 KitKat, el navegador y Chrome WebView

Esto ya se ha discutido aquí: Mejorar el rendimiento de webView (debe ser el mismo rendimiento que el navegador web nativo)

Me encontré con un problema similar, y después de una gran depuración notado el navegador nativo y navegador WebView parecen estar utilizando diferentes cachés.

Este código se puede utilizar para desactivar la caché de WebView, y hecho WebView mucho más rápido para mí (aunque a expensas de no caché). Tenga en cuenta que utiliza APIs privadas, por lo que al utilizarlo usted está arriesgando el código se romperá en futuras versiones:

 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); } 
  • WebView onPageFinished no se llama cuando MapView está visible
  • ANDROID / WEBVIEW- Uncaught TypeError: Object no tiene ningún método 'changeActivity' en el archivo:
  • ¿Cómo abrir un nuevo navegador desde WebViewClient?
  • Android Fatal señal 11 (SIGSEGV) en WebViewCoreThre
  • ¿Cómo puede detectar Google una solicitud desde un WebView?
  • Vista web de Android, haga que las URL se abran en diferentes navegadores
  • JavascriptInterface en Android no funciona con APK en modo de lanzamiento
  • Caída de la aplicación en Android 5.0.x
  • Cómo cargar un archivo js de los elementos en la vista web después de cargar html
  • Añadir encabezados personalizados desde android webview
  • Cómo pasar html string a webview en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.