文章目录:
- 1、如何快速获取Chromium源码和编译
- 2、eddybuddychannel什么意思?
- 3、netty channelid全局唯一吗
- 4、Netty中的channelRead和messageReceived的区别
如何快速获取Chromium源码和编译
1.下载depot_tools
注意:不要使用拖拽和复制粘贴的方式从压缩包中提取文件,否则”.git”隐藏文件夹下的文件不会被提取出来。“.git”文件夹是depot_tools自动更新的必要文件。你可以使用解压工具的“解压文件…”操作。
环境变量设置,给个图更直观:
管理员权限用户:
修改PATH系统变量,在最后增加depot_tools的路径地址,如:C:\workspace\depot_tools.
非管理员用户:
添加PATH用户变量:在用户变量点击新建,增加PATH变量名,变量值为depot_tools的路径地址,如上图。
2.安装git和python
如果你已经手动安装了msysgit和python,则跳过这一步。
从命令行到保存chromium源码的路径下,运行命令:gclient。第一次运行,gclient将会安装所有和获取源码相关的工具,例如git,python:
Fetching
from
fatal:
unable toaccess '':Failed connect to chromium.googlesource.com:9217; No error
Cannot
rebase:You have unstaged changes.
Please
commit orstash them.
Failed
to updatedepot_tools.
如果遇到上述问题,应该是你无法连接到chromium服务器,你可以使用vpn或者代理。
注意:
1)如果你在cygwin或者PowerShell等非命令行窗口运行gclient时,有可能能正常运行,但是msysgit,python和其他工具可能不会正确安装。
2)在首次运行gclient时,如果看到和文件系统相关的很奇怪的错误,你可以去这里找答案:
.
3)如果你在windows xp上运行,并且看到像下面的错误:“The system cannotexecute the specified program”, 请安装
“Microsoft Visual C++ 2008 RedistributablePackage”.
3.git设置
Git安装后需要一些设置
如果你从来没有用过git,还是先百度一下git的使用方法,至少知道一些简单的操作命令。
*在获取代码之前,确认git,python,depot_tools已经加入环境变量中。
4.获取代码
1)获取主干代码:到达保存chromium代码的路径,直接右键git bash,输入$ fetch --nohooks chromium --nosvn=true开始获取主干代码:
这个过程比较慢,估计下载需要几个小时时间,慢的话也许十几个小时,所以大家最好把这一步放在晚上睡觉时进行。
2)获取主干分支标签(版本)信息:
切换至src目录下:
git fetch --tags tags.txt 21 //标签号42.0.2311.61会保存在tags.txt文件中
git checkout -b chrome_42.0.2311.61_local_branch 42.0.2311.61
gclient sync --with_branch_heads --jobs 16
以上命令的解析大家都可以在命令的帮助里面查到。
至此,代码已经被下载到各位的硬盘中,通过git命令就可以看到分支及标签情况。今天先讲这么多,下次会把编译过程提供给大家。
注:拉取代码的过程可能很长,取决于使用的vpn的质量;最后代码拉取成功但是执行runhooks的时候脚本可能会失败,至于是否影响chrome的编译,那就只能看运气了。
附:
chromium源码channel:
canary
channel:实验版本,每日发布。它没有经过充分测试,可能有某些奇怪的bug。
dev
channel:每2星期发布,相对稳定,新功能和新特性都有。
beta
channel:每周更新,6周大版本更新。比较稳定了,比dev版小1个版本,比stable版本早进化一个月。
stable
channel:稳定版,比dev版本小2个版本,2到3周次版本更新,6周主版本更新。
eddybuddychannel什么意思?
eddybuddychannel并没有什么特殊意思,就是一些简单的字母。
英语已经发展了1400多年。英语的最早形式是由盎格鲁-撒克逊移民于5世纪带到英国的一组西日耳曼语(Ingvaeonic)方言,被统称为古英语。中古英语始于11世纪末,诺曼征服英格兰;这是该语言受到法语影响的时期。早期现代英语始于15世纪后期引进的的印刷机到伦敦,在印刷国王詹姆斯圣经和开始元音大推移。
现代英语的传播
到18世纪后期,英国已通过其殖民地和地缘政治统治地位传播了英语。商业、科学技术、外交、艺术和正规教育都使英语成为第一种真正的全球语言。英语还促进了世界范围的国际交流。英格兰继续形成新的殖民地,后来这些殖民地发展了自己的言语和写作规范。
北美部分地区,非洲部分地区,大洋洲和许多其他地区都采用英语。当他们获得政治独立时,一些拥有多种土著语言的新独立国家选择继续使用英语作为官方语言,以避免将任何一种土著语言都推崇为另一种土著语言所固有的政治和其他困难。
在20世纪,美国日益增长的经济和文化影响及其在第二次世界大战后作为超级大国的地位,以及英国广播公司等在全球范围内进行的英语广播公司,导致该语言在地球上的传播速度更快。在21世纪,英语的口语和写作比任何一种语言都广泛。
netty channelid全局唯一吗
netty channelid全局唯一
1.创建一个带有控制文本背景依赖属性的DatePicker类
public class DataPickerEx:DatePicker
{
public Brush TextBoxBg
{
get { return (Brush)GetValue(TextBoxBgProperty); }
set { SetValue(TextBoxBgProperty, value); }
}
public static readonly DependencyProperty TextBoxBgProperty =
DependencyProperty.Register("TextBoxBg", typeof(object), typeof(DataPickerEx), new PropertyMetadata(null));
}
2.用blend打开DatePicker模板,修改TargetType为自己建立的类
TargetType="{x:Type UserControls:DataPickerEx}" (PS:UserControls为namespace中自己给自定义控件引用路径取的名称)
在模板中找到DatePickerTextBox 所在行,并将其Background模板绑定到自己添加的依赖属性
DatePickerTextBox x:Name="PART_TextBox" Grid.Column="0" Background="{TemplateBinding TextBoxBg}"
3.在xaml中直接运用即可
UserControls:DataPickerEx Height="28" TextBoxBg="Red" /
Netty中的channelRead和messageReceived的区别
需要编解码的才会去用messageReceived,一般都是使用ChannelRead来读取的。
SimpleChannelInboundHandler的源代码你就知道了,泛型不匹配,不会调用messageReceived的。
另:如果你特别特别想用SimpleChannelInboundHandler,你可以这样搞:public classYouTCPServerHandler extends SimpleChannelInboundHandlerByteBuf{...}
因为你没有做过任何的编码解码,所以你的泛型是ByteBuf,这样你肯定可以使用messageReceived来接收到消息了。如果还不明白,建议你去看一下netty自带的sample,里面有个求阶乘的例子,server和client传递的BigInteger对象,所以就用的是
SimpleChannelInboundHandlerBigInteger。没有经过任何编码解码的那就肯定是ByteBuf对象。
aPickerEx), new PropertyMetadata(null)); }2.用blend打开DatePicker模板,修改TargetType为自己建立的类TargetType="{x:Type UserControls:DataPicke
个求阶乘的例子,server和client传递的BigInteger对象,所以就用的是SimpleChannelInboundHandlerBigInteger。没有经过任何
om:9217; No errorCannot rebase:You have unstaged changes.Please commit orstash them.Failed to updatedepot_tools.如果遇到上述问题,应该是你无法连接到chromium服务器,你可以使用vp