首页 > 代码库 > [Chrome]关于面向接口编程的应用
[Chrome]关于面向接口编程的应用
面向接口编程是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
[Chrome]关于面向接口编程的应用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。