Android壳程序实现方式对比

vs. 原生开发、纯H5(依赖浏览器)、浏览器壳程序(混合应用的方式)
本篇指的是最后一种

Android手机壳程序,用系统WebView 和 内嵌Chromium 实现方式的对比
使用系统WebView 内嵌Chromium Firefox的引擎 - GeckoView 组件
说明 从Android 7.0(开始,Android系统内置的WebView组件默认使用了Chromium作为其基础浏览器引擎。(Android 7.0是Google于2016年8月22日发布) 1、Crosswalk:基于谷歌 Chromium/Blink 内核。于 2017 年起停止维护,对应 Chromium 版本为53。通常是低版本Android设备才用该方案
2、自行基于 Chromium 的 Android 版本定制。
GeckoView 将 Mozilla 的Gecko 浏览器引擎封装在一个可重复使用的Android库中,可用于APP应用来内嵌浏览器引擎。
GeckoView的用途与Android内置的WebView类似,但它有自己的API,不是一个替代品。
版本更新 随 Android系统版本的更新。在 Android7.0以后支持了独立于Android系统更新。
不过国厂基本都做了屏蔽
随我们app一起更新 随我们app一起更新
隔离性 当用户更新Android 系统的 WebView 时,可能导致依赖 WebView 的APP将出现崩溃的情况 不受系统影响 不受系统影响
apk安装包大小 普通 更大(内嵌Chromium会增加应用的体积) 更大
资源消耗 \ \
安全性和隐私保护 \ \
定制和扩展性 如果不做深度定制,只是做功能上的包装,基本没有差别。
不支持定制 可根据需求定制和扩展功能
开发成本 相对简单易用,直接使用 较高
>>暂未找到可直接使用的库(Crosswalk内核版本过低,对内核版本有要求时没法直接使用)
>>自行基于 Chromium 的 Android 版本定制
>>也可选择购买 腾讯浏览服务/UC 等
相对简单易用,直接使用

国内大厂采用的方式:自行包装浏览器内核

字节系:核心产品有抖音,今日头条,番茄小说等 APP,内核版本主要为 Chromium 75 和 Chromium 88
阿里系:核心产品有 UC 浏览器,夸克浏览器等 APP,内核版本主要为 Chromium 78
腾讯系:核心产品为 X5 浏览器,集成在各个腾讯系 APP 里,同时提供了 腾讯浏览服务,第三方 APP 可以自由接入。内核版本主要为 Chromium 77 和 Chromium 89
微信系:微信之前的浏览器为 X5 浏览器,后为了和小程序的浏览器内核同构,2020-05-28 (我目前在互联网上能找到的最早时间)后从 X5 迁移到 XWeb,内核版本主要为 Chromium 78 和 Chromium 86
百度系:核心产品有手机百度,内核版本主要为 Chromium 97
360 系:核心产品有 360 浏览器,内核版本主要为 Chromium 81
外来系:主要为 Google Chrome 浏览器和微软 Edge 浏览器,这两个浏览器基本是就是内核事实标准,一般是最新的两个版本

来源:知乎 2022.10

https://www.zhihu.com/question/557248689/answer/2711881574 

QA(第二列主要是摘自chatGPT的答复)

WebView组件 使用Android的WebView组件来呈现加载的网页内容。WebView是一个强大的控件,可以在应用程序中显示网页,并提供与Web内容交互的功能。
Android 系统为什么会内置WebView组件? 1、原生应用的网页展示:WebView组件使开发者能够在原生Android应用中展示网页内容,而无需跳转到外部浏览器应用。这样可以提供更一致的用户体验,并使应用与网页内容更紧密地集成在一起。
2、跨平台兼容性:WebView组件为开发者提供了在Android设备上展示网页内容的标准方式,这使得应用能够在不同的Android设备和版本上具有一致的行为和外观。无论是低端设备还是高端设备,开发者可以使用相同的API和代码来处理网页内容。
3、原生控件的支持:WebView组件支持在网页中使用原生Android控件和功能。这意味着开发者可以在网页中使用Android的UI组件、传感器、数据库等功能,从而实现更丰富和复杂的交互体验。
4、安全性和隐私控制:内置的WebView组件受到Android系统的安全机制和权限控制的保护。这确保了在WebView中加载的网页内容受到系统级别的安全限制,防止恶意网页对设备和用户数据的攻击。同时,用户可以通过Android的权限系统对WebView的访问进行控制,保护个人隐私。
5、离线功能支持:WebView组件支持缓存网页内容和资源,使得应用能够在离线状态下展示之前加载的网页内容。这对于网页应用的可用性和性能提供了重要的改进。
Android 系统的内置WebView组件是Chromium么? 从Android 7.0(Nougat)版本开始,Android系统内置的WebView组件默认使用了Chromium作为其基础浏览器引擎。Chromium是Google Chrome浏览器的开源版本,它提供了更强大和现代的Web功能,同时也具有更好的性能和安全性。

在Android 4.4(KitKat)到Android 6.0(Marshmallow)版本之间,系统使用的是基于WebKit引擎的WebView组件。然而,由于WebKit的一些限制和不足,以及Chromium的优势,从Android 7.0开始,Google决定将WebView切换到Chromium引擎上。

使用Chromium作为内置WebView的好处包括:
1、兼容性和标准化:Chromium引擎更好地支持现代Web标准,确保应用程序能够正确呈现和交互各种网页内容。
2、安全性和隐私:Chromium引擎受到Google的积极维护和更新,从而能够及时修复漏洞和提供更好的安全性和隐私保护。
3、性能优化:Chromium引擎在性能方面进行了多项优化,包括更快的网页加载速度、更低的内存消耗以及更流畅的滚动和动画效果。
4、开发者工具:Chromium提供了强大的开发者工具,使开发人员能够更好地调试和优化WebView中的网页内容。
需要注意的是,尽管系统的内置WebView组件使用了Chromium作为其基础引擎,但Google仍定期发布独立的Chrome应用程序,以提供更完整和全面的浏览器体验。
1、官网显示Android 4.4就已经是Chromium内核,只是名字还叫webkit
2、从Android 5.0(Lollipop)开始,WebView组件可以通过Google Play Store以独立的APK形式进行更新和升级(部分国内厂家去掉了此功能)

https://developer.android.com/guide/webapps/migrating?hl=zh-cn
https://developer.chrome.com/docs/multidevice/android/
在Android上实现浏览器功能,除了使用系统内置的 WebView 组件,还有哪些技术方案? 1、使用自定义WebView:可以使用第三方的WebView组件,例如Crosswalk Project、GeckoView等。这些组件提供了更高级的功能和更好的性能,并且可以与系统WebView有所区别。
2、使用Chromium内核:Chromium是Google Chrome浏览器的开源版本,你可以使用Chromium内核构建自己的浏览器应用。Chromium提供了更先进的功能和性能,但也需要更多的资源和复杂性。
3、使用第三方浏览器引擎:除了WebView和Chromium,还有其他的第三方浏览器引擎可供选择,例如Mozilla的Gecko引擎、Opera的Blink引擎等。这些引擎可以提供与标准WebView不同的特性和功能。
4、使用自定义网络库:除了使用Android的默认网络库,你可以选择使用其他的网络库来处理网络请求,例如OkHttp、Retrofit等。这些库提供了更强大和灵活的网络功能,可以满足特定的需求。
5、使用混合应用开发框架:如果你的目标是同时支持多个平台(如Android和iOS),可以考虑使用混合应用开发框架,例如React Native、Flutter等。这些框架允许你使用Web技术(如HTML、CSS、JavaScript)构建跨平台的应用,并提供了访问原生浏览器功能的接口。

你可能感兴趣的:(android,webview,Chromium)