赞
踩
在进行应用/服务的编译构建前,需要对工程和编译构建的Module进行设置。API Version 9、API Version 8与API Version 4~7的构建体系不同,因此在设置编译构建信息时也存在差异:
工程级build-profile.json5的示例如下所示:
- {
- "app": {
- //工程的签名信息,可包含多个签名信息
- "signingConfigs": [
- {
- "name": "default", //标识签名方案的名称
- "type": "HarmonyOS", //标识HarmonyOS应用
- //该方案的签名材料
- "material": {
- "certpath": "D:\\SigningConfig\\debug_hos.cer", //调试或发布证书文件,格式为.cer
- "storePassword": "******", //密钥库密码,以密文形式呈现
- "keyAlias": "debugKey", //密钥别名信息
- "keyPassword": "******", //密钥密码,以密文形式呈现
- "profile": "D:\\SigningConfig\\debug_hos.p7b", //调试或发布证书Profile文件,格式为.p7b
- "signAlg": "SHA256withECDSA", //密钥库signAlg参数
- "storeFile": "D:\\SigningConfig\\debug_hos.p12" //密钥库文件,格式为.p12
- }
- }
- ],
- "compileSdkVersion": 9, //指定HarmonyOS应用/服务编译时的SDK版本
- "compatibleSdkVersion": 9, //指定HarmonyOS应用/服务兼容的最低SDK版本
- //定义构建的产品品类,如通用默认版、付费版、免费版等
- "products": [
- {
- "name": "default", //定义产品的名称,支持定制多product目标产物,具体请参考定制多目标构建产物
- "signingConfig": "default", //指定当前产品品类对应的签名信息,签名信息需要在signingConfigs中进行定义
- }
- ]
- },
- "modules": [
- {
- "name": "entry", //模块名称
- "srcPath": "./entry", //标明模块根目录相对工程根目录的相对路径
- "targets": [ //定义构建的APP产物,由product和各模块定义的targets共同定义
- {
- "name": "default", //target名称,由各个模块的build-profile.json5中的targets字段定义
- "applyToProducts": [
- "default" //表示将该模块下的“default” Target打包到“default” Product中
- ]
- }
- ]
- }
- ]
- }
模块级build-profile.json5的示例如下所示:
- {
- "apiType": 'faMode', //API类型,支持FA和Stage模型
- "showInServiceCenter": true, //是否在服务中心展示
- "buildOption": {
- //配置筛选har依赖.so资源文件的过滤规则
- "napiLibFilterOption": {
- //按照.so文件的优先级顺序,打包最高优先级的.so文件
- "pickFirsts": [
- "**/1.so"
- ],
- //按照.so文件的优先级顺序,打包最低优先级的.so 文件
- "pickLasts": [
- "**/2.so"
- ],
- //排除的.so文件
- "excludes": [
- "**/3.so"
- ],
- //允许当.so重名冲突时,使用高优先级的.so文件覆盖低优先级的.so文件
- "enableOverride": true
- },
- //cpp相关编译配置
- "externalNativeOptions": {
- "path": "./src/main/cpp/CMakeLists.txt", //CMake配置文件,提供CMake构建脚本
- "arguments": "", //传递给CMake的可选编译参数
- "abiFilters": [ //用于设置本机的ABI编译环境
- "armeabi-v7a",
- "arm64-v8a"
- ],
- "cppFlags": "" //设置C++编译器的可选参数
- },
- },
- "targets": [ //定义的Target,开发者可以定制不同的Target,具体请参考定制多目标构建产物
- {
- "name": "default",
- "runtimeOS": "HarmonyOS",
- },
- {
- "name": "ohosTest",
- }
- ]
- }
应用/服务支持通过ohpm来安装、共享、分发代码,管理项目的依赖关系。oh-package.json5格式遵循标准的ohpm规范。
工程级oh-package.json5的示例如下所示:
- {
- "name": "myapplication",
- "version": "1.0.0",
- "description": "Please describe the basic information.",
- "main": "",
- "author": "",
- "license": "",
- "dependencies": {},
- "devDependencies": {
- "@ohos/hypium": "1.0.6"
- }
- }
模块级oh-package.json5的示例如下所示:
- {
- "name": "entry",
- "version": "1.0.0",
- "description": "Please describe the basic information.",
- "main": "index.ets",
- "author": "",
- "license": "",
- "dependencies": {},
- }
应用/服务支持通过npm来安装、共享、分发代码,管理项目的依赖关系。HarmonyOS npm规范是在标准npm规范的基础上,增加了对HarmonyOS平台的拓展。因此,package.json格式遵循标准的npm规范(具体可查阅npm官方文档),接下来主要介绍HarmonyOS npm部分的规范。
工程级package.json的示例如下所示:
- {
- "name": "myapplication",
- "version": "1.0.0",
- "ohos": {
- "org": "huawei",
- "buildTool": "hvigor",
- "directoryLevel": "project"
- },
- "description": "example description",
- "repository": {},
- "license": "ISC",
- "dependencies": {
- "@ohos/hypium": "1.0.5",
- "@ohos/hvigor": "1.4.0",
- "@ohos/hvigor-ohos-plugin": "1.4.0"
- }
- }
HarmonyOS npm相关字段说明如下,其余字段遵循package.json标准规范。
模块级package.json的示例如下所示:
- {
- "license": "ISC",
- "devDependencies": {
- "@types/libentry.so": "file:./src/main/cpp/types/libentry"
- },
- "name": "entry",
- "ohos": {
- "org": "huawei",
- "directoryLevel": "module",
- "buildTool": "hvigor"
- },
- "description": "example description",
- "repository": {},
- "version": "1.0.0",
- "dependencies": {}
- }
关于HarmonyOS npm包的相关字段说明如下,其余字段遵循package.json标准规范。
工程级build.gradle的示例如下所示:
- apply plugin: 'com.huawei.ohos.app'
- ohos {
- compileSdkVersion 7
- signingConfigs {
- debug {
- storeFile file('D:\\Sdk\\storeFile') //本地keystore
- storePassword 'storePassword' //生成本地keystore时的storePassword参数
- keyAlias 'keyAlias' //生成本地keystore时的alias参数
- keyPassword 'keyPassword' //keyPassword参数,pkcs12格式的keystore采用生成本地keystore时的keyPassword参数
- signAlg 'SHA256withECDSA' //生成本地keystore时的signAlg参数
- profile file('D:\\Sdk\\profile') //导入调试/发布profile
- certpath file('D:\\Sdk\\certpath') //导入调试/发布证书
- }
- }
- }
-
- buildscript {
- repositories {
- maven {
- url 'https://repo.huaweicloud.com/repository/maven/'
- }
- maven {
- url 'https://developer.huawei.com/repo/'
- }
- }
- dependencies {
- classpath 'com.huawei.ohos:hap:3.1.2.0'
- classpath 'com.huawei.ohos:decctest:1.2.7.19'
- }
- }
-
- allprojects {
- repositories {
- maven {
- url 'https://repo.huaweicloud.com/repository/maven/'
- //allowInsecureProtocol = true //若maven仓是http协议地址,则需要添加该字段,表示允许使用非安全协议的http仓
- }
- maven {
- url 'https://developer.huawei.com/repo/'
- }
- }
- }
关于工程级build.gradle各字段说明如下:
模块级build.gradle的示例如下所示:
- apply plugin: 'com.huawei.ohos.hap' //打包hap插件:将entry/feature模块打包为hap的插件
- //apply plugin: 'com.huawei.ohos.library' //打包har插件:将HarmonyOS Library模块打包为har的插件
- //apply plugin: 'java-library' //打包jar插件:将Java Library模块打包为jar的插件
- apply plugin: 'com.huawei.ohos.decctest' //decctest测试框架插件
- ohos {
- compileSdkVersion 7
- defaultConfig {
- compatibleSdkVersion 4
- }
- showInServiceCenter true
- buildTypes {
- release {
- proguardOpt {
- proguardEnabled true //开启代码混淆功能
- rulesFiles 'proguard-rules.pro' // 配置混淆规则文件相对路径
- consumerRulesFiles 'consumer-rules.pro' // 配置打包混淆规则文件相对路径,仅在HarmonyOS Library模块中配置
- }
- }
- }
- packageOptions {
- exclude "**/*.proto"
- }
- //entryModules "entry" // 该Feature模块关联的Entry模块
- // C++工程编译构建代码设置
- externalNativeBuild {
- path "src/main/cpp/CMakeLists.txt" //CMake配置入口,提供CMake构建脚本的相对路径
- arguments "" // 传递给CMake的可选编译参数
- abiFilters "arm64-v8a" // 用于设置本机的ABI编译环境
- cppFlags "" // 设置C++编译器的可选参数
- }
- mergeJsSrc true
- compileOptions {
- annotationEnabled true
- }
- }
- dependencies {
- //entryImplementation project(':entry') //依赖的entry模块名称
- implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
- testImplementation 'junit:junit:4.13.1'
- ohosTestImplementation 'com.huawei.ohos.testkit:runner:2.0.0.200'
- }
- decc {
- supportType = ['html', 'xml']
- }
关于模块级build.gradle各字段说明如下:
为了能够让大家跟上互联网时代的技术迭代,在这里跟大家分享一下我自己近期学习心得以及参考网上资料整理出的一份最新版的鸿蒙学习提升资料,有需要的小伙伴自行领取,限时开源,先到先得~~~~
领取以下高清学习路线原图请点击→《鸿蒙全套学习指南》纯血鸿蒙HarmonyOS基础技能学习路线图
领取以上完整高清学习路线图,请点击→《鸿蒙基础入门学习指南》小编自己整理的部分学习资料(包含有高清视频、开发文档、电子书籍等)
-应届生/计算机专业
通过学习鸿蒙新兴技术,入行互联网,未来高起点就业。
-0基础转行
提前布局新方向,抓住风口,自我提升,获得更多就业机会。
-技术提升/进阶跳槽
发展瓶颈期,提升职场竞争力,快速掌握鸿蒙技术,享受蓝海红利。
如果你觉得这篇内容对你有帮助,我想麻烦大家动动小手给我:点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
关注我,同时可以期待后续文章ing,不定期分享原创知识。
想要获取更多完整鸿蒙最新VIP学习资料,请点击→《鸿蒙 (Harmony OS)开发学习手册》
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。