抱歉,该网页目前还不存在中文版本,请继续浏览其他网页!

在windows平台下使用Microsoft Visual Studio开发Crosswalk

我们可以使用Visual Studio IDE来开发、调试和运行Crosswalk。Visual Studio通过提供方便的功能使得贡献更加容易,例如代码补全,先进的debugger等。然而因为Crosswalk是一个相当大的代码库,所以Visual Studio可能需要很多的RAM用于操作(~1.2GB)。

Visual Studio入门

  1. 进入Tools -> Options。打开"Projects and Solutions",然后"Build and Run"。在新的屏幕上,输入1进行并行项目编译。这是因为Ninja和MSVS的整合不支持并行编译。但是这并不意味着不存在多个编译作业。每个目标将会被一一建立(例如base/然后content/),但是为了建立不同的文件,多个作业将会被创建。最终,你的CPU内核将得到充分利用。

  2. 进入File -> Open -> Project/Solution。导航到crosswalk-src/src/xwalk/并且打开xwalk.sln。你也可以打开另一个工程,例如content/content_shell.vcxproj,如果你仅仅想编译content_shell。如果xwalk.sln不存在,请确定你是否正确地设定了GYP_GENERATORS(参见编译部分)。

  3. MSVS将会打开和解析所有的依赖。现在你已经准备充分了。首次解析将花费一段时间,然后加载所有的解决方案。解析只需要一次,然后便是增量式。

  4. 选择编译Release或者Debug模式:编译菜单下,进入"Configuration Manager",选择需要的"Active Solution configuration"。然后进入"Build" -> "Build Solution"后等待下一步。或者你也可以在Solution Explorer中选取一个目标(例如,xwalk或者xwalk_builder)并且仅仅建立那个。

  5. xwalk.exe可执行文件应该在crosswalk-src/src/out/Release或者crosswalk-src/src/out/Debug目录下。

在Visual Studio内部运行和调试Crosswalk

  1. 在Solution Explorer (右侧面板)中,你可以点击想要调试的目标。假设你想调试xwalk,你可以立刻点击它并且选择"Set as startup project"。请确保你在调试中,否则断点将不会被触发。

  2. 现在你需要将正确的参数传递给Crosswalk的可执行文件,这样它便能加载一个页面/应用。在Debug菜单中,选择"xwalk properties"(或者"mytarget properties"),然后在新的窗口,导航到"Configuration Properties",最后"Debugging"。在"Command Arguments"指定你想要传递的参数。点击OK。

  1. 如果你按下F5或者点击"Debug" -> "Start Debugging",它将发布一个带有debugger的xwalk。注意它是附加到Browser Process。如果你想依附于Render Process,点击Debug菜单中的"Attach to Process"并点击正确的process。你可以在编辑器里面添加断点,并且观察变量等。非常方便。

充分利用Visual Studio

关于充分利用Visual Studio创建的一些小技巧:

  • 因为Chromium工程很大,Visual Studio会花费大量的时间用于打开xwalk工程并解析很多在大多数情况下你并不需要的资源(例如,所有的第三方代码)。幸运的是有一款可以用于过滤加载素材的插件。请下载并安装Funnel。现在每次打开xwalk工程时,你可以选择是否部分加载项目并且可以选择哪些需要加载。一旦你开启你的过滤器,Funnel便会记下。它使得更快地加载整个解决方案,并且同时在保证优先使用IDE的所有优势的前提下,降低了内存使用。

  • 确保安装了Microsoft Web Essentials,然后你便可以在编辑HTML/JS/CSS文件时获取额外的功能。

  • Visual Studio拥有一个“功能”——即使有错误发生它也会尽力尝试编译。有时候你想在编译结束之前就找到出现错误的地方。为了在第一个错误处停止编译(有点像ninja的-V1),你可以在StopOnFirstBuildError extension处下载相关的扩展包。

  • 如果你想为所有的xwalk进程自动附加调试器,请使用Microsoft Child Process Debbugging Power Tool

  • 如果你想减少链接时间,你可以设置GYP_DEFINES = component=shared_library。它会为每个crosswalk的子项目创建DLL并且避免xwalk.exe与所有其中的子项目链接。