上午在去往上海的动车组上看到《Google正在测试ActiveX的继任者》这条新闻,因为前段时间一直在做一个证件信息采集的ActiveX控件,而众所周知,ActiveX的安全性是臭名昭著的,所以对这个所谓的“继任者”非常感兴趣,晚上回来后就第一时间试了试。
Native Client项目主页:http://code.google.com/p/nativeclient/
Native Client是一个在Web应用程序中运行本地代码(目前只支持x86架构)的开源的研究性技术,提供更好的“富客户端”用户体验。它允许网络开发者编写更强大的Web程序,这些程序直接通过系统运行而不用通过浏览器来进行,据Google称,它到最后将允许网络开发者开发和桌面软件一样的的web程序,这些程序将带来更快的速度。Native Client类似于微软的ActiveX技术,它还能在Linux和Mac OS X下运行。目前它尚未支持IE,仅支持Google Chrome, Firefox, Safari 和Opera。
本文实验所用OS:Hiweed2.0,官网:http://www.hiweed.com/
要使它带的示例程序运行为Native Client的模块,你必须要有如下软件:1)Native Client。2)Python(版本在2.4或2.5)。3)一个浏览器(推荐Firefox3)
下面是安装Native Client的步骤:
1,从官网上获取nacl_linux_0.1_9308700.tgz文件,解压缩到你指定的目录下:
tar xvf nacl_linux_0.1_9308700.tgz
2,验证Python版本(注意下面的V是大写字母)是2.4或2.5。
python –V
若版本过低或未安装python,则使用下述命令安装:
sudo apt-get install python2.4
将示例作为Native Client应用程序来运行
现在来看如何在Native Client中运行一个示例。
1,进入到earth这个demo所在目录
cd install_dir/nacl/googleclient/native_client/tests/earth
2,运行earth这个demo
python run.py
结果如图所示,标题“NaCl Application”表明你是在一个特定的进程中运行一个Native Client模块:
安装和使用插件
现在我们切换到浏览器中来运行Native Client模块,我们必须安装Native Client插件,然后把引用这些Native Client模块的页面给加载到浏览器中。
1,进入native_client目录
cd install_dir/nacl/googleclient/native_client
2,若你正在运行firefox,那就关闭它,否则插件可能安装失败。
3,使用如下命令安装插件,在安装过程中回答一个yes
./scons --prebuilt firefox_install
Okay to continue? [y/n] y
4,检查最后输出的安装结果,成功的话就去启动firefox
5,在firefox中打开下面这个页面
install_dir/nacl/googleclient/native_client/scons-out/nacl/staging/index.html
这里列出了很多示例,可以自行玩玩。
使用make编译和运行单独的示例(仅限于Linux或Mac)
1,进入到你要编译运行的示例目录下,以earth为例:
cd install_dir/nacl/googleclient/native_client/tests/earth
2,重新编译为一个单独的应用程序并运行:
make debug run
3,重新编译为一个Native Client模块并运行:
make release nacl run
这就是文章最开头显示的realease版本
4,移除掉你自行编译的版本,使用预编译好的版本,和前面两种比较下(其实就是第二种啦)。
make clean
python run.py
附:1)Google为了说明这个东西的安全性还发了一篇paper,刚开始看,以后再补上笔记
2)为了方便起见,没有在Windows下测试,有兴趣可按照官方文档试试
3)不知是不是故意捉弄微软,Google推出的这个“ActiveX杀手”竟然在第一时间不支持IE。(哈哈,相信后续会支持的,否则还有啥用?)
参考资料:
1,Native Client Getting Started guide.
2, Building Native Client
本文转自Phinecos(洞庭散人)博客园博客,原文链接:http://www.cnblogs.com/phinecos/archive/2008/12/09/1351378.html,如需转载请自行联系原作者