赞
踩
鸿蒙系统(HarmonyOS)是华为于2019年8月9日在东莞举行华为开发者大会发布的1.0版本操作系统,不知不觉现在已经是2023年中了,HarmonyOS的版本也更新到了3.1了,这篇文章将作为起点,一步一步入门HarmonyOS开发。(ps:文章的部分内容来自于HarmonyOS的开发指南(3.1/4.0),使用Stage模型,有兴趣可以自行参考,此外文章会尽量将HarmonyOS开发和Android的开发作比较,让读者们便于理解)
- 作者:Otaku_尻男
- 链接:https://juejin.cn/post/7278306359971954703
Android开发离不开Google,HarmonyOS开发也离不开华为,来到华为开发者联盟主页并选择注册账号,使用手机号或者邮箱注册。在注册完成后可以去个人中心完成开发者认证解锁更多功能。在拥有一个开发者账号之后我们就可以去准备下载HarmonyOS的开发工具DevEco Studio。
在DevEco Studio下载界面(https://developer.harmonyos.com/cn/develop/deveco-studio#download)选择自己的操作系统下载对应的版本即可,当前Studio的最新版本为3.1.1(如下图所示)下载完成以后安装过程和AndroidStudio安装过程是一样的
安装完成后我们启动DevEco Studio并进行基础配置,包括Node.js与Ohpm的安装路径设置、SDK下载,选择从华为镜像下载至合适的路径,下载完成后狂点Next就完事了。
在这一切都完成以后我们就进入了DevEco Studio,由于DevEco Studio也是powered by the IntelliJ
所以在很多地方越看越眼熟
首先咱们先看看创建工程的界面
DevEco Studio:Android Studio:
选择项目模板:
DevEco Studio:
Android Studio:
现在我们创建好界面,进入到了IDE,整个界面大致可以分成4个部分,上面3部分分别是工程目录区、代码编辑区、预览区,下面一个部分就是通知栏(logcat、run、版本控制之类的),具体的就不展开说了和Android开发界面就是无缝切换的。
DevEco Studio:Android Studio:
接下来我们重点介绍一下IDE工程目录区中的具体内容,整个工程目录和Android中的一样可以拆分成工程级和模块级
DevEco Studio:
Android Studio:在DevEco Studio工程级目录中我们可以看到以下几个元素:
AppScope中存放应用全局所需要的资源文件,其中element
文件夹主要存放公共的字符串、布局文件等资源, media
存放全局公共的多媒体资源文件。
entry是应用的主模块,存放HarmonyOS应用的代码、资源等。
oh_modules是工程的依赖包,存放工程依赖的源文件。
build-profile.json5是工程级配置信息,包括签名、产品配置等。
hvigorfile.ts是工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册编排,工程模型管理、配置管理等核心能力。
oh-package.json5是工程级依赖配置文件,用于记录引入包的配置信息。
DevEco Studio:
Android Studio:在DevEco Studio模块级目录中我们可以看到以下几个元素:
main文件夹中,ets文件夹用于存放ets代码,resources文件存放模块内的多媒体及布局文件等,module.json5文件为模块的配置文件,其中entryability
存放ability文件,用于当前ability应用逻辑和生命周期管理;pages
存放UI界面相关代码文件,初始会生成一个Index页面。
ohosTest是单元测试目录。
build-profile.json5是模块级配置信息,包括编译构建配置项。
hvigorfile.ts文件是模块级构建脚本。
oh-package.json5是模块级依赖配置信息文件。
- {
- "app": {
-
- "signingConfigs": [], //工程的签名信息,可包含多个签名信息
- "compileSdkVersion": 9,//指定HarmonyOS应用/服务编译时的SDK版本
- "compatibleSdkVersion": 9,//指定HarmonyOS应用/服务兼容的最低SDK版本
- //定义构建的产品品类,如通用默认版、付费版、免费版等
- "products": [
- {
- "name": "default",//定义产品的名称,支持定制多product目标产物
- "signingConfig": "default",//指定当前产品品类对应的签名信息,签名信息需要在signingConfigs中进行定义
- }
- ]
- },
- "modules": [
- {
- "name": "entry",//模块名称
- "srcPath": "./entry",//标明模块根目录相对工程根目录的相对路径
- "targets": [ //定义构建的APP产物,由product和各模块定义的targets共同定义
- {
- "name": "default", //target名称,由各个模块的build-profile.json5中的targets字段定义
- "applyToProducts": [
- "default" //表示将该模块下的“default” Target打包到“default” Product中
- ]
- }
- ]
- }
- ]
- }
- {
- "apiType": 'stageMode',//API类型,使用FA或者Stage模型
- "buildOption": { //配置筛选har依赖.so资源文件的过滤规则
- },
- "targets": [ //定义的Target,开发者可以定制不同的Target
- {
- "name": "default",
- "runtimeOS": "HarmonyOS"
- },
- {
- "name": "ohosTest",
- }
- ]
- }
- {
- "app": {
- "bundleName": "com.example.myapplication", //标识应用的Bundle名称,用于标识应用的唯一性。该标签不可缺省。
- "vendor": "example", //标识对应用开发厂商的描述。
- "versionCode": 1000000, //标识应用的版本号,该标签值为32位非负整数。
- "versionName": "1.0.0", //标识应用版本号的文字描述,用于向用户展示。
- "icon": "$media:app_icon", //应用的图标,标签值为图标资源文件的索引。
- "label": "$string:app_name", //应用的名称,标签值为字符串资源的索引
- /*
- 标识应用运行需要的API目标版本的类型,采用字符串类型表示
- Canary:受限发布的版本。
- Beta:公开发布的Beta版本。
- Release:公开发布的正式版本。
- */
- "apiReleaseType": "Release",
- "debug": false //标识应用是否可调试,该标签由IDE编译构建时生成。
- }
- }
- {
- "module": {
- "name": "entry", //当前Module的名称
- "type": "entry", //当前Module的类型
- "description": "$string:module_desc", //描述
- "mainElement": "EntryAbility", //当前Module的入口UIAbility名称或者ExtensionAbility名称
- //当前Module可运行设备类型
- "deviceTypes": [
- "phone",
- "tablet"
- ],
- "deliveryWithInstall": true, //当前Module是否在用户主动安装的时候安装
- "installationFree": false, //当前Module是否支持免安装特性
- "pages": "$profile:main_pages", //当前Module的profile资源
- //当前Module中UIAbility的配置信息
- "abilities": [
- {
- "name": "EntryAbility", //当前UIAbility组件的名称
- "srcEntry": "./ets/entryability/EntryAbility.ts", //入口UIAbility的代码路径
- "description": "$string:EntryAbility_desc", //描述
- "icon": "$media:icon", //当前UIAbility组件的图标
- "label": "$string:EntryAbility_label", //当前UIAbility组件对用户显示的名称
- "startWindowIcon": "$media:icon", //UIAbility组件启动页面图标资源文件的索引
- "startWindowBackground": "$color:start_window_background", //当前UIAbility组件启动页面背景颜色资源文件的索引
- "exported": true, //当前ExtensionAbility组件是否可以被其他应用调用
- //当前UIAbility组件或ExtensionAbility组件能够接收的的特征集,为数组格式。
- "skills": [
- {
- "entities": [
- "entity.system.home"
- ],
- "actions": [
- "action.system.home"
- ]
- }
- ]
- }
- ]
- }
- }
Ok,本篇文章带你大致浏览了HarmonyOS开发入门所要准备的环境以及熟悉了DevEco Studio的开发界面,了解了项目工程目录下的配置文件内容,希望对你有帮助,如果你们有疑问或者想说的也欢迎在论区或私信留言捏❤️❤️。
关注我获取更多知识或者投稿
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。