本文介绍: 从 Android 4.4 开始,系统浏览器内核开始从 WebKit 切换到 Chromium。为了保持 API 兼容,Chromium 为 Android WebView 提供了 Chromium WebView 封装。最初 Chromium Webview 代码是位于 AOSP 源码树中,和 AOSP 源码一起构建。到了 Android 5.0,Chromium WebView 代码依然在 A…

从 Android 4.4 开始,系统浏览器内核开始从 WebKit 切换到 Chromium。为了保持 API 兼容,Chromium 为 Android WebView 提供了 Chromium WebView 封装。最初 Chromium Webview 代码是位于 AOSP 源码树中,和 AOSP 源码一起构建。到了 Android 5.0,Chromium WebView 代码依然在 AOSP 源码树上,只是 Android 5.0 还支持单独升级 Chromium WebView,这时 Chromium WebView 由一个 名为 webview.apk (从 Chromium 源码 build 出来的叫 SystemWebView.apk文件名不是那么重要)提供。由于是一个 APK,可以像普通应用 APK 那样安装升级。到了 Android 6.0, AOSP 源码和 Chromium 源码彻底分离,AOSP 中不再包含 Chromium 的源码,取而代之的是一个 prebuiltwebview.apk

因为项目基于 Android 10,所以这里说说 Android 10 中的浏览器开发

1. AOSP 中不再包含原来的 Browser 代码,以前的浏览器是一个全功能浏览器,长这样:

e4043befbcffc9b3c9fbccf3c9cf4991.jpeg

而现在的 AOSP 中只包含了一个 WebView Shell,简陋之极:

160ce605808f0f8b93e6d668b6d0da58.png

Webview Shell 的代码 位于 packages/apps/Browser2/ 目录下。

2. AOSP 的预编译 Chromium Webview 位于 external/chromiumwebview/ 目录下。该目录还有 arm, arm64, x86, x86_64 几个子目录,这是由于浏览内核引擎主要使用 C++ 开发,所以针对不同的 CPU 架构有着不同apk。如果你的系统针对特定的平台开发,只需要更新对应架构apk 即可。编译到 ROM 中的路径product/app/webview/ ,而不是以前的 /sytem/app/webview/ 。

3. Android 10 开始引入动态分区,所以在 ROM 镜像文件中找不到熟悉的 system.img,取而代之的是 super.imgsuper.img 包含 system, product, vendor 三个子分区。AOSP 预编译的 webview打包product分区

4. 到了 Android 10,关于 WebView 你又有三种选择

这三个 Trichrome APK 的大小与 Monochrome 大致相同具有相同的优势。如果是 Android 10 及以上系统,且需要全功能浏览器,推荐使用这种 WebView 变体。在 Chromium 中的构建目标分别称为 trichrome_webview_apk、trichrome_chrome_bundle 和 trichrome_library_apk生成的输出文件为 TrichromeWebView.apk、TrichromeChrome.aab 和 TrichromeLibrary.apk

5. 关于 Webview 版本选择官方推荐使用最新稳定版本,你可以访问

https://chromiumdash.appspot.com/releases?platform=Android

查询当前稳定版测试版版本号。但需要注意的是,Chromium 采用滚动发布模式版本更新非常频繁,开发产品还是稳字当头,没有必要追求最新版本。

关于 Android 10 中的浏览器构建就先谈到这儿,当然最主要的工作还是从 Chromium 源码构建 WebView,以及对 Chromium 的定制这个话题很大,有需要再说说。

原文地址:https://blog.csdn.net/mogoweb/article/details/129292518

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33598.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注