繁体   English   中英

从 Chromium 为 Android 构建 WebView

[英]Building WebView From Chromium for Android

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

首先,库名称与我的预期不同。 默认的webview.apk有一个库名称libwebviewchromium.so ,但我从 chromium ( SystemWebView.apk ) 构建的 APK 包含libwebviewchromium.cr.so 我想问这是否会导致问题,以及其他人是否也看到了这一点。

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

$ adb uninstall com.android.webview     
[DELETE_FAILED_INTERNAL_ERROR]

我想问是否有人知道如何解决这个问题。 我看到了一个相关的问题,并想问是否有任何其他方法可以按照这个答案的建议进行操作。

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

我执行了以下步骤以使SystemWebView.apk工作(注意: webview.apk是我在/system/app下构建的系统应用程序;以下步骤用于安装和测试SystemWebView.apk作为第三方应用程序)

(先看第 6 步,备份 2 个文件)

  1. 首先,我按照 adb pull 的链接答案编辑packages.xmlpackages.list文件(我还没有推送它们)
  2. adb 外壳停止
  3. 我推送这两个文件
  4. 然后我删除了以下文件夹(基本上是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 install SystemWebView.apk

  2. 我还备份了/data/misc/shared_relro/中的libwebviewchromium64.relrolibwebviewchromium32.relro文件。 安装后,我注意到这些文件由于某种原因被删除了,所以我再次复制它们(首先复制到 sdcard 然后移动到shared_relro文件夹)。

  3. adb 外壳启动

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

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

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

adb 卸载 com.android.webview

失败,因为这是一个系统应用程序,您可以直接替换 /system/app/webview/ 目录中的 webview.apk,在此之后执行 stop && start 为此您需要 root 权限。

原生 Web 视图在性能和缓存方面有很多限制。
我宁愿建议您使用 Chrome 浏览器支持的 Web 视图CustomTabsClient
您可以通过在项目中添加以下依赖项来获得它。

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

更多详情请访问。
https://developer.chrome.com/multidevice/android/customtabs

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM