[Chrome]关于面向接口编程的应用

简介: 面向接口编程,或者说是面向抽象,是OOP中有效隔离变化的手段,同时要求开发者必须对问题进行有效抽象。Chrome为了兼容AOSP WebView和Chromium Android WebView, 在实现中做了许多的抽象,充分做到了上层只依赖于接口的原则(依赖倒置),可以有效的兼容不同的WebView实现,隔离其内部的变化。
面向接口编程,或者说是面向抽象,是OOP中有效隔离变化的手段,同时要求开发者必须对问题进行有效抽象。Chrome为了兼容AOSP WebView和Chromium Android WebView, 在实现中做了许多的抽象,充分做到了上层只依赖于接口的原则(依赖倒置),可以有效的兼容不同的WebView实现,隔离其内部的变化。

下面即为WebView到Content层的分解。刚开始读Chrome的代码,还没有细致整理,以后慢慢完善。

WebViewFactory是一个顶层类(单例),WebView就是通过它来获取不同的WebViewProvider,即可以创建出不同的WebViewChromium (就是WebView的核心实现。) 这个设计是为了同时兼容AOSP的WebView。如果我们需要提供一个完全不同的WebView实现,就可以实现一个新的WebViewProvider和WebViewChromiumFactoryProvider来完成。
    

Android WebView为了操作不同的WebView实现,将具体的实现再通过WebViewProvider Interface封装,称为WebView的后端(backend)。对于Chromium Android WebView而言,它再通过AwContents与Chromium Content层交互。如果是另外一种WebView实现逻辑就可以在这里分隔开了。如下图:
    

再深入一层, AwContents通过Content API的Java Wrapper类与Content API的Native类进行交互。


到了Content Native层后,除了一部业务逻辑处理,更重要的是和Render的交互。除了使用Delegate/Observer监听之外,自己也提供相同的机制,供上层使用。


转载请注明出处: http://blog.csdn.net/horkychen
目录
相关文章
|
4月前
|
Web App开发
成功解决Chrome浏览器 控制台下看不到接口信息的问题
这篇文章提供了解决Chrome浏览器控制台不显示接口信息问题的方法,包括检查过滤设置和确保“保留日志”开关已打开。
成功解决Chrome浏览器 控制台下看不到接口信息的问题
|
7月前
|
Web App开发 Java Serverless
Serverless 应用引擎操作报错合集之阿里函数计算中,使用自定义运行时部署程序时,发现Chrome层已经建立但运行程序仍然缺失如何解决
Serverless 应用引擎(SAE)是阿里云提供的Serverless PaaS平台,支持Spring Cloud、Dubbo、HSF等主流微服务框架,简化应用的部署、运维和弹性伸缩。在使用SAE过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
7月前
|
Web App开发 网络协议 测试技术
教你用Chrome 浏览器+Postman搞定接口测试
本文介绍了软件测试的两类主要类型:客户端测试(包括UI和兼容性测试)和服务端测试(主要为接口测试)。接口测试能直接检验服务端功能,尤其在复杂如阿里核心链路的系统中,它能更早发现潜在问题。分层测试模型显示,从单元测试到UI测试,越高层的测试发现bug的成本越高。尽管接口测试覆盖广泛,但不能替代客户端测试,因为UI测试关乎用户体验。文中推荐了Postman作为接口测试工具,并展示了如何使用Postman发送GET请求。此外,还介绍了cURL命令行工具及其在接口测试中的应用,包括模拟请求、修改参数和调试。通过实例,读者可以学习如何使用cURL进行GET、POST请求及设置认证和代理。
|
Web App开发 JSON 网络协议
软件测试|Chrome 浏览器+Postman做接口测试
软件测试|Chrome 浏览器+Postman做接口测试
软件测试|Chrome 浏览器+Postman做接口测试
|
Web App开发 安全
接口框架中WebDriver启动IE、Firefox和Chrome浏览器
接口框架中WebDriver启动IE、Firefox和Chrome浏览器
接口框架中WebDriver启动IE、Firefox和Chrome浏览器
|
Web App开发 移动开发 缓存
Chrome扩展应用
Chrome扩展应用
Chrome扩展应用
|
Web App开发 JSON 网络协议
干货 | Chrome 浏览器+Postman还能这样做接口测试 ?
干货 | Chrome 浏览器+Postman还能这样做接口测试 ?
|
Web App开发 网络协议 数据可视化
干货 | Chrome 浏览器+Postman还能这样做接口测试 ?
![](https://ceshiren.com/uploads/default/original/3X/9/1/91a9900229e7f9d6a3adc4142d1a762d486c6a6a.png) 如果把测试简单分为两类,那么就是客户端测试和服务端测试。客户端的测试包括UI测试,兼容性测试等,服务端测试包括接口测试。接口测试检查数据的交换,传递和控制管理过程,它绕过了客户端,直接对服务端
|
Web App开发 前端开发 JavaScript
Chrome 89 开启 Web 应用的物联网时代
3月初刚发布的Chrome 89,带来了哪些有意思的新特性呢?
530 15
Chrome 89 开启 Web 应用的物联网时代
|
Web App开发 安全 开发者
chrome 插件安装:"无法添加来自此网站的应用",解决办法。安装本地crx插件方法
chrome的一些版本进行了安全控制,我们无论是网上直接安装还是本地下载安装crx插件时会出现问题,那就是"无法添加来自此网站的应用",这是为了防止非chrome商店正式渠道安装存在问题的插件带给我们的安全隐患。
330 0
chrome 插件安装:"无法添加来自此网站的应用",解决办法。安装本地crx插件方法