hap包-如何设置打包的时候仅打入包含arm64-v8a abi的单架构包?

hap包-如何设置打包的时候仅打入包含arm64-v8a abi的单架构包,目前所有架构都会影响包Size。

HarmonyOS
2024-11-20 08:58:05
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

可在工程级的工程级build-profile.json5里面配置构建externalNativeOptions,abiFilters可配置不同的架构包类型。示例:

// 构建模式的集合,每个构建模式是指在执行不同target任务时使用何种构建配置的一套方案,默认打包hap时使用debug,打包app时使用release 
"buildModeSet": [ 
{ 
  "name": "debug",   //定义构建模式的类型名称,系统默认给出test、debug和release,用户也可以自定义 
"buildOption": {   //配置项目在构建过程中使用的相关配置 
  "packOptions": {  //包配置选项,可用于构建app时避免生成签名的hap 
    "buildAppSkipSignHap": false 
  }, 
  "debuggable": true, 
  "resOptions": {}, 
  //cpp相关编译配置 
  "externalNativeOptions": { 
    "path": "./entry/src/main/cpp/CMakeLists.txt",  //CMake配置文件,提供CMake构建脚本 
    "arguments": "",  //传递给CMake的可选编译参数 
    "abiFilters": [  //用于设置本机的ABI编译环境 
    "armeabi-v7a", 
    "arm64-v8a", 
    "x86_64" 
    ], 
    "cppFlags": ""  //设置C++编译器的可选参数 
  }, 
  "sourceOption": {   //使用不同的标签对源代码进行分类,以便在构建过程中对不同的源代码进行不同的处理 
    "workers": [] 
  }, 
  //配置筛选har依赖.so资源文件的过滤规则 
  "nativeLib": { 
    "filter": { 
      //按照.so文件的优先级顺序,打包最高优先级的.so文件 
      "pickFirsts": [ 
      "**/1.so" 
      ], 
      //按照.so文件的优先级顺序,打包最低优先级的.so文件 
      "pickLasts": [ 
      "**/2.so" 
      ], 
      //排除的.so文件 
      "excludes": [ 
      "**/3.so", //排除所有名称为“3”的so文件 
      "**/x86_64/*.so //排除所有x86_64架构的so文件 
      ], 
      //允许当.so重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件 
      "enableOverride": true 
    } 
  }, 
} 
} 
] 
},

​参考文档:​https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-configuration-file-0000001862081144-V5

分享
微博
QQ
微信
回复
2024-11-20 14:54:23
相关问题
发布证书打包hap安装出错
533浏览 • 1回复 待解决
hap如何通过编译工具打包成app?
225浏览 • 1回复 待解决
上架分发时候HAP还是APP?
609浏览 • 1回复 待解决
如何获取当前HAP
2393浏览 • 1回复 待解决
har集成怎么配置so架构
396浏览 • 1回复 待解决
如何查询已安装Hap路径
2226浏览 • 1回复 待解决