由 Android WebKit html5 引发的联想

由 Android WebKit html5 引发的联想

 转载请注明出处:http://blog.csdn.net/lihui130135

  作者:李东辉

  邮件:[email protected]

针对android webkit html5的支持目前已经开始,目前html5的标准,也最终还没有最终定论,因此各个浏览器对于支持的力度大不一样

而且有些标准接口还没有最终定论造成了,各个浏览器实现方式上,也不尽相同.

现在有个专门测试html5支持度的网站(http://html5test.com/index.html)

我的机器上安装的是chrome18,我的得分状态如下:

由 Android WebKit html5 引发的联想_第1张图片

哈哈,得到384分,总分是500分,目前支持最好的遨游

由 Android WebKit html5 引发的联想_第2张图片

457分了,相当高的分数了

由于android的版本变化如此之快,造成了各个版本对html5的支持情况都不尽相同,而且android还没有给出相应的很详细的文档,弄得大家在PC机器上好不容易按照html5语法实现的,结果在平台上实现,存在这样那样的问题,根本的原因就是对于android webkit html5 底层的实现了解的还是太少,对整个android webkit底层框架还不是很熟悉,今天我写这个目的并不是大篇幅的介绍android webkit的底层框架,而是先向大家介绍下,目前一些基本的背景,android webkit 框架性东西会慢慢展开,去学习。在很多的时候,我们都不知道我们所处的版本对某些功能支持到底如何,搞得大家摸黑走路。我也是根据我这些年来对android webkit理解给大家一点启示,等有了一个整体的框架认识之后,再有的放矢的对框架展开学习,那样才更加有意义,不至于被google疯狂代码更新速度所淹没。

举个简单的例子,比如在android2.2平台上面对于html video 支持只是能够支持到全屏播放的能力,而且要设置一个User-Agent都需要修改framework代码框架中framework-res中的系统资源,才能生效搞得相当复杂,至于为什么要设置User-Agent就是为了让服务器端知道你是Apple平台,我获取的数据不是flash而是html5的数据,这样就可以绕开对Adobe支持的限制,打了android4.0.1平台上设置个User-Agent只需要在Browserapk中就可以搞定,方便了许多。经历了修改后的痛苦再去看google的修改觉得不过如此。有时候我们好不容易搞出来的功能等我们辛辛苦苦的搞好之后发现,google在支持的版本已经搞定,好不气恼。说远了,哈哈。我们还是回到html5 video支持情况,在android4.0.1上已经能够支持小屏幕播放了,这在当初我可是准备下大功夫去做这个事情。Google强大的团队力量轻松搞定。

就好比大战知己知彼百战不殆,我们要了解我们现在处在什么阶段显得很关键,顺便提一下前几天解决的问题,到现在才真正的明白当初google是怎么想象对于这个模块的规划。

搞过Web的人都知道JavaScript中接收onkeydown事件,能够正常接收上下左右键,但是这个基本的功能在android4.1之前的版本都是不支持这个功能得,太不可思议了吧。这是事实。但是经过前后这么一了解,我们也就大概知道当初google为什么要这么做,最初google收购android公司的时候,基本的雏形已经具备。Google开始为了早点推出android这个概念,也就基本上还是沿用原先的概念,所以android系统上还是存在很多历史遗留问题。

只要你发现每次版本在之前的版本对于相同功能的实现,存在很大的变化,这基本上就是google在解决自己的历史遗留问题,其中webkitandroid对接层,这块存在大量冗余的代码在android4.1版本上拿掉,给人的感觉android上的webkit越来越有原生态的webkit味道了,第一次接触android的时候看到webkit的代码就感觉这都做了些啥啊,乱七八糟的搞了这么多中间附属品。现在看看的exteral/webkit/Source/WebKit下的代码清爽多了。

上面只是列举几个小的例子说明android webkit 更新之快给大家的开发造成很大的不方便,这也正好体现出做google合作伙伴有多优越(提前拿到代码,给你开发私有分支等特权)再举个小例子我们在犹豫到底从android4.0.3升级到android4.0.4好那,还是直接顶到android4.1好那,如果你发现了4.1有这么多好的事情已经给你做好了,那么直接来4.1吧,虽然移植的时候比4.0.4痛苦些,但是还是值得的。个人觉得4.1是个里程碑式的版本。

好了,啰嗦了这么多,想起到抛砖引玉的左右,不知道会不会招来小石头块,哈哈。

以上之言难免有不当之处,请及时提醒,谢谢。




你可能感兴趣的:(由 Android WebKit html5 引发的联想)