登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
登录
注册
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
7
Star
28
Fork
8
Gitee Community
/
OpenHarmony组件开发大赛-有奖征文
代码
Issues
17
Pull Requests
0
Wiki
统计
流水线
服务
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
OpenHarmony实践经验-OpenHarmony应用开发
意向
#I4CPSY
需求
sf
创建于
2021-10-04 20:05
### OpenHarmony是自主研发、不兼容安卓的全领域下一代开源操作系统。 开放原子开源基金会于 2020 年 9 月接受华为捐赠的智能终端操作系统基础能力相关代码,随后进行开源,并根据命名规则为该开源项目命名为 OpenAtom OpenHarmony(简称“OpenHarmony”)。全球有兴趣、有需要的组织和个人都可以参与该项目。 ### HarmonyOS官方文档地址 应用开发:https://developer.harmonyos.com/cn/documentation 设备开发:https://device.harmonyos.com/ ### OpenHarmony官方文档地址 https://gitee.com/openharmony/docs/ ### OpenHarmony特色 传统的终端 OS 主要是面向单端,基于 OpenHarmony 开源项目开发的系统天生是面向万物互联的,可以运行在大大小小的各种智能终端上。 OpenHarmony 用户应用程序基于全新设计的 OpenHarmony API/SDK 开发,可以运行在基于 OpenHarmony 开源项目开发的系统上,并可以在多终端之间无缝流转。 OpenHarmony 程序框架仅支持 OpenHarmony 用户应用程序运行,不支持基于安卓 API/SDK 开发的用户应用程序运行。 万物互联时代,人均持有设备量不断攀升,设备和场景的多样性,使应用开发变得更加复杂、应用入口更加丰富。在此趋势下,应用提供方和用户迫切需要一种新的服务提供方式,使应用开发更简单、服务的获取和使用更便捷。 OpenHarmony 用户应用程序是一种基于服务原子化概念定义的新型应用。与传统终端用户应用程序不同,OpenHarmony 用户应用程序支持在 OpenHarmony 设备间跨端迁移、多端协同,一次开发多端部署,实现可分可合可流转。 OpenHarmony 运行的用户应用程序有两种形态,传统方式需要安装的应用,以及提供特定功能免安装的原子化服务。 原子化服务是 OpenHarmony 提供的一种面向未来的服务,拥有独立入口(例如用户可通过厂家提供的点击、碰一碰、扫一扫等方式直接触发)、和支持免安装(由系统自动安装)的特征。原子化服务基于 OpenHarmony API 开发,支持在 OpenHarmony 系统覆盖的各种类型的终端设备上运行。 OpenHarmony 的应用软件包以 APP Pack(Application Package)形式发布,它是由一个或多个 HAP 以及描述每个 HAP 属性的 pack.info 组成。HAP 是 Ability 的部署包,OpenHarmony 应用代码围绕 Ability 组件展开。 Ability 是应用所具备的能力的抽象,一个应用可以包含一个或多个 Ability。Ability 分为两种类型:FA(Feature Ability)和 PA(Particle Ability)。FA/PA 是应用的基本组成单元,能够实现特定的业务功能。FA 有 UI 界面,而 PA 无 UI 界面。 OpenHarmony 正在以开源开放的姿态,吸引更多的合作伙伴和开发者的加入。OpenHarmony 将全面激活我国软件行业的创造力。对于其未来丰富多样化的发展可能性,无论业界或公众均有所期待。 【全领域·下一代】 OpenHarmony 包含了分布式操作系统所需的完整能力,包括内核层、系统服务层、框架层和应用层。在传统单设备系统能力基础上,OpenHarmony 创造性地提出了基于同一套系统能力、适配多种终端形态的理念,支持在多种终端设备上运行。针对设备开发者,OpenHarmony 采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活适配,满足不同形态的终端设备对于操作系统的要求。可运行在百 K 级别的资源受限设备和穿戴类设备,也可运行在百 M 以上相对内存资源丰富的各种智能设备。 迄今为止,各方在 OpenHarmony 开源项目上投入人力、资金,并取得成果,OpenHarmony 生态初具规模。多家公司先后推出搭载 OpenHarmony 操作系统的多种产品, 如:手表、微波炉、豆浆机、料理机、录音笔、机顶盒、智能汽车等, OpenHarmony 已成为全球智能终端操作系统的重要新生力量。在信息通信技术产业和数字经济进入新时期的背景下,OpenHarmony 拓展了万物互联重塑信息产业生态的新空间,为各行各业打开了富有创新机遇的新世界。 ### OpenHarmony运行效果   ### 开发工具安装 注:应用开发工具都是统一使用华为的DevEco Studio,但是使用的sdk不同,开发前首先要切换sdk配置。虽然HarmonyOS和OpenHarmony都可以用js来开发应用,但是它们的api还是有些细微的区别,OpenHarmony的api参考请参看OpenHarmony的官方文档,千万别看错了。然后OpenHarmony的sdk请下载官方的支持OpenHarmony开发的sdk,而不是DevEco studio自带的HarmonyOS sdk。 HUAWEI DevEco Studio 简介: 面向华为终端全场景多设备的一站式分布式应用开发平台,支持分布式多端开发、分布式多端调测、多端模拟仿真和全方位的质量与安全保障。 官方下载:[DevEco Studio下载地址](https://developer.harmonyos.com/cn/develop/deveco-studio#download) 安装方式:解压后一路next  第二步全部勾选   完成后重启一下。 ### 编写您的第一个OpenHarmony的App页面 ### 创建Feature Ability 注:Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。 在“Project”窗口,打开“entry > src > main > java”,右键点击“com.example.myapplication”文件夹,选择“New > Ability > Empty Feature Ability(Java)”。  ### 配置Ability 配置Ability时,将“Page Name”设置为“SecondAbility”,点击“Finish”。创建完成后,可以看到新增了“SecondAbility”和“SecondAbilitySlice”文件。   ### 用代码编写界面 打开 “SecondAbilitySlice.java”文件,添加一个文本,示例代码如下: ``` package com.example.myapplication.slice; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.colors.RgbColor; import ohos.agp.components.DependentLayout; import ohos.agp.components.DependentLayout.LayoutConfig; import ohos.agp.components.Text; import ohos.agp.components.element.ShapeElement; import ohos.agp.utils.Color; import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_PARENT; import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_CONTENT; public class SecondAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); // 声明布局 DependentLayout myLayout = new DependentLayout(this); // 设置布局大小 myLayout.setWidth(MATCH_PARENT); myLayout.setHeight(MATCH_PARENT); ShapeElement element = new ShapeElement(); element.setRgbColor(new RgbColor(0, 0, 0)); myLayout.setBackground(element); // 创建一个文本 Text text = new Text(this); text.setText("OpenHarmony!"); text.setWidth(MATCH_PARENT); text.setTextSize(55); text.setTextColor(Color.WHITE); // 设置文本的布局 DependentLayout.LayoutConfig textConfig = new DependentLayout.LayoutConfig(MATCH_CONTENT,MATCH_CONTENT); textConfig.addRule(LayoutConfig.CENTER_IN_PARENT); text.setLayoutConfig(textConfig); myLayout.addComponent(text); super.setUIContent(myLayout); } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } } ``` ### 总结 第一次写这种东西,写的不好啊。。。剩下的就看官方文档即可。
### OpenHarmony是自主研发、不兼容安卓的全领域下一代开源操作系统。 开放原子开源基金会于 2020 年 9 月接受华为捐赠的智能终端操作系统基础能力相关代码,随后进行开源,并根据命名规则为该开源项目命名为 OpenAtom OpenHarmony(简称“OpenHarmony”)。全球有兴趣、有需要的组织和个人都可以参与该项目。 ### HarmonyOS官方文档地址 应用开发:https://developer.harmonyos.com/cn/documentation 设备开发:https://device.harmonyos.com/ ### OpenHarmony官方文档地址 https://gitee.com/openharmony/docs/ ### OpenHarmony特色 传统的终端 OS 主要是面向单端,基于 OpenHarmony 开源项目开发的系统天生是面向万物互联的,可以运行在大大小小的各种智能终端上。 OpenHarmony 用户应用程序基于全新设计的 OpenHarmony API/SDK 开发,可以运行在基于 OpenHarmony 开源项目开发的系统上,并可以在多终端之间无缝流转。 OpenHarmony 程序框架仅支持 OpenHarmony 用户应用程序运行,不支持基于安卓 API/SDK 开发的用户应用程序运行。 万物互联时代,人均持有设备量不断攀升,设备和场景的多样性,使应用开发变得更加复杂、应用入口更加丰富。在此趋势下,应用提供方和用户迫切需要一种新的服务提供方式,使应用开发更简单、服务的获取和使用更便捷。 OpenHarmony 用户应用程序是一种基于服务原子化概念定义的新型应用。与传统终端用户应用程序不同,OpenHarmony 用户应用程序支持在 OpenHarmony 设备间跨端迁移、多端协同,一次开发多端部署,实现可分可合可流转。 OpenHarmony 运行的用户应用程序有两种形态,传统方式需要安装的应用,以及提供特定功能免安装的原子化服务。 原子化服务是 OpenHarmony 提供的一种面向未来的服务,拥有独立入口(例如用户可通过厂家提供的点击、碰一碰、扫一扫等方式直接触发)、和支持免安装(由系统自动安装)的特征。原子化服务基于 OpenHarmony API 开发,支持在 OpenHarmony 系统覆盖的各种类型的终端设备上运行。 OpenHarmony 的应用软件包以 APP Pack(Application Package)形式发布,它是由一个或多个 HAP 以及描述每个 HAP 属性的 pack.info 组成。HAP 是 Ability 的部署包,OpenHarmony 应用代码围绕 Ability 组件展开。 Ability 是应用所具备的能力的抽象,一个应用可以包含一个或多个 Ability。Ability 分为两种类型:FA(Feature Ability)和 PA(Particle Ability)。FA/PA 是应用的基本组成单元,能够实现特定的业务功能。FA 有 UI 界面,而 PA 无 UI 界面。 OpenHarmony 正在以开源开放的姿态,吸引更多的合作伙伴和开发者的加入。OpenHarmony 将全面激活我国软件行业的创造力。对于其未来丰富多样化的发展可能性,无论业界或公众均有所期待。 【全领域·下一代】 OpenHarmony 包含了分布式操作系统所需的完整能力,包括内核层、系统服务层、框架层和应用层。在传统单设备系统能力基础上,OpenHarmony 创造性地提出了基于同一套系统能力、适配多种终端形态的理念,支持在多种终端设备上运行。针对设备开发者,OpenHarmony 采用了组件化的设计方案,可以根据设备的资源能力和业务特征进行灵活适配,满足不同形态的终端设备对于操作系统的要求。可运行在百 K 级别的资源受限设备和穿戴类设备,也可运行在百 M 以上相对内存资源丰富的各种智能设备。 迄今为止,各方在 OpenHarmony 开源项目上投入人力、资金,并取得成果,OpenHarmony 生态初具规模。多家公司先后推出搭载 OpenHarmony 操作系统的多种产品, 如:手表、微波炉、豆浆机、料理机、录音笔、机顶盒、智能汽车等, OpenHarmony 已成为全球智能终端操作系统的重要新生力量。在信息通信技术产业和数字经济进入新时期的背景下,OpenHarmony 拓展了万物互联重塑信息产业生态的新空间,为各行各业打开了富有创新机遇的新世界。 ### OpenHarmony运行效果   ### 开发工具安装 注:应用开发工具都是统一使用华为的DevEco Studio,但是使用的sdk不同,开发前首先要切换sdk配置。虽然HarmonyOS和OpenHarmony都可以用js来开发应用,但是它们的api还是有些细微的区别,OpenHarmony的api参考请参看OpenHarmony的官方文档,千万别看错了。然后OpenHarmony的sdk请下载官方的支持OpenHarmony开发的sdk,而不是DevEco studio自带的HarmonyOS sdk。 HUAWEI DevEco Studio 简介: 面向华为终端全场景多设备的一站式分布式应用开发平台,支持分布式多端开发、分布式多端调测、多端模拟仿真和全方位的质量与安全保障。 官方下载:[DevEco Studio下载地址](https://developer.harmonyos.com/cn/develop/deveco-studio#download) 安装方式:解压后一路next  第二步全部勾选   完成后重启一下。 ### 编写您的第一个OpenHarmony的App页面 ### 创建Feature Ability 注:Ability是应用所具备能力的抽象,也是应用程序的重要组成部分。一个应用可以具备多种能力(即可以包含多个Ability),HarmonyOS支持应用以Ability为单位进行部署。Ability可以分为FA(Feature Ability)和PA(Particle Ability)两种类型,每种类型为开发者提供了不同的模板,以便实现不同的业务功能。 在“Project”窗口,打开“entry > src > main > java”,右键点击“com.example.myapplication”文件夹,选择“New > Ability > Empty Feature Ability(Java)”。  ### 配置Ability 配置Ability时,将“Page Name”设置为“SecondAbility”,点击“Finish”。创建完成后,可以看到新增了“SecondAbility”和“SecondAbilitySlice”文件。   ### 用代码编写界面 打开 “SecondAbilitySlice.java”文件,添加一个文本,示例代码如下: ``` package com.example.myapplication.slice; import ohos.aafwk.ability.AbilitySlice; import ohos.aafwk.content.Intent; import ohos.agp.colors.RgbColor; import ohos.agp.components.DependentLayout; import ohos.agp.components.DependentLayout.LayoutConfig; import ohos.agp.components.Text; import ohos.agp.components.element.ShapeElement; import ohos.agp.utils.Color; import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_PARENT; import static ohos.agp.components.ComponentContainer.LayoutConfig.MATCH_CONTENT; public class SecondAbilitySlice extends AbilitySlice { @Override public void onStart(Intent intent) { super.onStart(intent); // 声明布局 DependentLayout myLayout = new DependentLayout(this); // 设置布局大小 myLayout.setWidth(MATCH_PARENT); myLayout.setHeight(MATCH_PARENT); ShapeElement element = new ShapeElement(); element.setRgbColor(new RgbColor(0, 0, 0)); myLayout.setBackground(element); // 创建一个文本 Text text = new Text(this); text.setText("OpenHarmony!"); text.setWidth(MATCH_PARENT); text.setTextSize(55); text.setTextColor(Color.WHITE); // 设置文本的布局 DependentLayout.LayoutConfig textConfig = new DependentLayout.LayoutConfig(MATCH_CONTENT,MATCH_CONTENT); textConfig.addRule(LayoutConfig.CENTER_IN_PARENT); text.setLayoutConfig(textConfig); myLayout.addComponent(text); super.setUIContent(myLayout); } @Override public void onActive() { super.onActive(); } @Override public void onForeground(Intent intent) { super.onForeground(intent); } } ``` ### 总结 第一次写这种东西,写的不好啊。。。剩下的就看官方文档即可。
评论 (
0
)
登录
后才可以发表评论
状态
意向
意向
已确认
方案设计
UI设计
开发中
待测试
测试中
待演示
待上线
已上线
已验收
已拒绝
挂起
负责人
未设置
标签
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
未关联
master
develop
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(1)
其他
1
https://gitee.com/gitee-community/OHZW210809.git
git@gitee.com:gitee-community/OHZW210809.git
gitee-community
OHZW210809
OpenHarmony组件开发大赛-有奖征文
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册