赞
踩
此前从未能有一个手机操作系统有鸿蒙OS这样令我这么期待,从去年年底开始,有关鸿蒙OS的消息就一直牵动我的心,大家都对这一华为自研的系统格外关注,而当华为公司在今年五月下旬宣布6月2号当天将正式发布鸿蒙OS系统的时候,我对这一系统的旗舰也逐渐达到巅峰,如今6月2号终于到来,鸿蒙OS也真的和大家见面了。
以下整理转发鸿蒙提供的开发文档
https://developer.harmonyos.com/cn/home/
转载地址
开发工具下载:https://developer.harmonyos.com/cn/develop/deveco-studio#download_release
各类设备(手机/平板、智能穿戴、智慧屏等)通用的用户应用程序开发历程如下表所示。
任务 | 简介 | 相关资源 |
---|---|---|
认识HarmonyOS | 了解HarmonyOS的系统定位、架构、技术特性等。了解HarmonyOS应用开发的基本概念和基础知识。 | HarmonyOS概述开发基础知识 |
准备开发环境 | 安装开发工具,并配置相关开发环境。快速构建首个应用,熟悉HarmonyOS应用开发流程。 | 下载和安装软件配置开发环境快速入门 |
开发Ability | Ability是HarmonyOS应用程序的重要组成部分,分为FA(Feature Ability)和PA(Particle Ability)两种类型:FA支持Page Ability:Page模板是FA唯一支持的模板,用于提供与用户交互的能力。PA支持Service Ability和Data Ability:Service模板用于提供后台运行任务的能力;Data模板用于对外部提供统一的数据访问抽象。进行HarmonyOS应用开发,首先要了解Ability如何使用。 | Page AbilityService AbilityData Ability |
开发UI | FA需要提供UI用于与用户进行交互,HarmonyOS提供了Java UI和JS UI两种UI框架:Java UI提供了细粒度的UI编程接口,使应用开发更加灵活;JS UI提供了相对高层的UI描述,使应用开发更加简单。说明针对轻量级智能穿戴(Lite Wearable),现阶段只使用JS语言进行应用开发,详见轻量级智能穿戴开发。 | Java UI框架Java API参考JS UI框架JS API参考 |
开发业务功能 | 媒体:视频、音频、图像、相机等功能的开发。安全:权限、生物特征识别等功能的开发。AI:图像超分、语音识别、码生成等功能的开发。网络连接:NFC、蓝牙、WLAN等功能的开发。设备管理:传感器、控制类小器件、位置等功能的开发。数据管理:数据库、分布式数据/文件服务、数据搜索等功能的开发。线程:线程管理、线程间通信等功能的开发。IDL:声明系统服务和Ability对外提供的服务接口,并生成相关代码。 | 媒体开发指南安全开发指南AI开发指南网络与连接开发指南设备管理开发指南数据管理开发指南线程开发指南IDL接口使用指南 |
调试应用 | 如果需要在真机设备上调试应用,则在编译前需要先申请调试证书,并配置签名信息。以便于在编译构建时,生成带签名信息的HAP。如果在模拟器上调试应用,则不需要签名,直接编译构建HAP即可。 | 使用真机进行调试使用模拟器进行调试 |
发布应用 | 如果需要发布到应用市场,需要申请发布证书,并对APP进行签名,再申请上架。 | 应用发布 |
HarmonyOS除支持传统方式的需要安装的应用外,还支持提供特定功能的免安装的应用(即原子化服务),供用户在合适的场景、合适的设备上便捷使用。
原子化服务相对于传统方式的需要安装的应用更加轻量,同时提供更丰富的入口、更精准的分发。原子化服务的详细介绍请参见“原子化服务”。
其基本开发历程如下表所示。
任务 | 开发历程 | 相关内容 |
---|---|---|
了解HarmonyOS | 了解HarmonyOS的系统定位、技术特性、应用开发的基本概念和基础知识,熟悉HarmonyOS应用开发通用流程。 | HarmonyOS概述开发基础知识快速入门 |
设计原子化服务 | 在设计阶段,需要满足原子化服务的设计规范,包括图标、卡片、分布式等规范。 | 原子化服务设计 |
掌握原子化服务约束 | 了解原子化服务之间的调用管控机制。 | 三方应用调用管控机制 |
开发原子化服务基础体验 | 了解原子化服务总体开发规则、如何开发服务卡片等基础体验。 | 原子化服务总体开发要求服务卡片开发指南 |
开发原子化服务分布式体验 | 了解如何开发流转、分享等分布式体验。 | 流转开发指南华为分享接入指南 |
相对于通用开发历程,智能穿戴、智慧屏存在一些特殊应用开发场景,其补充指导如下表所示。
设备类型 | 简介 | 相关资源 |
---|---|---|
智能穿戴 | 对于智能穿戴,应用可以通过HarmonyOS提供的接口实现音频、传感器、网络连接、UI交互、消息提醒等常规业务的开发。开发者也可以根据智能穿戴的特点,打造针对智能穿戴的独特应用。 | 智能穿戴开发指南 |
智慧屏 | 基于HarmonyOS,开发者可以开发智慧屏应用,提供丰富的分布式多媒体体验。应用可以通过HarmonyOS的API实现多媒体业务、网络访问、UI开发等能力。 | 智慧屏开发指南 |
路由器 | 对于路由器,应用可以通过HarmonyOS提供的接口实现管理智能设备,如获取智能设备信息、订阅智能设备数据变化、控制智能设备等业务的开发。开发者也可以根据家庭多设备联动的特点,打造针对全屋智能的独特应用。 | 路由器开发指南 |
针对重点功能或场景的开发者教程如下表所示。
分类 | 主题 | 简介 |
---|---|---|
安全 | HarmonyOS面部识别能力 | 基于HarmonyOS生物特征识别和相机子系统,实现人脸识别和相机拍照功能。 |
设备管理 | BLE蓝牙低功耗 | 使用Bluetooth Low Energy(低功耗蓝牙)实现设备间通信。 |
通用组件 | WebView组件 | 使用WebView组件实现应用与Web页面间的通信。 |
自定义组件 | 通过一个圆形抽奖转盘演示HarmonyOS自定义组件的实现。 | |
JS组件购物应用演示 | 使用JS实现一款简单的HarmonyOS购物应用。 | |
常用组件和布局 | 基于HarmonyOS Java UI,实现常见组件或者布局。 | |
AI | AI通用文字识别 | 基于AI通用文字识别能力,检测和识别文档翻拍、街景翻拍等图片中的文字。 |
AI语音播报系统 | 基于AI语音播报能力,朗读输入的文字内容。 | |
数据库 | 分布式数据库 | 基于分布式数据接口,实现多种设备上一致的数据访问体验。 |
关系型数据库 | 基于Data Ability的关系型数据库和数据管理能力,实现数据库相关应用服务的快速开发。 | |
轻量级偏好数据库 | 基于轻量级偏好数据库,实现存储在本地应用数据的访问及操作。 | |
媒体 | 音频播放管理 | 基于HarmonyOS Player,实现音频的播放、管理控制和采集。 |
编解码能力 | 基于HarmonyOS编解码能力,实现Camera实时预览流的播放。 | |
图片编辑模板 | 基于图片处理能力,实现一个图片编辑模板。 | |
图片常见操作 | 基于HarmonyOS图像编解码,实现图片的旋转、剪裁、缩放、镜像。 | |
简易视频播放器 | 基于HarmonyOS Player,实现视频文件的播放。 | |
分布式 | 分布式地图导航 | 基于分布式能力,实现地图导航信息在手机-车机-智能穿戴设备之间流转。 |
分布式输入法 | 基于分布式能力,将手机作为智慧屏的虚拟控制器,控制文字输入和遥控播放。 | |
分布式游戏手柄 | 基于分布式能力,将手机作为智慧屏的虚拟手柄终端,组成全新的多人娱乐场景。 | |
分布式邮件编辑 | 基于跨设备迁移和分布式文件能力,实现邮件的跨设备编辑和附件的调用。 | |
分布式语音照相机 | 基于分布式文件系统和AI语音识别功能,实现一款分布式语音照相机。 | |
分布式调度启动远程FA | 基于分布式调度的能力,实现远程FA的启动。 | |
跨设备视频播放 | 基于分布式能力和IDL跨进程通信,实现视频跨设备播放、控制。 | |
分布式新闻客户端 | 基于HarmonyOS应用中Service Ability和Page Ability的使用,实现跨设备FA拉起。 | |
分布式亲子早教系统 | 基于分布式能力,实现一个多屏互动、跨设备协同的亲子早教系统。 |
主题 | 简介 |
---|---|
什么是HarmonyOS | 介绍HarmonyOS定义及特点。 |
HarmonyOS系统架构 | 介绍HarmonyOS系统架构以及FA/PA原理。 |
HarmonyOS应用开发系列课(基础篇) | 介绍HarmonyOS整体架构和理念,关键技术(分布式关键技术/安全和隐私/UX),应用程序框架,以及开放能力和工具平台。 |
HarmonyOS应用开发系列课(进阶篇) | 介绍HarmonyOS应用程序框架,HarmonyOS分布式软总线、任务调度,分布式数据管理、安全和隐私设和UX体验设计等内容。 |
HarmonyOS应用开发系列课(高级篇) | HarmonyOS系列课程,快速上手HarmonyOS应用开发。 |
HarmonyOS应用开发系列课(案例篇) | HarmonyOS开发者实战经验和案例分享。 |
DevEco Studio提供了丰富的HarmonyOS应用调试能力,支持Java、JS、C/C++单语言调试和JS+Java、Java+C/C++跨语言调试能力,同时还支持分布式应用的跨设备调试,帮助开发者更方便、高效的调试应用。
HarmonyOS应用调试支持使用真机设备调试。使用真机设备进行调试前,需要对HAP进行签名后进行调试。详细的调试流程如下图所示。
调试应用签名的方式包括如下两种:
通过DevEco Studio自动化签名的方式更加简单和高效,因此推荐开发者使用自动化签名。关于AppGallery Connect中申请调测证书和Profile的方式,可以参考申请发布证书和Profile文件流程。
连接真机设备,确保DevEco Studio与真机设备已连接。
进入File > Project Structure > Project > Signing Configs界面,点击“Sign In”按钮进行登录。
在AppGallery Connect中创建项目和应用。
登录AppGallery Connect,创建一个项目。
在项目中,点击
添加应用
按钮,创建一个应用。如果是非实名认证的用户,请点击“HAP Provision Profile管理”界面的
HarmonyOS应用
按钮。
返回DevEco Studio的自动签名界面,点击Try Again,即可自动进行签名。自动生成签名所需的密钥(.p12)、数字证书(.cer)和Profile文件(.p7b)会存放到用户user目录下的.ohos\config目录下。
说明
如果是非实名认证用户,需要先接受“HUAWEI Developer Basic Service Agreement”协议。
设置完签名信息后,点击OK进行保存,然后可以在工程下的build.gradle中查看签名的配置信息。
**(可选)**由于签名配置是开发者的私有信息,DevEco Studio会对签名配置中的密码进行安全保护,但是这个保护会对提交build.gradle到代码仓中带来不便。因此,开发者可以将签名配置信息放在一个独立的文件中,从而可以方便的将build.gradle提交到代码仓,而存放签名配置信息的文件不用提交。
在工程的根目录下创建一个名为signing-config.properties的文件。
打开signing-config.properties文件,写入签名配置信息。签名配置信息可以从工程的build.gradle文件中进行拷贝,p12、p7b和cer文件存储地址可以自定义。
storeFile=D:\\key\\auto_debug_900086000300430549.p12storePassword=0000001BA1E0B33A4507FAAD0CD0F378CE4E6AC5AEBDEA75C3283753284436002D859E52C3836DAD3A3D1CkeyAlias=myApplication_debugkeyPassword=0000001BAC7C26C59AC5EB95E56DFC155C911ED08C658839127F4CEC6AB548B39BE8CC499CE7F27F13AE57profile=D:\\key\\auto_debug_Myapplication_900086000300430549.p7bcertpath=D:\\key\\auto_debug_900086000300430549.cer
打开build.gradle,修改debug或release类型的签名配置信息从signing-config.properties文件中读取。下面是debug类型签名信息的配置示例:
apply plugin: 'com.huawei.ohos.hap'...//加载签名信息配置文件def signingConfigPropsFile = rootProject.file("signing-config")def signingConfigProps = new Properties()signingConfigProps.load((new FileInputStream(signingConfigPropsFile)))
ohos { ... //配置签名信息索引 signingConfigs { debug { storeFile file(signingConfigProps['storeFile']) storePassword signingConfigProps['storePassword'] keyAlias signingConfigProps['keyAlias'] keyPassword signingConfigProps['keyPassword'] signAlg = 'SHA256withECDSA' profile file(signingConfigProps['profile']) certpath file(signingConfigProps['certpath']) } }
修改完成后重新同步工程即可。
调试类型默认情况下为Detect Automatically,支持Java、JS、C/C++、JS+Java、Java+C/C++工程的调试。只有在JS+Java混合工程中,如果需要单独调试Java代码,这种情况下需要手动修改Debug Type为“Java”。
关于各调试类型的说明如下表所示。
调试类型 | 调试代码 |
---|---|
Java Only | 仅调试Java代码 |
Js Only | 仅调试JavaScript代码 |
Native Only | 仅调试C/C++代码 |
Dual(Js + Java) | 调试JS FA调用Java PA场景的JS和Java代码 |
Dual(Java + Native) | 调试C/C++工程的Java和C/C++代码 |
Detect Automatically | 新建工程默认调试器选项,根据调试的工程类型,自动启动对应的调试器。说明JS+Java混合工程中,如果需要单独调试Java代码,这种情况下需要手动修改Debug Type为“Java”。 |
修改调试类型的方法如下。
点击Run > Edit Configurations > Debugger,在HarmonyOS App中,选择相应模块, 可以进行Java/JS/C++调试配置。
在启动Feature模块的调试前,请检查Feature模块下的config.json文件的abilities数组是否存在“visible”属性,如果不存在,请手动添加,否则Feature模块的调试无法进入断点。Entry模块的调试不需要做该检查。
在工程目录中,点击Feature模块下的src > main > config.json文件,检查abilities数组是否存在“visible”属性。
在abilities数组中手动添加“visible”属性,取值为true。
说明
如果Feature模块手动添加了“visible”属性为true,表示该模块可以被其它的应用所调用。如果您不允许该模块被其它应用调用,请在调试完成后手动删除visible属性。
在调试阶段,Hap包在设备上的安装方式有2种,您可以根据实际需要进行设置
设置方法如下:
点击Run > Edit Configurations,设置指定模块的Hap包安装方式,勾选 ”Replace existing application”,则表示采用覆盖安装方式,保留应用缓存数据。
如果一个工程中同一个设备存在多个模块(如Phone设备,存在entry和feature模块),且存在模块间的调用时,在调试阶段需要同时安装多个模块的hap包到设备中。此时,需要在待调试模块的设置项中勾选“Deploy Multi Hap Package”。例如entry模块调用feature模块,在调试entry模块时,需要同时安装feature模块,您应该在entry模块的调试设置项中勾选“Deploy Multi Hap Package”后再启动调试。
在工具栏中,选择调试的设备,并点击Debug 或Attach Debugger to Process启动调试。
说明
Debug和Attach Debugger的区别在于,Attach Debugger to Process可以先运行应用,然后再启动调试,或者直接启动设备上已安装的应用进行调试;而Debug是直接运行应用后立即启动调试。目前JS代码不支持Attach Debugger to Process调试。
如果需要设置断点调试,则需要选定要设置断点的有效代码行,在行号(比如:24行)的区域后,单击鼠标左键设置断点(如图示的红点)。
设置断点后,调试能够在正确的断点处中断,并高亮显示该行。
启动调试后,开发者可以通过调试器进行代码调试。调试器的功能说明如下表所示。
按钮 | 名称 | 快捷键 | 功能 |
---|---|---|---|
Resume Program | F9(Mac为Option+Command+R) | 当程序执行到断点时停止执行,点击此按钮程序继续执行。 | |
Step Over | F8(Mac为F8) | 在单步调试时,直接前进到下一行(如果在函数中存在子函数时,不会进入子函数内单步执行,而是将整个子函数当作一步执行)。 | |
Step Into | F7(Mac为F7) | 在单步调试时,遇到子函数后,进入子函数并继续单步执行。 | |
Force Step Into | Alt+Shift+F7(Mac为Option+Shift+F7) | 在单步调试时,强制下一步。 | |
Step Out | Shift+F8(Mac为Shift+F8) | 在单步调试执行到子函数内时,点击Step Out会执行完子函数剩余部分,并跳出返回到上一层函数。 | |
Stop | Ctrl+F2(Mac为Command+F2) | 停止调试任务。 | |
Run To Cursor | Alt+F9(Mac为Option+F9) | 断点执行到鼠标停留处。 |
对于原子化服务,由于原子化服务在设备中没有桌面图标,可以通过如下方式在设备中运行/调试原子化服务。
在设置的程序断点红点处,点击鼠标右键,然后点击More或按快捷键Ctrl+Shift+F8(Mac为Shift+Command+F8),可以管理断点。
代码类型 | 断点管理 |
---|---|
JS(JavaScript) | 普通行断点 |
Java | 普通行断点Exception(异常)断点 |
C/C++ | 普通行断点Exception(异常)断点Symbolic(符号)断点 |
各类设备(手机/平板、智能穿戴、智慧屏等)通用的用户应用程序开发历程如下表所示。
任务 | 简介 | 相关资源 |
---|---|---|
开发Ability | Ability是HarmonyOS应用程序的重要组成部分,分为FA(Feature Ability)和PA(Particle Ability)两种类型:FA支持Page Ability:Page模板是FA唯一支持的模板,用于提供与用户交互的能力。PA支持Service Ability和Data Ability:Service模板用于提供后台运行任务的能力;Data模板用于对外部提供统一的数据访问抽象。进行HarmonyOS应用开发,首先要了解Ability如何使用。 | Page AbilityService AbilityData Ability |
开发UI | FA需要提供UI用于与用户进行交互,HarmonyOS提供了Java UI和JS UI两种UI框架:Java UI提供了细粒度的UI编程接口,使应用开发更加灵活;JS UI提供了相对高层的UI描述,使应用开发更加简单。说明针对轻量级智能穿戴(Lite Wearable),现阶段只使用JS语言进行应用开发,详见轻量级智能穿戴开发。 | Java UI框架Java API参考JS UI框架JS API参考 |
开发业务功能 | 媒体:视频、音频、图像、相机等功能的开发。安全:权限、生物特征识别等功能的开发。AI:图像超分、语音识别、码生成等功能的开发。网络连接:NFC、蓝牙、WLAN等功能的开发。设备管理:传感器、控制类小器件、位置等功能的开发。数据管理:数据库、分布式数据/文件服务、数据搜索等功能的开发。线程:线程管理、线程间通信等功能的开发。IDL:声明系统服务和Ability对外提供的服务接口,并生成相关代码。 | 媒体开发指南安全开发指南AI开发指南网络与连接开发指南设备管理开发指南数据管理开发指南线程开发指南IDL接口使用指南 |
HarmonyOS除支持传统方式的需要安装的应用外,还支持提供特定功能的免安装的应用(即原子化服务),供用户在合适的场景、合适的设备上便捷使用。
原子化服务相对于传统方式的需要安装的应用更加轻量,同时提供更丰富的入口、更精准的分发。原子化服务的详细介绍请参见“原子化服务”。
其基本开发历程如下表所示。
任务 | 开发历程 | 相关内容 |
---|---|---|
了解HarmonyOS | 了解HarmonyOS的系统定位、技术特性、应用开发的基本概念和基础知识,熟悉HarmonyOS应用开发通用流程。 | HarmonyOS概述开发基础知识快速入门 |
设计原子化服务 | 在设计阶段,需要满足原子化服务的设计规范,包括图标、卡片、分布式等规范。 | 原子化服务设计 |
掌握原子化服务约束 | 了解原子化服务之间的调用管控机制。 | 三方应用调用管控机制 |
开发原子化服务基础体验 | 了解原子化服务总体开发规则、如何开发服务卡片等基础体验。 | 原子化服务总体开发要求服务卡片开发指南 |
开发原子化服务分布式体验 | 了解如何开发流转、分享等分布式体验。 | 流转开发指南华为分享接入指南 |
开发者完成HarmonyOS应用开发后,需要将应用打包成APP,用于发布到华为应用市场。发布应用的流程如下图所示。
关于以上流程的详细介绍,请继续查阅本章节内容。
调试应用签名的方式包括如下两种:
通过DevEco Studio自动化签名的方式更加简单和高效,因此推荐开发者使用自动化签名。关于AppGallery Connect中申请调测证书和Profile的方式,可以参考申请发布证书和Profile文件流程。
连接真机设备,确保DevEco Studio与真机设备已连接。
进入File > Project Structure > Project > Signing Configs界面,点击“Sign In”按钮进行登录。
在AppGallery Connect中创建项目和应用。
登录AppGallery Connect,创建一个项目。
在项目中,点击
添加应用
按钮,创建一个应用。如果是非实名认证的用户,请点击“HAP Provision Profile管理”界面的
HarmonyOS应用
按钮。
返回DevEco Studio的自动签名界面,点击Try Again,即可自动进行签名。自动生成签名所需的密钥(.p12)、数字证书(.cer)和Profile文件(.p7b)会存放到用户user目录下的.ohos\config目录下。
说明
如果是非实名认证用户,需要先接受“HUAWEI Developer Basic Service Agreement”协议。
设置完签名信息后,点击OK进行保存,然后可以在工程下的build.gradle中查看签名的配置信息。
通过生成的证书请求文件,向AppGallery Connect申请发布证书和Profile文件,详细操作请参考下表。
步骤 | 操作步骤 | 操作说明 | 操作指导 |
---|---|---|---|
1 | 创建AGC项目 | 申请发布证书前,需要登录AppGallery Connect后创建一个项目。说明如果在申请调试证书时已经创建了项目和应用,则可以跳过“创建AGC项目”和“创建HarmonyOS应用”步骤。 | 创建您的AGC项目 |
2 | 创建HarmonyOS应用 | 在AppGallery Connect项目中,创建一个HarmonyOS应用,用于发布证书和Profile文件申请。 | 创建HarmonyOS应用 |
3 | 申请发布证书和Profile文件 | 在AppGallery Connect中申请、下载发布证书和Profile文件。 | 申请发布证书和Profile文件 |
用于发布的证书和Profile文件后,请在DevEco Studio中进行签名,请参考配置签名信息。
编译构建APP需要使用到制作的私钥(.p12)文件、在AppGallery Connect中申请的证书(.cer)文件和Profile(.p7b)文件。然后在DevEco Studio中对工程进行配置。
在File > Project Structure > Project > Signing Configs窗口中,配置工程的签名信息。
设置完签名信息后,点击OK进行保存,然后使用DevEco Studio生成APP,请参考编译构建APP。
打包APP时,DevEco Studio会将工程目录下的所有HAP模块打包到APP中,因此,如果工程目录中存在不需要打包到APP的HAP模块,请手动删除后再进行编译构建生成APP。
点击Build > Build APP(s)/Hap(s) > Build APP(s),等待编译构建完成已签名的APP。
编译构建完成后,可以在build > outputs > app > release目录下,获取带签名的APP。
将HarmonyOS应用打包成APP后,通过AppGallery Connect将HarmonyOS应用分发到不同的设备上。您可以根据发布HarmonyOS应用指导将APP上架到华为应用市场。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。