很多伙伴对于 openharmony 北向开发和南向开发感到困惑。南向开发就是硬件开发,这里我就和大家谈谈北向开发。
北向开发就是软件应用开发,基于 arkts 语言开发。编译器是 deveco studio。下面就讲解一下编译器安装和具体情况。
deveco studio 的安装
首先我们登录官网:
这里需要注意的是你需要根据你的电脑进行安装相应的版本。如果你是 win 系统你可以下载 windows(64-bit),如果你是 macos 请下载 mac(arm)。(具体根据自己的系统架构来区分下载版本)。
注:如果你的 mac 是 m1 或者 m2 芯片,请不要下载 x86 版本!请不要下载 x86 版本!请不要下载 x86 版本!
下载好之后点击安装,就会出现以下画面(小编用的是 mac 系统可能会有点不一样但大部分是一样的):将其拖进 application 就行了。
然后我们打开软件,就会出现以下内容:
在这里把存储地址选好然后点 next。
继续点 next 就好了。
完成后点 finish 就行了。
这里点击 agree 就行了。
进入 deveco studio 配置页面,首先需要进行基础配置,包括 node.js 与 ohpm 的安装路径设置,选择从华为镜像下载至合适的路径。
点击 next 进行下一步。
一直点 next 就行了。
完成后点击 finish 就可以了。
这样我们的编译器就安装好了。
harmonyos 开发
①开发工具:deveco studio。
②开发语言:arkts,ui 框架 arkui
③工程级目录
如下:
appscope 中存放应用全局所需要的资源文件。
entry 是应用的主模块,存放 harmonyos 应用的代码、资源等。
oh_modules 是工程的依赖包,存放工程依赖的源文件。
build-profile.json5 是工程级配置信息,包括签名、产品配置等。
hvigorfile.ts 是工程级编译构建任务脚本,hvigor 是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
oh-package.json5 是工程级依赖配置文件,用于记录引入包的配置信息。
注:在 appscope,其中有 resources 文件夹和配置文件 app.json5。
appscope>resources>base 中包含 element 和 media 两个文件夹。
其中 element 文件夹主要存放公共的字符串、布局文件等资源。media 存放全局公共的多媒体资源文件。
④模块级目录
①entry>src 目录中主要包含总的 main 文件夹,单元测试目录 ohostest,以及模块级的配置文件。
如下:
main 文件夹中,ets 文件夹用于存放 ets 代码,resources 文件存放模块内的多媒体及布局文件等,module.json5 文件为模块的配置文件。
ohostest 是单元测试目录。
build-profile.json5 是模块级配置信息,包括编译构建配置项。
hvigorfile.ts 文件是模块级构建脚本。
oh-package.json5 是模块级依赖配置信息文件。
②进入 src>main>ets 目录中,其分为 entryability、pages 两个文件夹。
entryability 存放 ability 文件,用于当前 ability 应用逻辑和生命周期管理。pages 存放 ui 界面相关代码文件,初始会生成一个 index 页面。
③resources 目录下存放模块公共的多媒体、字符串及布局文件等资源,分别存放在 element、media 文件夹中。
④app.jason5
{ app: { bundlename: com.example.myapplication, vendor: example, versioncode: 1000000, versionname: 1.0.0, icon: $media:app_icon, label: $string:app_name }}
appscope>app.json5 是应用的全局的配置文件,用于存放应用公共的配置信息。
其中配置信息如下:
bundlename 是包名。
vendor 是应用程序供应商。
versioncode 是用于区分应用版本。
versionname 是版本号。
icon 对应于应用的显示图标。
label 是应用名。
⑤module.json5
entry>src>main>module.json5 是模块的配置文件,包含当前模块的配置信息。
{ module: { name: entry, type: entry, description: $string:module_desc, mainelement: entryability, devicetypes: [ phone ], deliverywithinstall: true, installationfree: false, pages: $profile:main_pages, abilities: [ { name: entryability, srcentry: ./ets/entryability/entryability.ts, description: $string:entryability_desc, icon: $media:icon, label: $string:entryability_label, startwindowicon: $media:icon, startwindowbackground: $color:start_window_background, exported: true, skills: [ { entities: [ entity.system.home ], actions: [ action.system.home ] } ] } ] } }
其中 module 对应的是模块的配置信息,一个模块对应一个打包后的 hap 包,hap 包全称是 harmonyos ability package,其中包含了 ability、第三方库、资源和配置文件。其具体属性及其描述可以参照下表。
name:该标签标识当前 module 的名字,module 打包成 hap 后,表示 hap 的名称,标签值采用字符串表示(最大长度 31 个字节),该名称在整个应用要唯一。
type:表示模块的类型,类型有三种,分别是 entry、feature 和 har。
srcentry:当前模块的入口文件路径。
description:当前模块的描述信息。
mainelement:该标签标识 hap 的入口 ability 名称或者 extension 名称。只有配置为 mainelement 的 ability 或者 extension 才允许在服务中心露出。
devicetypes:该标签标识 hap 可以运行在哪类设备上,标签值采用字符串数组的表示。
deliverywithinstall:标识当前 module 是否在用户主动安装的时候安装,表示该 module 对应的 hap 是否跟随应用一起安装。- true:主动安装时安装。- false:主动安装时不安装。
installationfree:标识当前 module 是否支持免安装特性。- true:表示支持免安装特性,且符合免安装约束。- false:表示不支持免安装特性。
pages:对应的是 main_pages.json 文件,用于配置 ability 中用到的 page 信息。
abilities:是一个数组,存放当前模块中所有的 ability 元能力的配置信息,其中可以有多个 ability。
⑥main_pages.json
{ src: [ pages/index ]}
src/main/resources/base/profile/main_pages.json 文件保存的是页面 page 的路径配置信息,所有需要进行路由跳转的 page 页面都要在这里进行配置。
运行一个hello world
下面我们新建一个项目:
点击 next:
继续点击 next:
等待其下载好。
点击 tools 里面的 device manager。
点击右下角按钮:
点击 next。
一般这边会出现下载图标,这里博主下载过了所以没有出现。下载好之后直接点击 next。
下载完成之后点击绿色三角形标就行了。这样模拟机就可以运行了。
这样就算启动好了。
然后我们点击右上角启动预制的 hello world 代码。这样就算完成了。
总结
如果还有错误的地方欢迎指出并纠正。谢谢大家!
电子制作手工焊接技术基础
【虹科】被动诊断工具-快速Profinet故障排除
苹果第三季度在智能手机市场的利润占有率达到60.5%
中国又一款隐身机研发成功,最大起飞重量为3吨
精选91个电气技术的重点问题与解答
HarmonyOS开发:运行hello world
基于积分球测试系统的透射率和反射率检测
便携式蓝牙音箱的制作图解
产业链之争凸显手机市场竞争之激烈
万用表浪涌电流什么意思?
光电复用口是什么意思_怎么区分光电复用口
全面解析:RISC-V异构IoT架构
vivo屏幕指纹新发展,开创指纹识别新技术
通用智能芯片设计公司壁仞科技近日宣布完成B轮融资
软板基础知识
美研究出心跳供电的心律调节器 原用于无人驾驶飞机
fireflyAIO-3288C主板升级统一固件简介
揭秘Google两大超级工程师:AI领域绝无仅有的黄金搭档
HarmonyOS 3.1版本发布,全面进入声明式开发
华引芯半导体器件中心扩建项目竣工投产