从 Chrome 网上应用店减少 Native Client 安装的网络流量
Reduce network traffic for Native Client installation from Chrome Web Store
我的 Chrome 应用包含三个 .nexe
文件,用于 arm, x86-32
和 64-bit
处理器。当我从 Chrome web store
安装此应用程序时,下载包的大小与包含所有 .nexe
文件的应用程序的大小相同。是否可以优化此网络流量?
我的 .nmf
捆绑在应用程序中的文件如下所示:
{
"program": {
"arm": { "url": "arm.nexe" },
"x86-32": { "url": "x86_32.nexe" },
"x86-64": { "url": "x86_64.nexe" }
}
}
谢谢
是的,您可以在 manifest.json 中添加特定于平台的部分。然后这些包将只下载为该 CPU 架构指定的组件。
SDK 中也有示例:examples/tutorial/multi_platform
总结上面的文档:
首先在你的App包中创建一个_platform_specific
目录。对于每个体系结构,创建一个具有该名称的子目录:
|-- my_app_directory/
| |-- manifest.json
| |-- my_app.html
| |-- my_module.nmf
| +-- css/
| +-- images/
| +-- scripts/
| |-- _platform_specific/
| | |-- x86-64/
| | | |-- my_module_x86_64.nexe
| | |-- x86-32/
| | | |-- my_module_x86_32.nexe
| | |-- arm/
| | | |-- my_module_arm.nexe
| | |-- all/
| | | |-- my_module_x86_64.nexe
| | | |-- my_module_x86_64.nexe
| | | |-- my_module_x86_32.nexe
然后在manifest.json文件中,指定这些目录的位置:
...
"platforms": [
{
"nacl_arch": "x86-64",
"sub_package_path": "_platform_specific/x86-64/"
},
{
"nacl_arch": "x86-32",
"sub_package_path": "_platform_specific/x86-32/"
},
{
"nacl_arch": "arm",
"sub_package_path": "_platform_specific/arm/"
},
{
"sub_package_path": "_platform_specific/all/"
}
]
你会希望你的 .nmf 指向这些 nexes 的位置。 SDK 构建系统有一个选项可以自动为您完成所有这些,我建议使用它。
我的 Chrome 应用包含三个 .nexe
文件,用于 arm, x86-32
和 64-bit
处理器。当我从 Chrome web store
安装此应用程序时,下载包的大小与包含所有 .nexe
文件的应用程序的大小相同。是否可以优化此网络流量?
我的 .nmf
捆绑在应用程序中的文件如下所示:
{
"program": {
"arm": { "url": "arm.nexe" },
"x86-32": { "url": "x86_32.nexe" },
"x86-64": { "url": "x86_64.nexe" }
}
}
谢谢
是的,您可以在 manifest.json 中添加特定于平台的部分。然后这些包将只下载为该 CPU 架构指定的组件。
SDK 中也有示例:examples/tutorial/multi_platform
总结上面的文档:
首先在你的App包中创建一个_platform_specific
目录。对于每个体系结构,创建一个具有该名称的子目录:
|-- my_app_directory/
| |-- manifest.json
| |-- my_app.html
| |-- my_module.nmf
| +-- css/
| +-- images/
| +-- scripts/
| |-- _platform_specific/
| | |-- x86-64/
| | | |-- my_module_x86_64.nexe
| | |-- x86-32/
| | | |-- my_module_x86_32.nexe
| | |-- arm/
| | | |-- my_module_arm.nexe
| | |-- all/
| | | |-- my_module_x86_64.nexe
| | | |-- my_module_x86_64.nexe
| | | |-- my_module_x86_32.nexe
然后在manifest.json文件中,指定这些目录的位置:
...
"platforms": [
{
"nacl_arch": "x86-64",
"sub_package_path": "_platform_specific/x86-64/"
},
{
"nacl_arch": "x86-32",
"sub_package_path": "_platform_specific/x86-32/"
},
{
"nacl_arch": "arm",
"sub_package_path": "_platform_specific/arm/"
},
{
"sub_package_path": "_platform_specific/all/"
}
]
你会希望你的 .nmf 指向这些 nexes 的位置。 SDK 构建系统有一个选项可以自动为您完成所有这些,我建议使用它。