[转]chrome native client小试牛刀

一、环境准备

1、安装native client sdk

    下载地址: http://commondatastorage.googleapis.com/nativeclient-mirror/nacl/nacl_sdk/naclsdk_win.exe

下载后安装在C:\native_client_sdk_0_5_1052

本次试验的两个关键目录project_templates,examples.其中project_templates包含一个模板代码生成,examples中包含示例代码。

2、安装python

下载地址:http://www.python.org/ftp/python/2.7.2/python-2.7.2.msi
下载后安装到C:\Python27,在系统环境变量中的Path最后加上;C:\Python27

3、在chrome中启用native client

在chrome浏览器中地址栏输入about:flags 找到native client点击启动,重启浏览器;然后在浏览器地址栏输入about:plugins找到native client点击启动,无须重启浏览器

二、查看示例

进入C:\native_client_sdk_0_5_1052\examples,双击httpd.py,启动python的web server。

在chrome地址栏输入http://localhost:5103/index.html,可查看自带示例。

三、开发示例

1、创建工程

进入控制台:

>cd C:\native_client_sdk_0_5_1052\project_templates

> init_project.py -n helloworld -d ../examples (-n 名称 -d目录)

这时在examples文件下多了一个helloworld目录。改目录有:

helloworld.cc c++代码

helloworld.html 网页代码

scons.bat 编译C++

2、修改代码

打开helloworld.html,新增

function moduleDidLoad() {
      HelloTutorialModule = document.getElementById('hello_tutorial');
      HelloTutorialModule.addEventListener('message', handleMessage, false);
      updateStatus('SUCCESS');
      //Send a message to the NaCl module.
      HelloTutorialModule.postMessage('hello');
    }

 

 

 

 

 

HelloTutorialModule.postMessage('hello');将hello字符串提交给c++端处理

 

打开helloworld.cc

在#include之后添加

namespace {
// The expected string sent by the browser.
const char* const kHelloString = "hello";
// The string sent back to the browser upon receipt of a message
// containing "hello".
const char* const kReplyString = "hello from NaCl";
} // namespace

 

 

找到

// TODO(sdk_user): 1. Make this function handle the incoming message.

 

 

替换成

 

 if (!var_message.is_string())
    return;
  std::string message = var_message.AsString();
  pp::Var var_reply;
  if (message == kHelloString) {
    var_reply = pp::Var(kReplyString);
    PostMessage(var_reply);
  }

 

 

 


编译C++的native client module ,双击helloworld目录底下的scons.bat文件。

 

 

编译完成后,生成:

 

  • hello_tutorial_x86_32.nexe
  • hello_tutorial_x86_32_dbg.nexe
  • hello_tutorial_x86_64.nexe
  • hello_tutorial_x86_64_dbg.nexe

进入C:\native_client_sdk_0_5_1052\examples

双击httpd.py

在chrome浏览器中输入地址:http://localhost:5103/helloworld/helloworld.html

得到从native client module返回的hello from NaCl


来自:http://wiselyman.iteye.com/blog/1157551

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Native Client 驱动程序是一种用于在 Chrome 浏览器中运行本机(原生)应用程序的技术。这种技术可以让开发者使用 C/C++、汇编等语言编写高效的本机应用程序,并将其与 Chrome 浏览器的 JavaScript 环境相结合。通过 Native Client 驱动程序,这些本机应用程序可以在 Chrome 浏览器中快速且安全地运行,而无需任何插件或其他外部软件。 Native Client 驱动程序的核心是一个名为 "NaCl" 的安全沙盒环境。该环境可以限制应用程序的访问权限,防止应用程序对计算机系统造成破坏或泄漏敏感信息。与其他本机应用程序不同的是,Native Client 驱动程序中的应用程序符合 Chrome 浏览器的所有安全要求,并与 JavaScript 代码一样安全。 另外,Native Client 驱动程序还提供了许多工具和 API,可帮助开发者创建高效的应用程序。这些工具包括优化器、调试器和性能分析器等。此外,Native Client 驱动程序还具有跨平台特性,可以在多个操作系统上运行,例如 Windows、Linux 和 macOS 等。 总之,Native Client 驱动程序是一项非常有用的技术,它可以让开发者编写高效且安全的本机应用程序,并使这些程序能够在 Chrome 浏览器中无缝运行。随着技术的不断发展,Native Client 驱动程序有望在更多场景下发挥作用,帮助开发者创造出更加优秀的应用程序。 ### 回答2: Native Client驱动程序是指一种软件技术,它能够通过在本地运行的方式,实现在Web浏览器中使用本地的CPU和GPU资源。该技术可以让网页应用程序获得更高的性能和更广泛的应用领域,而不需要依赖第三方插件或者下载本地应用程序。 Native Client技术最初由Google公司发起,目的是让Web应用程序的开发者能够更方便地利用客户端硬件资源,从而提高Web应用程序的性能和体验。该技术使用一种名为NaCl的字节码格式,在Web浏览器内部执行本地计算机代码。它通过内部沙盒机制保证安全性,并且可以使用现有的C/C++代码进行开发,与传统的Web技术无缝连接。 Native Client技术的出现,使得开发人员能够利用本地的CPU和GPU资源,使Web应用程序的性能和表现更加强大。它可以在Web平台下运行各种类型的应用程序,如游戏、工具、多媒体等,为Web应用程序赋予更多的实现可能性。但需要注意的是,在使用Native Client技术时,需要开发人员具备熟练的编程技术和对特定API的了解,以确保应用程序的正确性和安全性。 总的来说,Native Client驱动程序技术给Web开发带来了新的可能,开发人员可以通过这种技术获得更好的性能和更广泛的应用领域。但需要注意,Native Client技术还处于发展阶段,需要不断地进行完善和优化,以满足日益增长的Web应用程序需求。 ### 回答3: Native Client驱动程序是一种软件组件,它允许将本地代码(如C、C++、Rust等)编写的应用程序在Web浏览器中运行。它是Google Chrome浏览器中的一个重要特性,允许开发者使用原生的编程语言来创建浏览器应用程序和浏览器扩展,而无需使用像JavaScript这样的Web语言。 Native Client驱动程序的核心是一个虚拟机,它可以在浏览器中运行本机编译的代码。它提供了一组API和运行时库,开发者可以使用这些API和运行时库来实现各种功能。Native Client驱动程序还提供了将本机代码打包到浏览器中的工具,这使得开发者可以将应用程序部署到Web上,而无需用户进行任何额外的安装或配置。 然而,Native Client驱动程序也存在一些问题。首先,由于浏览器的安全限制,它不能直接访问计算机的本地资源,这使得一些高级应用程序很难实现。其次,它只在Chrome浏览器中可用,这可能限制了其在其他浏览器上的使用。最后,由于其依赖于本机代码编写,可能对开发者来说学习门槛较高。 总之,Native Client驱动程序是一个强大的Web技术,它为开发者提供了更多的工具和选项来创建更强大的浏览器应用程序。但它也有其限制和挑战,需要开发者权衡其使用价值和可行性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值