我的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" }
}
}
由于
答案 0 :(得分:2)
是的,您可以在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指向这些nex的位置。 SDK构建系统可以自动为您完成所有这些操作,我建议您使用它。