android - Google Chrome android 应用程序的源代码?

标签 android google-chrome android-layout

<分区>

我想构建一个与 Google chrome 的 android 版本相似的 UI。我如何自己构建 Android 版本的谷歌浏览器?

最佳答案

我对深入研究的建议是查看 http://code.google.com/p/chromiumembedded/ 的源代码.

它是 Chrome 的精简版,如果您查看它专门使用的文件,无论是包含在其源代码树中的文件,还是其中包含的来自 Chromium 存储库的文件。 Chromium 代码库包含大量内容,其中大部分实际上并不在浏览器中。有大量来自第三方存储库的代码,然后在构建过程中被归结,或者 Chromium 的实现位于树中的其他地方,有很多副项目(虽然有趣并且是广泛的很棒的资源stuff) 会阻止你实现你的目标,即专门磨练浏览器的实现以及它们如何组合在一起。

CEF 很棒,因为您可以看到有人已经完成了将所有这些东西放在一起构建一个项目的过程,这个项目的范围非常具体地限定在浏览器 View 中,仅此而已。您可以很容易地看到哪些部分主要源自 webkit,您可以看到 Google 实现的交叉点,您可以很容易地看到 V8 是如何融入其中的。

我说的是相对而言“容易”,因为我们仍在讨论大量的代码。 CEF 会将您置于需求的中心,但这些东西仍然从树的其余部分吸收了大量的各种东西。在一台配备 12 GB RAM 和 8 核的非常好的计算机上编译它大约需要一个小时,生成的文件大约需要 6-10 GB,具体视情况而定。

至少,不会有任何形式的快速跳入浅端来零碎地挑选一些东西。浏览器必然是非常复杂的工程,因为它们必须包含如此大量的独立功能,然后将它们组合到一个共享的上下文中。你可能会找到你正在寻找的东西,但你会发现它是一个类库的一部分,这个类库可能由几十个或数百个文件组成,而这些文件又依赖于另外一百个这样的库来处理每项任务,所以要真正带走一些东西,你必须花时间吸收比任何给定信息都多得多的信息。

编辑:哦,也作为你的具体例子。

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

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

“chrome”树主要包含直接实现(虽然很多东西不在那里,甚至大部分,但这是起点)。这与 chromeos 有重叠(chromeos 是一种极端的 chrome 浏览器)

/chrome/浏览器 http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/

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

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

将您带到浏览器的大部分 ui 代码所在的位置。当存在交叉或东西迁移时,它可能会造成混淆,例如根 src 目录中有一个“ui”,它有一些交叉。

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

其中的代码量少得惊人。但这是你经常发现的。此处的代码是在其他地方构建的许多类的实现。对于非 webview gui 组件,您会发现它们主要指向根“ui”和那里的 native 小部件,如果我没记错的话,这就是大部分实际事件处理代码所在的地方。

关于android - Google Chrome android 应用程序的源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27059494/

相关文章:

android - 如何在安卓客户端上使用doorkeeper?

css - 纯 CSS-视差 : Inconsistent Scrolling between Firefox and Chrome

javascript - 我们可以使用 Google Chrome 中的 Web Speech API 来识别来自用户麦克风以外的其他来源的语音吗?

android - 如何让 android ListView 项目选择器使用 state_pressed

android - GridView 特定项目数量高度

Java - 在一秒内多次调用包含 for 循环的方法会导致主线程的阻塞最小化

android - 如果我们使用多个 APK,BuildConfig.VERSION_CODE 不会改变吗

windows - 在Bamboo服务器上使用Chrome v73.0,ChromeDriver 2.46从渲染器: 600. 000接收消息超时

android - RecyclerView.ViewHolder 无法使用 ButterKnife 绑定(bind) View

java - Android,我应该将内容居中吗?