[英]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 个文件)
packages.xml
和packages.list
文件(我还没有推送它们)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 install SystemWebView.apk
我还备份了/data/misc/shared_relro/
中的libwebviewchromium64.relro
和libwebviewchromium32.relro
文件。 安装后,我注意到这些文件由于某种原因被删除了,所以我再次复制它们(首先复制到 sdcard 然后移动到shared_relro
文件夹)。
adb 外壳启动
之后,我测试了一个包含WebView
的简单应用程序,并且可以看到加载的网页。
您必须使用 ninja -C out/Release system_webview_apk 构建 SystemWebView.apk
有关更多详细信息,请查看此页面。 https://chromium.googlesource.com/chromium/src/+/master/docs/android_build_instructions.md和https://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.