鼠扑 发表于 2024-9-21 17:55:34

写给初学者的 HarmonyOS 教程 -- 熟悉 DevEco Studio

一、下载与安装 DevEco Studio

要进行 HarmonyOS 开发,必须要切换开发工具了,菊花厂基于 IntelliJ IDEA Community 开源版本打造新打造了一个面向华为终端全场景多设备的一站式集成开发环境(IDE):DevEco Studio。
进入 DevEco Studio 官网下载。
https://i-blog.csdnimg.cn/blog_migrate/1ffff1da288a003e23252d6945531ccc.png#pic_center
DevEco Studio提供了 Windows 版本和 Mac 版本选择,可以根据操作系统选择对应的版本进行下载。关于安装的方法以及配套环境设置等,就不在文章里面输出了,大家去官网查看。
根据官方引导创建好第一个应用后,照旧要仔细研究一下它的整个工程目次架构,有助于我们后续的开发工作。
二、根本工程目次

2.1 工程级目次

https://i-blog.csdnimg.cn/blog_migrate/6745669d2511b3911cd013658f731321.png
跟传统的 Android 项目目次对比,照旧有很大区别的(最少名字上改的面貌全非)。
我们详细看一下:
工程级目次作用AppScope存放应用全局所必要的资源文件/全局配置文件entry应用的主模块,存放 HarmonyOS 应用的代码、资源等hvigor基于任务管理机制实现的一款全新的主动化构建工具,重要提供任务注册编排,工程模子管理、配置管理等核心能力oh_module工程的依靠包,存放工程依靠的源文件build-profile.json5工程级配置信息,包括署名、产物配置等hvigorfile.ts工程级编译构建任务脚本oh-package.json5工程级依靠配置文件,用于记录引入包的配置信息 在 AppScope,其中有 resources 文件夹和配置文件 app.json5。
https://i-blog.csdnimg.cn/blog_migrate/f08219d07d86e9db5419d020155aefb5.png
# AppScope > resources

AppScope>resources>base中包含 element 和 media 两个文件夹。
AppScopeelement重要存放公共的字符串、结构文件等资源media存放全局公共的多媒体资源文件 https://i-blog.csdnimg.cn/blog_migrate/13c531ae421a590c2428b15f595f65c5.png
# AppScope > app.json5

app.json5 是应用的全局的配置文件,用于存放应用公共的配置信息,你可以把它理解为类似项目级别的 build.gradle。
{
"app": {
    "bundleName": "com.example.firstharmonyproject",    // 包名
    "vendor": "example",                              // 应用程序供应商
    "versionCode": 1000000,                           // 用于区分应用版本
    "versionName": "1.0.0",                           // 版本号
    "icon": "$media:app_icon",                        // 对应于应用的显示图标
    "label": "$string:app_name"                         // 应用名
}
}
2.2 模块级目次

https://i-blog.csdnimg.cn/blog_migrate/3f858308ae3765b03e102e4584d97f2d.png
模块级目次作用src重要包含总的 main 文件夹,单元测试目次 ohosTest,以及模块级的配置文件     main-            etc用于存放ets代码                 entryability存放ability文件,用于当前ability应用逻辑和生命周期管理                 pages存放UI界面相关代码文件,初始会生成一个Index页面            resources存放模块内的多媒体、字符串及结构文件等资源            module.json5模块的配置文件     ohosTest单元测试目次build-profile.json5模块级配置信息,包括编译构建配置项hvigorfile.ts模块级构建脚本oh-package.json5是模块级依靠配置信息文件 # entry > module.json5

module.json5 是模块的配置文件,包含当前模块的配置信息,你可以把它理解为类似应用级别的 build.gradle。
{
// module对应的是模块的配置信息,一个模块对应一个打包后的 hap 包 ( HarmonyOS Ability Package ),
// 其中包含了 ability、第三方库、资源和配置文件。
"module": {
    "name": "entry",
    "type": "entry",
    "description": "$string:module_desc",
    "mainElement": "EntryAbility",
    "deviceTypes": [
      "phone",
      "tablet"
    ],
    "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.json5 的默认配置属性:
属性描述name该标签标识当前 module 的名字,module 打包成 hap 后,体现 hap 的名称,标签值采用字符串体现(最大长度31个字节),该名称在整个应用要唯一type体现模块的类型,类型有三种,分别是entry、feature和harsrcEntry当前模块的入口文件路径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    name该标签标识当前 ability 的逻辑名,该名称在整个应用要唯一,标签值采用字符串体现(最大长度127个字节)    srcEntryability的入口代码路径    descriptionability的描述信息    icon该标签标识 ability 图标,标签值为资源文件的索引。该标签可缺省,缺省值为空。如果ability被配置为MainElement,该标签必须配置    labelability的标署名    startWindowIcon启动页面的图标    startWindowBackground启动页面的背景致    exportedability 是否可以被其他应用程序调用
     - true:体现可以被别的应用调用
     - false:体现不可以被别的应用调用    skills标识能够接收的意图的 action 值的聚集,取值通常为系统预定义的 action 值,也允许自定义        entities标识能够接收的Want的Action值的聚集,取值通常为系统预定义的action值,也允许自定义        actions标识能够接收Want的Entity值的聚集 # entry > main_pages.json

src/main/resources/base/profile/main_pages.json 文件生存的是页面 page 的路径配置信息,所有必要进行路由跳转的 page 页面都要在这里进行配置。
{
"src": [
    "pages/Index",
    "pages/Second"
]
}

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 写给初学者的 HarmonyOS 教程 -- 熟悉 DevEco Studio