赞
踩
Har模块文件结构
打包规则
1. 修改新建HAR模块时生成的build-profile.json5默认模板,将obfuscation下的enable字段改为false或删除整个obfuscation配置参数。
- {
- "apiType": "stageMode",
- "buildOption": {
- },
- "buildOptionSet": [
- {
- "name": "release",
- "arkOptions": {
- // 开源har相关参数
- "obfuscation": {
- "ruleOptions": {
- // true表示进行混淆,false表示不进行混淆。默认为true
- "enable": false,
- ]
- },
- // consumerFiles中指定的混淆配置文件会在构建依赖这个library的工程或library时被应用
- "consumerFiles": [
- "./consumer-rules.txt"
- ]
- }
- },
- },
- ],
- "targets": [
- {
- "name": "default"
- }
- ]
- }
2. 对于开源har,若部分工程源文件无需构建到HAR包中,可在module目录下新建.ohpmignore文件,配置打包时要忽略的文件,支持正则表达式写法。将无需打包进HAR包的文件/文件夹名称写入.ohpmignore文件中。DevEco Studio构建时将过滤掉.ohpmignore文件中所包含的文件/文件夹。
3. 选中HAR模块的根目录,点击Build > Make Module '<module-name>'启动构建。
4. 构建完成后,build目录下生成HAR包产物。
DevEco Studio支持闭源HAR构建,通过对代码进行编译混淆,生成闭源HAR。在不共享源码的情况下,通过闭源HAR对外提供组件、资源等,可以实现多个模块或者多个工程共享组件、资源等。
1. 新建的HAR模块在编译模式为release模式时默认为构建闭源HAR,即build-profile.json5文件中obfuscation下的enable字段为true。
- {
- "apiType": "stageMode",
- "buildOption": {
- },
- "buildOptionSet": [
- {
- "name": "release",
- "arkOptions": {
- // 闭源har相关参数
-
- "obfuscation": {
- "ruleOptions": {
- // true表示进行混淆,false表示不进行混淆。默认为true
- "enable": true,
- // 混淆规则文件
- "files": [
- "./obfuscation-rules.txt"
- ]
- },
- // consumerFiles中指定的混淆配置文件会在构建依赖这个library的工程或library时被应用
- "consumerFiles": [
- "./consumer-rules.txt"
- ]
- }
- },
- },
- ],
- "targets": [
- {
- "name": "default"
- }
- ]
- }
2. 选中HAR模块的根目录,点击Build > Make Module '<module-name>'启动构建。
3. 构建完成后,build目录下生成HAR包产物。
根据工程特性,mgplayer_hms 采用构建闭源HAR 的方式。
模块级build-profile.json5的示例如下所示:
- {
- "apiType": "stageMode", //API类型,支持FA(faMode) 和 Stage(stageMode)模型
- "showInServiceCenter": true, //是否在服务中心展示
- "buildOption": { //配置项目在构建过程中使用的相关配置
- //配置筛选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
- }
- },
- "sourceOption": { //使用不同的标签对源代码进行分类,以便在构建过程中对不同的源代码进行不同的处理
- "workers": []
- },
- //cpp相关编译配置
- "externalNativeOptions": {
- "path": "./src/main/cpp/CMakeLists.txt", //CMake配置文件,提供CMake构建脚本
- "arguments": "", //传递给CMake的可选编译参数
- "abiFilters": [ //用于设置本机的ABI编译环境
- "arm64-v8a",
- "x86_64"
- ],
- "cppFlags": "" //设置C++编译器的可选参数
- },
- //ArkTS编译配置
- "arkOptions":{
- "types":[] //配置d.ts/d.ets的相对路径或包名,用于使用自定义的声明类型
- },
- },
- "buildOptionSet": [ //buildOption的集合,
- {
- "name": "release", //定义buildOption的名字,取值有default、debug 和 release,也可自定义
- "arkOptions": {
- "obfuscation": { //针对release模式下的配置
- "ruleOptions": {
- "enable": true, // 默认为true
- "files": [ //混淆文件的相对路径
- "./obfuscation-rules.txt"
- ]
- },
- "consumerFiles": './consumer-rules.txt' //仅Static Library模块可配置:默认导出的混淆规则
- }
- },
- "debuggable": true, //定义编译模式是否为debug
- "copyFrom": "release", //从指定的buildOption中复制相关配置
- "resOptions": {},
- //cpp相关编译配置
- "externalNativeOptions": {
- "path": "./src/main/cpp/CMakeLists.txt", //CMake配置文件,提供CMake构建脚本
- "arguments": "", //传递给CMake的可选编译参数
- "abiFilters": [ //用于设置本机的ABI编译环境
- "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"
- ],
- //允许当.so重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件
- "enableOverride": true
- }
- },
- }
- ],
- "buildModeBinder": [ //构建模式与构建配置的关联配置,通过该配置可以将不同的构建配置和target进行组合,并绑定到对应的构建模式上,其中构建模式需要在工程级别的构建模式列表中
- {
- "buildModeName": "debug",
- "mappings": [ //构建模式绑定中的具体映射表,描述的是target和构建配置的一对一的关系
- {
- "targetName": "default",
- "buildOptionName": "release"
- }
- ]
- }
- ],
- "targets": [ //定义的target,开发者可以定制不同的target,具体请参考配置多目标构建产物章节
- {
- "name": "default",
- },
- {
- "name": "ohosTest",
- }
- ]
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。