【软通动力鸿湖万联扬帆系列“竞”开发板试用体验】试用测评报告四 – 开源鸿蒙应用软件开发

描述

本文来源电子发烧友社区,作者:ALSET, 帖子地址:https://bbs.elecfans.com/jishu_2306880_1_1.html



安装和创建鸿蒙应用(视频内容详见作者原帖子)

本帖最后由 ALSET 于 2022-9-21 18:28 编辑

鸿湖万联扬帆系列“竞”开发板试用测评报告四 – 开源鸿蒙应用软件开发
大信(QQ:8125036)
 
       在成功的实现系统刷机方法后,接下来的一步是开始着手建立该开发板的开发环境。首先阅读官方提供的开发文档《软通动力启航KS_IoT智能开发套件_软件开发环境搭建V1》。文档从环境要求,软件工具列表,虚拟机安装等做了详细的说明。这里就按照文档的操作步骤开始搭建开发板的开发环境。这里使用的VMware Workstation 15Player 虚拟机软件,版本为 Ver15.0.2
 
鸿湖万联
 
图1 OpenHarmony 整体技术架构
一、了解OpenHarmony开源项目
     在着手基于OpenHarmonyy 应用开发之前,首先有必要了解一下OpenHarmony的开源项目本身的技术信息,有利于帮助更好的了解这个系统的架构,以便后面更好的上手进行开发。这里引用了openharmony 在gitee上的readme里的部分内容,从这个内容里可以了解系统的主要架构和应用软件的一些规范定义,比如它的应用称为 FA/PA. FA 就是我们理解的APP,具有UI元素的应用,而PA则是后台应用,无界面的一种APP,这个在Android是android service的概念。
OpenHarmonyOS基本介绍
     OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)的开源项目,它面向全场景、全连接、全智能时代场景下的应用,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
系统总体架构
·     OpenHarmony整体遵从分层设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的组件。
内核层
·      内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
·      驱动子系统:驱动框架(HDF)是系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
系统服务层
系统服务层是OpenHarmony的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:
·      系统基本能力子系统集:为分布式应用在多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、公共基础库、多模输入、图形、安全、AI等子系统组成。
·      基础软件服务子系统集:提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 等子系统组成。
·      增强软件服务子系统集:提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
·      硬件服务子系统集:提供硬件服务,由位置服务、用户IAM、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
框架层
      框架层为应用开发提供了C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的ArkUI框架,以及各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,设备支持的API也会有所不同。
应用层
      应用层包括系统应用和第三方非系统应用。应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
开发环境配置介绍:
·        Windwos环境供开发者参考:
·        硬件:CPU Intel(R) Core(TM)i7-4770HQ CPU @ 2.20GHz   2.20 GHz
·        内存:16G
·        硬盘:1T
·        操作系统:Win10, Vmware 15 Player
 
二、安装集成应用开发IDE
         因为Openharmony 还没有直接可用的集成开发软件,因此开发者一般使用基于OpenHarmony开发使用华为的HarmonyOS 的集成开发工具,因为华为HarmonyOS的底层和OpenHarmony是一样的,所以可以使用华为的集成应用开发工具来做OpenHarmony的应用开发,开发软件工具名字叫 DevEco Studio,最新版本为3.0,下面页面地址即可下载。
https://developer.harmonyos.com/cn/develop/deveco-studio#download
 
鸿湖万联
 
图2 安装集成开发环境
鸿湖万联
 
图3 配置开发环境
鸿湖万联
 
图4 安装进行中
鸿湖万联
 
图5 安装各种插件
鸿湖万联
 
图6 安装Nodejs 运行框架
 
鸿湖万联
 
图7 安装鸿蒙SDK
 
鸿湖万联
 
图8 开发环境设置
 
鸿湖万联
 
图9 下载Openharmony 语言模板
 
鸿湖万联
 
图10 下载其它相关组件
 
三、创建鸿蒙Hello,world 程序
      安装完集成开发环境之后,就可以创建一个简单的测试程序,来测试验证开发环境是否正确。打开DevEco Studio,选择创建应用,如下图:
鸿湖万联
 
图11 创建新应用
下一步选择平台,这里注意,要选择 OpenHarmony, 这里默认是HarmonyOS ,注意不要选错了,HarmonyOS是华为的商业系统,而OpenHarmony才是开源社区的,这里也说一下华为,既然提供工具,就不要给自家打广告了,显的格局太小。
鸿湖万联
 
图12 创建应用模板
       选择好平台后,出现应用模板,可以按到这里有两种,一种是基于 ejs, 的开发,一种是c++的开发,ejs 是H5 框架开发的一种技术,做应用如同做页面一样简单,所以这里就选择 ejs 模板了。然后填写一些应用的参数信息,名称,项目路径,语言等。就可以了。
鸿湖万联
 
图13 配置应用相关参数
        点击完成,就进入到项目里了,看一下代码,真的很简洁,如果熟悉 javascript的同学,恍惚认为是在做页面开发,是的,做鸿蒙js应用开发,就是这么没有“技术”含量,项目源码界面:
鸿湖万联
 
图14 应用软件代码编辑
       也可以切换到UI编辑界面可以看到现在Hello,world的UI设计,这里稍微改一下,界面上加上板子的供应商名字,以示我做开发了,哈哈。
做完开发后,点击build里的编译,很快几步提示,编译成功。应用开发就这这么简单且无趣。
 
鸿湖万联
 
图15 应用软件UI设计器
 
四、编辑和编译程序
       编译程序很简单,在见面上找到build,选择编译即可。编译完后,开发打包,生成可以下载开发板的app软件,同样在build界面上,点击构建安装包,就开始进行打包工作。
      首次打开会弹出一个安全证书请求的要求,原来鸿蒙的应用都需要CA签名,按提示说明,填入相关的信息,进行证书的制作。这一步看着填的东西很多,其实很简单,按文档或者网上的教程照做,简单几步就可以过去了。
      其中有一步需要登录得到华为网上做身份认证,选择个人身份就可以了,个人身份认证还需要实名认证,这一点不得不说鸿蒙对应用开发的安全管控做的非常周密了,以后不会像某些平台上,各种恶意匿名的恶意软件横行,让人防不胜防的情况产生了。
鸿湖万联
 
图16 生成公钥
鸿湖万联
 
图17 生成设备请求证书
鸿湖万联
 
图18 注册验证鸿蒙开发者账号
获取完证书,就可以打包生成可以下载的APP了,如下图所示:
鸿湖万联
 
图19编译打包应用
        下载APP也很简单,收件把开发板插入电脑,然后在开发工具里打开DevEco Studio里的设备管理,选择本地设备,就可以看到开发板了,如果没有出现,那么说明开发板的SDK的版本和开发软件里的SDK版本不一致,搞不清版本的情况,可以进入SDK管理项里,把所有能用的SDK都勾选上,全部下载安装上,这样就可以看到开发板了。下载更多版本的SDK,需要点时间和更多的硬盘空间。
鸿湖万联
 
图20开发板模拟器和设备管理
此时回到开发界面,在右上角设备列表里,会出现开发板的ID,如果没有在下拉列表里会有,选择上即可以,然后点右侧的“运行”,即自动的安装运行,如下图:
鸿湖万联
 
图21下载到开发板测试运行
     然后开发板的显示器界面上就会自动的安装并运行我们开发的APP程序了,其中可以注意到,应用的安装运行是通过命令行进行的,这些命令可以在命令行运行,进入到SDK的toolchains目录下,运行这些命令,一样可以进行安装,运行和停止,卸载。非常方便。和Android的ADB工具模式是类似的。
hdc_std uninstall com.example.myapplication

hdc_std install -r "E:HuaweiOpenHarmonyProjMyApplicationentrybuilddefaultoutputsdefaultentry-default-signed.hap"

hdc_std shell aa start -a com.example.myapplication.MainAbility -b com.example.myapplication


五、板上运行程序
     把编译打包好的程序发布到开发板上,一种方式就是,通过DevEco在板上安装,运行。另外一个方式就是通过命令行来进行安装。同时因为测试程序只做了一个界面,没有退出按钮,所以应用无法退出。此时也可以通过命令行来终止运行:
hdc_std.exe shell aa force-stopcom.example.myapplication
板上运行效果如图:
鸿湖万联
 
图22 板上运行效果
 
后面附上一个板上启动运行的视频:

编译运行鸿蒙应用程序(视频内容详见作者原帖子)


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分