android - remote - mobile chrome development kit
Chromium incorporado o Webkit en la aplicaciĆ³n de Android (5)
Consideraría las pestañas personalizadas de Chrome:
Para nuestra aplicación de Android, nos gustaría incrustar nuestro propio navegador / motor de representación. El candidato más probable para esto es Webkit / Chromium . Estamos buscando algo similar a WebView , en esencia, pero respaldado por un navegador (versión) que controlamos.
Fondo
Las partes importantes de nuestra aplicación consisten en fragmentos de páginas web incrustados en la vista (servidos por la propia aplicación). Tratamos de hacer esto de la manera más transparente posible (desde el punto de vista de la experiencia visual / del usuario). Hasta ahora, hemos usado WebView para esto y eso funciona en su mayor parte. Excepto cuando no lo hace
Desafortunadamente, algunos proveedores de teléfonos han decidido modificar el navegador estándar de Android aquí y allá. En algunos casos, esto rompe nuestra aplicación o hace que el hecho de que incorporemos una página web sea más notorio.
Nuestra idea
Nos gustaría tener un componente similar a WebView pero donde controlamos qué versión de Webkit / Chromium (u otro motor de renderizado) se está utilizando. No necesariamente tiene que ser la versión más reciente y mejor. Es más importante que podamos hacer que nuestra aplicación funcione de manera consistente en tantos dispositivos Android como sea posible.
Hasta aquí
Nuestra investigación hasta ahora no ha encontrado nada útil. Hemos encontrado tres intentos fallidos para conectar Webkit a NDK (el puerto Webkit desnudo para Android usa una funcionalidad que no está disponible en el NDK y, por lo tanto, no para los desarrolladores de aplicaciones):
- Puerto Webkit para Android por Company 100 (sin actualizaciones durante más de dos años)
- mogo-browser (su última revisión fue eliminar todo el código fuente)
- NDK Webkit (oficialmente abandonado por su autor)
Al buscar en StackOverflow, también encontramos una cantidad de preguntas similares, la mayoría de las cuales se resuelven al señalar a WebView (ya lo hacemos, y no es lo suficientemente bueno)
- Componente Webkit para Android
- Incrustar WebKit + V8 básico en mi aplicación
- Incrustar una versión más nueva de WebKit con la aplicación de Android
Actualmente estamos investigando si Chromium para Android (o partes de él) se puede convertir en una biblioteca que nuestra aplicación podría usar. ¿Alguien más ha hecho esto?
Actualizar
Después de echar un vistazo al proyecto chromeview en GitHub (respuesta aceptada), decidimos que preferiríamos esperar a que Google lanzara un WebView basado en Chrome en futuros dispositivos Android. El motor de renderizado Chromium resulta bastante grande (~ 40MB), lo que no deja mucho espacio para la aplicación real :(
Sin WebKit hay un GeckoView . Claro que agrega más de 20Mb de libs al proyecto.
Todos deberían ver el proyecto de Crosswalk. Patrocinado por Intel, y en desarrollo activo. Sacan las fuentes de Chromium y prometen que todas las funciones nuevas de Chromium estarán disponibles en Crosswalk dentro de las 6 semanas.
Crosswalk es un tiempo de ejecución web para aplicaciones HTML5 ambiciosas. Proporciona todas las características de un navegador moderno, combinado con una profunda integración de dispositivos y una API para agregar extensiones nativas. Es especialmente adecuado para dispositivos móviles.
Crosswalk es compatible con Android 4.0 y versiones posteriores, en arquitecturas ARM e Intel.
Dentro de una hora de encontrar este proyecto, tenía mi aplicación Cordova / Phonegap ejecutándose en un teléfono Android con Crosswalk. Me alegra no tener que ajustar mi código Javascript para respetar las deficiencias del (android.webkit.WebView) (pre-4.4).
Traté de usar la última versión de código de Chromium para construir una WebView personalizada y es exitosa.
Daré mi enfoque pero no el código fuente aquí en este momento.
Finalmente, el tamaño de la biblioteca personalizada de WebView es de aproximadamente 30 MB, bastante grande para algunas aplicaciones pequeñas. Pero es maravilloso porque puede soportar perfectamente desde Android 4.0.
Este a continuación es mi método:
busque el código fuente de cromo y compile web_view_apk (shell de prueba de AndroidWebView) siga estas instrucciones https://www.chromium.org/developers/how-tos/android-build-instructions
utiliza apktool para descompilar el archivo apk de Aw Shell arriba. https://ibotpeaches.github.io/Apktool/
crea tu proyecto con res, lib carpeta igual que proyecto descompilado.
El archivo de manifiesto se encuentra en / src / android_webview / test / src / org / chromium / shell
carpeta src: encuentra las clases en el código fuente del proyecto Chrome que son respectivos los archivos en la carpeta smali del proyecto descompilado.
Voy a actualizar mi código más tarde, pero puedes probar mi guía ahora si no quieres esperar.
pwnall / chromeview · GitHub https://github.com/pwnall/chromeview
ChormeView funciona como WebView de Android, pero está respaldado por el último código de Chromium.