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)
- En primer lugar, seguí la respuesta vinculada para extraer y editar los archivos
packages.xml
ypackages.list
(todavía no los he publicado) - adb shell stop
- Empujo los dos archivos
- 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
adb instala SystemWebView.apk
También mantuve una copia de seguridad de los archivos
libwebviewchromium64.relro
ylibwebviewchromium32.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 carpetashared_relro
).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.