OpenHarmony 实战开发——编译4.0 bete2及master分支,添加参数--no-prebuilt-sdk跳过编译sdk

news2024/11/26 16:28:18

简介

用户应用程序泛指运行在设备的操作系统之上,为用户提供特定服务的程序,简称“应用”。一个应用所对应的软件包文件,称为“应用程序包”。

OpenHarmony 提供了应用程序包开发、安装、查询、更新、卸载的管理机制,方便开发者开发和管理 OpenHarmony 应用,具体如下:

  • 应用软件所涉及的文件多种多样,开发者可通过 OpenHarmony 提供的集成开发工具将其开发的可执行代码、资源、三方库等文件整合到一起制作成 OpenHarmony 应用程序包,便于开发者对应用程序的部署。
  • 应用软件所涉及的设备类型多种多样,开发者可通过 OpenHarmony 提供的应用程序包配置文件指定其应用程序包的分发设备类型,便于应用市场对应用程序包的分发管理。
  • 应用软件所包含的功能多种多样,将不同的功能特性按模块来划分和管理是一种良好的设计方式。OpenHarmony 提供了同一应用程序的多包管理的机制,开发者可以将不同的功能特性聚合到不同的包中,方便后续的维护与扩展。
  • 应用软件涉及的芯片平台多种多样,有 x86、ARM 等,还有 32 位、64 位之分,OpenHarmony 为应用程序包屏蔽了芯片平台的差异,使应用程序包在不同的芯片平台都能够安装运行。
  • 应用软件涉及的软件信息多种多样,有应用版本、应用名称、组件、申请权限等的信息,OpenHarmony 包管理为开发者提供了这些信息的查询接口,方便开发者在程序中查询所需要的包信息。
  • 应用软件涉及的资源多种多样,有媒体资源、原生资源、字符资源以及国际化的资源等,OpenHarmony 包管理将不同的资源归档到不同的目录中,并集成资源索引文件,方便应用对资源的查找和使用。

hap 包的概念

HAP(Harmony Ability Package)是 OpenHarmony 应用安装的基本单位,包含了编译后的代码、资源、三方库及配置文件。HAP 可分为 Entry 和 Feature 两种类型:

  • Entry 类型的 HAP:是应用的主模块,在 module.json5 配置文件中的 type 标签配置为“entry”类型。在同一个应用中,同一设备类型只支持一个 Entry 类型的 HAP,通常用于实现应用的入口界面、入口图标、主特性功能等。
  • Feature 类型的 HAP:是应用的动态特性模块,在 module.json5 配置文件中的 type 标签配置为“feature”类型。一个应用程序包可以包含一个或多个 Feature 类型的 HAP,也可以不包含;Feature 类型的 HAP 通常用于实现应用的特性功能,可以配置成按需下载安装,也可以配置成随 Entry 类型的 HAP 一起下载安装(请参见 module 对象内部结构中的“deliveryWithInstall”)。

每个 OpenHarmony 应用可以包含多个.hap 文件,一个应用中的.hap 文件合在一起称为一个 Bundle,而 bundleName 就是应用的唯一标识(请参见 app.json5 配置文件中的 bundleName 标签)。需要特别说明的是:在应用上架到应用市场时,需要把应用包含的所有.hap 文件(即 Bundle)打包为一个.app 后缀的文件用于上架,这个.app 文件称为 App Pack(Application Package),其中同时包含了描述 App Pack 属性的 pack.info 文件;在云端分发和端侧安装时,都是以 HAP 为单位进行分发和安装的。

hap 包开发调试与发布部署

开发

开发者通过 DevEco Studio 工具按照业务的需要创建多个 Module,在相应的 Module 中完成自身业务的开发。

调试

通过 DevEco Studio 编译打包,生成单个或者多个 HAP。真机基于 HAP 进行安装、卸载调试,调试指南可参考应用程序包调试方法,其中包括了单 HAP 与多 HAP 通过 DevEco Studio 工具的安装调试方法。

应用程序包也可以通过 hdc_std 工具(可通过 OpenHarmony SDK 获取,在 SDK 的 toolchains 目录下)进行安装、更新与卸载,通过 hdc_std 安装 HAP 时,HAP 的路径为开发平台上的文件路径,以 Windows 开发平台为例,命令参考如下:

hdc_std install C:\entry.hap C:\feature.hap     ## 安装、更新,多HAP可以指定多个文件路径
install bundle successfully.                    ## 执行结果

hdc_std uninstall com.example.myapplication     ## 卸载
uninstall bundle successfully.                  ## 执行结果

应用程序包也可以通过 bm 工具进行调试。通过 bm 工具进行安装、更新 HAP 时,传入的文件路径为真机上的文件路径,命令参考如下:

bm install -p /data/app/entry.hap /data/app/feature.hap     ## 安装、更新,多HAP可以指定多个文件路径
install bundle successfully.                                ## 执行结果

bm uninstall -n com.example.myapplication                   ## 卸载
uninstall bundle successfully.                              ## 执行结果

发布

当开发的程序包满足发布要求时,可以在工具中打包编译生成 App 包。将该 App 包上架到应用市场云端,应用市场会对上架的 App 包校验签名,校验签名通过后会将 App 包中的 HAP 拆分出来,同时对拆分出的 HAP 重新添加签名,然后对 HAP 进行分发。

部署

用户在设备上的应用市场客户端能够看到各种各样的应用,这些应用均由云端分发而来,有些是多 HAP 应用,有些是单 HAP 应用。用户选择某个应用后,应用市场将下载应用包含的全部 HAP。

应用在终端设备上的安装

下载完成后,应用市场客户端再调用系统中包管理服务的安装接口安装下载的 HAP,包管理服务以应用为单位将其中所有 HAP 部署到指定目录下,以完成应用的安装。

参考文档

  • OpenHarmony 应用开发
  • OpenHarmony 知识体系

为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙开发学习手册》:

如何快速入门:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. ……

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ……

基于ArkTS 开发:https://qr21.cn/FV7h05

  1. Ability开发
  2. UI开发
  3. 公共事件与通知
  4. 窗口管理
  5. 媒体
  6. 安全
  7. 网络与链接
  8. 电话服务
  9. 数据管理
  10. 后台任务(Background Task)管理
  11. 设备管理
  12. 设备使用信息统计
  13. DFX
  14. 国际化开发
  15. 折叠屏系列
  16. ……

鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH

鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH

1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1659872.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

项目管理在软件工程中的实践方法

软件工程是一个复杂的过程,涉及到需求分析、设计、编码、测试和维护等多个阶段。有效的项目管理对于确保软件项目成功至关重要。以下是结合附件内容,关于项目管理在软件工程中实践的一些方法。 1. 明确项目愿景和目标 在项目启动之初,项目经…

做业务有时候确实是需要一些运气

无论是考试还是做业务,那些考得好或者是业绩做得突出的人,都喜欢谦虚地说一句:只是运气好,就是运气好而已,也没什么..... 有人说:发财也要靠好运气,一个人运气好真的如此重要吗?那么…

查看微信小程序主包大小

前言 略 查看微信小程序主包大小 在微信开发者工具右上角找到“详情->基本信息” 查看微信小程序主包构成 通过微信开发者工具中的“代码依赖分析”工具查看

农业智能小型气象站功能有哪些?

TH-NQ10农业智能小型气象站是一种结合了智能化技术的小型气象监测设备,主要用于农业生产环境中。它配备了各种传感器,用于实时监测和记录气象参数,如温度、湿度、风速、降雨量等,以及土壤参数,如土壤墒情、土壤温度等。…

【OceanBase诊断调优】—— SQL 执行报错而不能计入 SQL_AUDIT 的情况

通常,执行成果的 SQL 都会计入 SQL_AUDIT 中,而执行报错的 SQL 则需要依据其执行报错的阶段来决定是否计入 SQL_AUDIT 中。 在 OceanBase 数据库中,SQL 请求的执行流程如图所示。 如果 SQL 在进入 Executor 阶段前发生报错,则该 …

YOLOV5更换转置卷积,助力涨点!

由于转置卷积是nn库自带的,所以我们直接找到models文件夹中的yolo.py文件中的 parse_model函数,再在如下图的地方添加转置卷积模块 # YOLOv5 🚀 by Ultralytics, AGPL-3.0 license """ YOLO-specific modules.Usage:$ python models/yolo.py --cfg yolov5s.…

【Android Studio】开启真机调试

1 打开手机的开发者模式 各种款式的手机进入开发者模式的情况不同,但大致是在 【关于手机】中多次点击系统版本即可进入。这里以小米8为例,记录下流程。 1.1 进入手机开发者模式 【设置】->【我的设备】->【全部参数】->【MIUI版本】连续点击3…

科技查新中医学科研项目查新点如何确立与提炼?案例讲解

一、前言 医学科技查新包括立项查新和成果查新两个部分,其中医学立项查新,它是指在医学科研项目申报开题之前,通过在一定范围内进行该课题的相关文献检索 ( 可以根据项目委托人的具体要求,进行国内检索或者进行国外检索 ) &#x…

驾驶证OCR识别接口如何对接

驾驶证OCR识别接口也叫驾驶证文字识别OCR接口,指的是传入驾驶证照片,精准识别静态驾驶证图像上的文字信息。那么驾驶证OCR文字识别接口如何对接呢? 首先我们找到一家有驾驶证OCR识别接口的服务商,数脉API,然后注册账户&#xff0…

探索计算之美:HTML CSS 计算器案例

本次案例是通过HTML和CSS,我们可以为计算器赋予独特的外观和功能; 在这个计算器中,你将会发现: 简洁清晰的界面设计,使用户能够轻松输入和查看计算结果。利用HTML构建的结构,确保页面具有良好的可访问性和…

智能评估时代:SurveyKing开源问卷系统YYDS

最近有同事在设计问卷系统,我碰巧在 GitHub 上发现了一个开源的问卷/考试系统,觉得它非常不错,给他推荐了下。今天我打算和家人们分享一下这个发现。 项目介绍 官方网站:https://surveyking.cn/ github地址:https://…

JavaWeb中的Session和Cookie

前言 什么是会话跟踪技术 Cookie 1.什么是cookie 2.Cookie的应用 2.1 保持用户登录状态 2.2 记录用户名 3. Cookie的设置和获取 3.1 、通过HttpServletResponse.addCookie的方式设置Cookie 3.2、浏览器中查看cookie的内容 3.3、服务端获取客户端携带的cookie&#xf…

【Golang】基于 excelize 的 Excel 工具包

目录 1. 安装excelize库2. Excel工具代码2.1 初始化Excel对象2.2. 常用操作2.2.1 设置窗格冻结2.2.2 设置工作表名称2.2.3 创建工作表2.2.4 设置单元格值2.2.5 设置单元格样式2.2.6 合并单元格2.2.7 设置行高和列宽 3.使用示例4.完整代码5.总结 在日常的开发中,我们…

企业必备:加密软件如何保障商业数据安全

在数字化时代,商业数据安全已成为企业运营中不可忽视的一环。在这个信息爆炸的时代,企业面临着诸多安全威胁,如数据泄露、黑客攻击等。因此,如何有效保障商业数据安全成为了每个企业都必须面对和解决的问题。而加密软件&#xff0…

免费思维13招之四:主副型思维

免费思维13招之四:主副型思维 本节,给你分享一下产品型思维的第二种子思维:主副型思维 什么是主副型思维呢?传统的主副型思维是指对企业的核心、利润最高的产品进行收费,一些附加品、延伸产品进行让利,赠送给客户。 但是这早已过时了,现在升级之后的产品型思维,就是将…

WebSocket 来单提醒和客户催单功能

一:WebSocket : WebSocket 是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工通信——浏览器和服务器只需要完成一次握手,两者之间就可以创建持久性的连接, 并进行双向数据传输。 HTTP协议和WebSocket协议对比&#…

618精选好物推荐,五款品质与性价比并存的选择!

在繁忙的生活中,我们总是渴望找到那些能够提升生活品质的好物,让每一天都过得更加精彩。而618购物节,无疑是寻找这些好物的绝佳时机。在这个盛大的购物狂欢中,我们为大家精选了五款品质与性价比并存的选择,让大家在享受…

python使用opencv对图像的基本操作(4)

19.调整图片强度 19.1.调整强度 import numpy as np from skimage import exposure img np.array([51, 102, 153], dtypenp.uint8) matexposure.rescale_intensity(img) print(mat)注:skimage.exposure.rescale_intensity函数来调整img数组的亮度范围。这个函数会…

【C++】07.string详解

目录 一、为什么会有string? 二、string的常见接口说明 2.1 string的默认成员函数 2.1.1 默认构造函数 2.1.2析构函数 2.1.3赋值运算符 2.2迭代器介绍 2.2.1 正向迭代器 2.2.2 反向迭代器 2.3 string类对象的容量操作 2.4 string类对象的访问及遍…

django显示网页步骤

显示网页步骤 小白的django学习笔记 2024/5/6 8:30 文章目录 显示网页步骤创建输入框(文本、单选、多选)效果如何在django中显示网页写函数配置地址运行,要选择这个工程名的,使用socket复制ip,后面在加上名字,成功&…