理解WebKit和Chromium: Chromium移动版(Chromium for Mobile: Android & iOS)

转载请注明原文地址:http://blog.csdn.net/milado_nju/article/details/8107712

#Chromium的移动版 (Chromium for Mobile)

##概述

Chromium的诞生于桌面(desktop)系统之上的,这其中包括Windows, Linux和Mac。这奠定了Google Chrome的地位,市场份额不断上升。随着移动操作系统的流行,Chromium也迫切需要拓展其在移动设备上的市场,所以Chromium的Android版和iOS版应运而生了,这两个背后有不同的故事。

本章讨论一些有关移动版的有趣事情,这里面没有特别细节的东西,主要是一些技术方向性方面的描述。


## 移动版

chromium的iOS版和Android是为两个流行的移动操作系统设计的,其区别与传统的桌面版,特别是UI方面进行了较大的重新设计。两者从外观上看颇为相似,但是其内部的渲染引擎的差别非常的大,原因在于iOS对应用程序的控制造成的,而非两个操作系统的差异性。


##Chromium的iOS版

iOS是最受欢迎的移动操作系统之一,其设备数量以亿计,所以能在iOS上成功就特别重要了。显而易见,这有助于浏览器的市场份额。苹果对iOS上的应用程序是严格审核的,浏览器作为非常重要的应用程序,当然也不例外。

不幸地是,苹果不允许浏览器有自己的内核(WebKit或者其他),理由是安全性。所以,chromium的iOS版始终没法通过审核,其中的争论也是非常激烈。抛开这些争论,Chromium的iOS版已经上线了,不过这是一个没有chromium内核的浏览器,其基于的是iOS提供的UIWebView(一个嵌入式的网络渲染模块,该模块提供对网页渲染和HTML5的支持),加上Chromium风格的UI。

有趣的是这个UIWebView跟Safari的所使用的支持HTML5的模块是不一样的。相对于Safari的浏览器内核,其有两个明显的缺点:

1. Safari使用Nitro JavaScript引擎,而UIWebView使用WebKit缺省JavaScript引擎,性能上要差很多;
2. Safari使用单独的线程而不是主线程来做渲染工作,悲剧的是UIWebView渲染是在主线程来完成,这会阻碍事件的响应。
好吧,有了这两点,其他基于UIWebView的浏览器被Safari抛开一大截了,而且这些浏览器只能使用UIWebView,而不能有自己的浏览器内核。


##Chromium的Android版

我们知道Chromium是一个开源的项目,但是,chromium的Android版从开始之初就是一个闭源的项目,其基于一个稳定的chromium版本,在Google的内部开发,直到发布Google Chrome的Android 1.0版。

跟iOS不一样,Android版从出生就是亲儿子,其跟Android关系非常紧密,怎么说呢,Android上的应用程序一般都是基于Android SDK和Android NDK的API来开发的,Chromium可不是这样,它其实是使用了Linux平台的API和很多第三方的库,可以说是一个有“特权”的应用程序。

目前Google Chrome的Android版是基于chromium18开发的,虽然是闭源的,但是Google开放了c++端的代码(参考文献第一条可以下载这部分代码,是一个基于chromium18的zip包),而Java端的代码开放的很少,与UI和浏览器功能相关的则基本没有开放。Google Chrome的Android版本中也加入了一些新的特性和架构,例如in-process-gpu, threaded compositing,基于Android UID isolate的沙箱技术等等,对于HTML5的支持也非常的到位,各种主流的HTML5功能基本都支持,除了WebGL,这都会在以后的章节作一一介绍。

无须担心的是Google的开放性。Google正在逐步释放出Android版的源代码到Chromium的源代码库(upstream trunk)中,目前对开放者来说,很多功能逐步加入,所以很多单元测试已经被打开了(实际上本人也参与贡献了一些patch)。对用户来说,主要的进展是能够通过一个简单的浏览器(content shell)渲染网页,虽然有很多的bug,但是基本的渲染功能是可以工作的,而且支持HTML5的canvas2D和WebGL等功能(当然,质量还是个问题)。这部分做过比较深的研究,也贡献给upstream一些代码,相对也比较熟悉,会在后面的章节中作专门的介绍。


## 参考文献

1. https://developers.google.com/chrome/mobile/docs/faq

2. http://peter.sh/2012/02/bringing-google-chrome-to-android/


By yongsheng@chromium.org

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
要调试 Chromium for Android 源代码,需要使用 Android Studio 和 Chromium for Android 源代码。以下是步骤: 1. 下载 Chromium for Android 源代码 从 Chromium 的官方网站上下载 Chromium for Android 源代码。下载完成后,解压到本地。 2. 安装 Android Studio 从 Android Studio 的官方网站上下载最新本的 Android Studio。安装完成后,打开 Android Studio。 3. 导入 Chromium for Android 项目 在 Android Studio 中,选择 File -> New -> Import Project。在弹出的窗口中,选择 Chromium for Android 源代码所在的文件夹。然后按照向导完成项目导入。 4. 配置 Chromium for Android 项目 在 Android Studio 中,打开 Project Structure 窗口。选择 app 模块,并在 Dependencies 标签页中添加 Chromium for Android 的依赖库。然后在 Build Variants 标签页中选择正确的 Build Variant。 5. 配置 Chromium for Android 运行环境 在 Android Studio 中,打开 Run/Debug Configurations 窗口。点击左上角的加号,添加一个新的 Android Application 配置。在 Configuration 标签页中选择正确的模块和启动 Activity。然后在 Profiling 标签页中选择正确的调试方式。最后点击 OK 保存配置。 6. 启动调试 在 Android Studio 中,点击 Run 按钮启动调试。如果一切正常,就会在设备或模拟器上启动 Chromium for Android 应用,并进入调试模式。 以上就是调试 Chromium for Android 源代码的步骤。需要注意的是,由于 Chromium for Android 是一个庞大而复杂的项目,调试起来可能比较困难,需要具备一定的 Android 开发和调试经验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值