谷歌Chrome安卓应用的源代码?

时间:2014-11-21 10:45:54

标签: android google-chrome android-layout

我想构建一个与Google Chrome的Android版本有相似之处的用户界面。我如何自己构建谷歌浏览器的Android版本?

2 个答案:

答案 0 :(得分:8)

我对潜水的建议是看一下http://code.google.com/p/chromiumembedded/的来源。

它是Chrome的精简版本,如果您查看它专门使用的文件,可以是源代码树中包含的文件,也可以是Chromium repo中包含的文件。 Chromium代码库是一个庞大的东西,其中大部分实际上并不在浏览器中。从第三方回购中获取了大量代码,然后在构建过程中将其归结为或者Chromium的实现位于树中的其他位置,那里有许多副项目(而有趣的和广泛的东西的一个很棒的资源)将阻止你实现你的浏览器实现专门磨练的目标以及如何组合在一起。

CEF很棒,因为你可以看到有人已经完成了将所有这些东西组合在一起构建一个非常专门用于浏览器视图的项目的过程。你可以很容易地看到哪些部分主要来自webkit,你可以看到谷歌的实现中交叉的位置,你可以很容易地看到V8如何被混合到一起。

我说"轻松"相对而言,因为我们仍然在谈论大量的代码。 CEF会让你处于要求的中心位置,但这些东西仍然会从树的其他部分中吸取大量的东西。编译它需要一个小时在一台非常好的计算机上,有12个ram和8个内核,生成的文件占用6-10 gigs。

至少,不会有任何类型的快速跳入浅层以在这里或那里零碎地挑选一些东西。浏览器必然是非常复杂的工程,因为它们必须包含如此大量的单独功能,然后将它们组合成一个共享的上下文。您可能会发现您正在寻找的一件事,但您会发现它是类库的一部分,可能由数十个或数百个文件组成,而这些文件又依赖于一百个更多的这些库来处理每项任务,所以要真正拿走一些东西,你必须花时间去接受比任何给定信息更多的东西。

编辑:哦也是你的具体例子。

src是root http://src.chromium.org/viewvc/chrome/trunk/src

/ chrome http://src.chromium.org/viewvc/chrome/trunk/src/chrome

" chrome"树很大程度上包含直接的实现(虽然很多东西都没有,但大部分都是,但这是起点)。这与chromeos重叠(chromeos是一种疯狂极端的铬浏览器)

/ chrome / browser http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/

让你接近你想去的地方。你开始看到你可以与浏览器匹配的特定引用,比如标签和诸如此类的东西(忽略了实际浏览器实现本身的巨大大象,它占据了所有这些东西的大部分思维空间)

/ chrome / browser / ui http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/

将您带到浏览器的大多数ui代码所在的位置。当有交叉或者移动东西时,它可能会让人感到困惑,比如那些" ui"在根src目录中有一些交叉。

最后http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/ui/omnibox/

其中包含的代码数量惊人。但这是你发现的很多东西。这里的代码是在其他地方构建的许多类的实现。对于非webview gui组件,你会发现它们主要指向根" ui"以及那里的本机小部件,如果我没记错的话,这是大部分实际事件处理代码的地方。

答案 1 :(得分:3)

请阅读Chrome FAQ

  

Chrome for Android是开源的吗?

     

Chrome for Android源自Chromium。自第一个版本推出以来,我们一直在稳步开源所有关键组件。您可以使用说明here

为Chrome for Android构建适用于Android的各种Chromium组件