Android webkit 时代结束,我们需要做些什么准备?

Android 4.4最新发布版本对浏览器来说是一个革命性变化,external下面的webkit源码已经被移除,前一阵子吵得沸沸扬扬的chromium作为android默认浏览器的猜测已经尘埃落定,这对于已经习惯于android webkit开发的人来说,需要去学习android chromium。根据本人观察这次大的变化需要以下几点。

(1).WebView接口没有任何变化,基于此的应用可以继续放心使用

(2).android chromium 在功能和性能较之google自己研发的Chrome浏览器(Android版)差距还是挺大。

(3).有些在androidwebkit 实现的功能在androidchromium 基本需要重来一遍,对于已经习惯android webkit开发的人员,需要快速去了解新的内核原理和实现方式。(焦点实现逻辑,绘制方式等等)


        针对这3点重点做下介绍,实际在androidchromium出世之前,google已经在调整WebView的内部实现了,已经加上了WebViewProvider(WebView继承WebViewProvider),已经为换核做好准备了.为了保持WebView上层接口的一致性,google对于android chromium还是动了很大手术。我们知道chromium本身的框架是基于多进程模型,渲染进程采用沙箱模型。大家可能看到在external目录下存在一个chromium文件,但是这个不是真正的chromium源码,这只是chromium其中的一个网络模块。这个模块google做得已经很独立,这个模块也是体现chromium速度快的新特性,目前已经好多使用开源软件的公司直接拿这个网络模块单独去使用。chromium_org是真正存放chromium源码的文件夹。目前android4.4采用chromium30版本,目前最新的chromium33 Release版本已经发布。

针对android chromium和Chrome浏览器(Android)在设计框架上还是存在较大差异。

(1).android chromium 采用单进程模型,能够省内存,当时在稳定性上就要略差一些,同时没有了沙盒模型安全系数会略低一些。

Chrome浏览器(Android) 采用多进程模型,在稳定性安全性都有一定优势,但是占用内存又会多一些。

(2).渲染方式 android chromium 要依赖于android UI架构,也就是我们常说的OnDraw模型,说到OnDraw,google采用硬件和软件2种方式。软件方式和androidwebkit使用方式接近,就是把所有的数据放到skpicture上面,然后在OnDraw的时候绘制,通知到surfaceflinger 完成最终混合操作。硬件方式:依赖于android本身UI系统,目前只能在android4.4平台上运行。具体如何运作,在后续的文章中会进行详尽介绍。

Chrome浏览器(Android) 只有硬件加速一种,但是这种硬件加速的模式和上面的有所不同,采用SurfaceView方式,道理很简单就是申请一块单独的内存,专门给GPU线程来使用(android版本的GPU存在Browser进程中以线程方式存在),这样做的目的,可以同主UI线程分离,使得页面动作处理更加顺滑。

(3) android chromium 在功能上目前不支持WebGL,WebRTC,WebAudio等,Chrome浏览器(Android版)支持绝大多数HTML5功能。


   Android webkit 我们知道如果要对焦点定制,我们直接修改webkit封装层就可以,但是如果要修改android chromium中的焦点或者js扩展一些功能,就显得不是那么直接,其中有以下几点原因:

(1)  多进程的框架带来了,全局数据的共享以及控制都显得不方便。拿简单的settings的数据控制,都带来不方便性

(2)  android chromium 内核改名为blink,虽然在基本的功能上和webkit有非常相近之处,但是在具体的逻辑上,改动已经非常大,特别是在Loader过程,而且以后会越走越远。也就是说在以后的开发过程中,只是掌握webkit的框架是远远不够的,需要跟上blink的节奏。

(3)  从绘制方式来看,android chromium的混合主要采用CC(chromium compositer) 模块,这和webkit直线式绘制模式有很大区别。

以上是研究了android chromium代码得出的一些结论,如有不当之处欢迎指正。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值