从Chromium为Android构建WebView

时间:2017-02-18 18:47:43

标签: android webview chromium webviewchromium

我正在尝试按照instructions从chrome base构建webview apk。我正在运行Android-7.0版本。我完成了铬的编译过程并生成了APK。我有两个与APK生成后的步骤相关的问题。

首先,图书馆名称与我的预期不同。默认webview.apk的库名称为libwebviewchromium.so,但我从chrome(SystemWebView.apk)构建的APK包含lib libwebviewchromium.cr.so。我想问一下这是否会引起问题,如果其他人也看到了这个问题。

其次,我无法从设备中卸载com.android.webview应用。说明需要卸载此应用程序并删除其文件夹才能安装新的APK。我收到错误:

$ adb uninstall com.android.webview     
[DELETE_FAILED_INTERNAL_ERROR]

我想问一下是否有人知道如何解决这个问题。我看到了一个相关的问题,想问一下是否有其他方法可以做answer建议的内容。

3 个答案:

答案 0 :(得分:5)

以下答案与我提问的第二部分有关。

我执行了以下步骤以使SystemWebView.apk工作(请注意:webview.apk/system/app下我的版本中的系统应用;以下步骤用于安装和测试SystemWebView.apk作为第三方应用)

(首先看一下第6步,取回2个文件)

  1. 首先,我按照链接answer跟随adb pull&修改packages.xmlpackages.list文件(我还没推过它们)
  2. adb shell stop
  3. 我推送两个文件
  4. 然后我删除了以下文件夹(基本上是com.android.webview的任何痕迹):
  5.  /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 install SystemWebView.apk

    2. 我还保留了来自libwebviewchromium64.relro的{​​{1}}和libwebviewchromium32.relro个文件的备份。在安装之后,我注意到这些文件由于某种原因被删除了,所以我再次复制它们(首先复制到sdcard然后移入/data/misc/shared_relro/文件夹)。

    3. adb shell start

    4. 之后我测试了一个包含shared_relro的简单应用,并且可以看到加载的网页。

答案 1 :(得分:0)

您必须使用构建SystemWebView.apk ninja -C out / Release system_webview_apk

有关详细信息,请查看此页面。 https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.mdhttps://www.chromium.org/developers/how-tos/build-instructions-android-webview

adb uninstall com.android.webview

失败,因为这是一个系统应用,你可以直接替换webview.apk / system / app / webview / dir,在此之后停止&&开始 为此你需要root权限。

答案 2 :(得分:-1)

原生网页视图在性能和缓存方面存在许多限制 我建议您使用Chrome浏览器支持的网络视图CustomTabsClient
您可以通过向项目中添加以下依赖项来获取它。

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

有关详细信息,请访问。
https://developer.chrome.com/multidevice/android/customtabs