2017-02-18 3 views
6

J'essaie de suivre le instructions pour créer l'apk Webview à partir de la base de chrome. Je cours une version Android-7.0. J'ai terminé le processus de compilation pour le chrome et généré l'APK. J'ai deux questions liées aux étapes après la génération de APK.Création de WebView à partir de Chromium pour Android

Premièrement, le nom de la bibliothèque est différent de ce à quoi je m'attendais. La valeur par défaut webview.apk a un nom de bibliothèque libwebviewchromium.so, mais l'APK que j'ai construit à partir de chrome (SystemWebView.apk) contient la bibliothèque libwebviewchromium.cr.so. Je voulais savoir si cela pouvait causer des problèmes et si d'autres voyaient aussi cela.

Deuxièmement, je ne parviens pas à désinstaller l'application com.android.webview de l'appareil. Les instructions nécessitent la désinstallation de cette application et la suppression de son dossier avant que le nouveau fichier APK puisse être installé. J'ai l'erreur:

$ adb uninstall com.android.webview  
[DELETE_FAILED_INTERNAL_ERROR] 

Je voulais savoir si quelqu'un sait comment résoudre ce problème. J'ai vu une question connexe et je voudrais savoir s'il y a une autre approche qui fait ce que answer suggère.

+0

Est-ce possible de créer une dernière webview depuis le sous-dossier chrome webview et de l'intégrer dans ma propre application? – mko

+0

J'ai construit le SystemWebView.apk à partir de la source de chrome, et remplacé l'apk existant dans le système avec le nouveau. WebViews utilisés dans les applications utilisera ensuite le code de la nouvelle apk. D'après ce que je comprends, Webview utilisé dans les applications dépend de Java et du code natif dans le SystemWebView.apk. – Jake

Répondre

4

La réponse suivante est liée à la deuxième partie de ma question.

J'ai fait les étapes suivantes pour faire le travail SystemWebView.apk (note: l'webview.apk était une application du système dans ma construction sous /system/app, les étapes ci-dessous ont été utilisées pour installer & essai SystemWebView.apk comme une application tierce partie)

(Jetez un oeil à l'étape 6 d'abord pour reprendre de 2 fichiers)

  1. Tout d'abord j'ai suivi le lien answer à Adb tirer & modifier les fichiers packages.xml et packages.list (je ne l'ai pas poussé e em encore)
  2. adb shell arrêter
  3. Je pousse les deux fichiers
  4. je puis supprimé les dossiers suivants (essentiellement toute trace 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 installer SystemWebView.apk

  2. J'avais aussi gardé une sauvegarde de fichiers libwebviewchromium64.relro et libwebviewchromium32.relro à partir de /data/misc/shared_relro/. Après l'installation, j'ai remarqué que ces fichiers étaient effacés pour une raison quelconque, donc je les ai recopiés (d'abord en les copiant dans la carte SD puis en les déplaçant dans le dossier shared_relro).

  3. shell adb commencer

Après que je l'ai testé une application simple contenant un WebView, et pourrait voir les pages web chargées.

0

La vue Web native présente de nombreuses limitations en termes de performances et de mise en cache.
Je préfère vous suggérer CustomTabsClient, une vue Web prise en charge par le navigateur Chrome.
vous pourriez l'obtenir en ajoutant les dépendances suivantes à votre projet.

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

Pour plus de détails, visitez.
https://developer.chrome.com/multidevice/android/customtabs

0

Vous devez construire SystemWebView.apk avec ninja C out/Release system_webview_apk

Pour plus de détails, consultez cette page. https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md et https://www.chromium.org/developers/how-tos/build-instructions-android-webview

désinstaller adb com.android.webview

échoue parce que c'est une application de système, vous pouvez directement remplacer le webview.apk dans /system/app/WebView/dir, après arrêtez & & commencez par pour cela vous avez besoin de l'autorisation root.