studio software custom chrome android webview chromium webviewchromium

software - webview android studio



Construyendo WebView desde Chromium para Android (3)

Intento seguir las instrucciones para construir el apk webview de base de cromo. Estoy ejecutando una versión de Android 7.0. Terminé el proceso de compilación de cromo y generé el APK. Tengo dos preguntas relacionadas con los pasos posteriores a la generación de APK.

En primer lugar, el nombre de la biblioteca es diferente de lo que esperaba. El webview.apk defecto tiene un nombre de biblioteca libwebviewchromium.so , pero el APK que SystemWebView.apk desde SystemWebView.apk ( SystemWebView.apk ) contiene lib libwebviewchromium.cr.so . Quería preguntar si eso puede causar problemas y si otros también vieron esto.

En segundo lugar, no puedo desinstalar la aplicación com.android.webview del dispositivo. Las instrucciones requieren la desinstalación de esta aplicación y la eliminación de su carpeta antes de que se pueda instalar la nueva APK. Me sale el error:

$ adb uninstall com.android.webview [DELETE_FAILED_INTERNAL_ERROR]

Quería preguntar si alguien sabe cómo resolver esto. Vi una pregunta relacionada y quiero preguntar si hay algún otro enfoque que haga lo que sugiere esta respuesta .


La siguiente respuesta está relacionada con la segunda parte de mi pregunta.

Hice los siguientes pasos para hacer que SystemWebView.apk funcione (nota: el webview.apk era una aplicación de sistema en mi compilación en /system/app ; los pasos a continuación se usaron para instalar y probar SystemWebView.apk como una aplicación de terceros)

(Eche un vistazo al paso 6 primero para tomar una copia de seguridad de 2 archivos)

  1. En primer lugar, seguí la respuesta vinculada para extraer y editar los archivos packages.xml y packages.list (todavía no los he publicado)
  2. adb shell stop
  3. Empujo los dos archivos
  4. Luego eliminé las siguientes carpetas (básicamente, cualquier rastro de com.android.webview ):

/system/app/webview /data/data/com.android.webview /data/user/0/com.android.webview /data/misc/profiles/cur/0/com.android.webview /data/misc/profiles/ref/com.android.webview /data/user_de/0/com.android.webview

  1. adb instala SystemWebView.apk

  2. También mantuve una copia de seguridad de los archivos libwebviewchromium64.relro y libwebviewchromium32.relro de /data/misc/shared_relro/ . Después de la instalación, noté que estos archivos se borran por algún motivo, así que los copié de nuevo (primero copiando en sdcard y luego moviéndome a la carpeta shared_relro ).

  3. inicio de shell adb

Después de eso, probé una aplicación simple que contenía un WebView , y pude ver páginas web cargadas.


La vista web nativa tiene muchas limitaciones en rendimiento y almacenamiento en caché.
Preferiría sugerirte CustomTabsClient , una vista web compatible con Chrome Browser.
puede obtenerlo agregando las siguientes dependencias a su proyecto.

dependencies { ... compile ''com.android.support:customtabs:23.3.0'' }

Para más detalles, visita.
https://developer.chrome.com/multidevice/android/customtabs


Tienes que compilar SystemWebView.apk con ninja -Cout / Release system_webview_apk

Para más detalles, consulte esta página. https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md y https://www.chromium.org/developers/how-tos/build-instructions-android-webview

adb uninstall com.android.webview

falla porque esta es una aplicación del sistema, puede reemplazar directamente el webview.apk en / system / app / webview / dir, después de esto, detenga && start para esto necesita permiso de root.