鸿蒙HarmonyOS应用开发之eTS和C++工程目录结构以及资源文件详解 原创

发布于 2022-2-3 10:07
浏览
0收藏

春节不停更,此文正在参加「星光计划-春节更帖活动

作者:坚果的小跟班

eTS工程目录结构

FA应用的eTS工程目录结构如下图所示。

鸿蒙HarmonyOS应用开发之eTS和C++工程目录结构以及资源文件详解-开源基础软件社区

  • ets > default > pages > index.ets文件:.ets结尾的ETS(Extended TypeScript)文件,这个文件用于描述UI布局、样式、事件交互和页面逻辑。
  • ets > default > app.ets:用于全局应用/服务逻辑和应用/服务生命周期管理。
  • Java目录:作为HarmonyOS应用或原子化服务的启动入口。
  • resources目录:用于存放资源配置文件,比如:国际化字符串、资源限定相关资源和rawfile资源等。
  • app.ets文件用于全局应用逻辑和应用生命周期管理。
  • pages目录用于存放所有组件页面。
  • common目录用于存放公共代码文件,比如:自定义组件和公共方法。

C++工程目录结构

C++工程目录结构如下图所示。

鸿蒙HarmonyOS应用开发之eTS和C++工程目录结构以及资源文件详解-开源基础软件社区

  • entry>src>main>cpp:用于存放C++源码。
  • entry>src>main>Java:用于存放Java源码。
  • entry>src>main>resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件的详细说明请参考

鸿蒙HarmonyOS应用开发之eTS和C++工程目录结构以及资源文件详解-开源基础软件社区

工程模板和开发语言介绍

DevEco Studio支持包括手机、平板、车机、智慧屏、智能穿戴、轻量级智能穿戴和智慧视觉设备的HarmonyOS应用/服务开发,预置了丰富的工程模板,可以根据工程向导轻松创建适应于各类设备的工程,并自动生成对应的代码和资源模板。同时,DevEco Studio还提供了多种编程语言供开发者进行HarmonyOS应用/服务开发,包括Java、JS、eTS和C/C++编程语言

此图是3.0版本才有,2.0和这个有点出入。

鸿蒙HarmonyOS应用开发之eTS和C++工程目录结构以及资源文件详解-开源基础软件社区

今天介绍是两种工程的目录结构。

鸿蒙HarmonyOS应用开发之资源文件

resources目录

应用的资源文件(字符串、图片、音频等)统一存放于resources目录下,便于开发者使用和维护。resources目录包括两大类目录,一类为base目录与限定词目录,另一类为rawfile目录,

resources
|---base  // 默认存在的目录
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|---en_GB-vertical-car-mdpi // 限定词目录示例,需要开发者自行创建   
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|---rawfile  // 默认存在的目录

资源组目录说明

base目录与限定词目录下面可以创建资源组目录(包括element、media、animation、layout、graphic、profile),用于存放特定类型的资源文件

鸿蒙HarmonyOS应用开发之eTS和C++工程目录结构以及资源文件详解-开源基础软件社区

资源文件的引用方法

base目录与限定词目录中的资源文件:通过指定资源类型(type)和资源名称(name)来引用。

  • Java文件引用资源文件的格式:ResourceTable.type_name。特别地,如果引用的是系统资源,则采用:

    ohos.global.systemres.ResourceTable.type_name

    示例一:在Java文件中,引用string.json

    文件中类型为“String”、名称为“app_name”的资源。

    ohos.global.resource.ResourceManager resManager = this.getResourceManager();
    String result = resManager.getElement(ResourceTable.String_app_name).getString();
    

    示例二:在Java文件中,引用color.json

    文件中类型为“Color”、名称为“red”的资源。

    ohos.global.resource.ResourceManager resManager = this.getResourceManager();
    String result = resManager.getElement(ResourceTable.String_app_name).getString();
    
  • XML文件引用资源文件的格式:$type*:**name*特别地,如果引用的是系统资源,则采用:

    $ohos:type*:**name*在XML文件中,引用string.json文件中类型为“String”、名称为“app_name”的资源,

    <?xml version="1.0" encoding="utf-8"?>
    <DirectionalLayout xmlns:ohos="http://schemas.huawei.com/res/ohos"
        ohos:width="match_parent"
        ohos:height="match_parent"
        ohos:orientation="vertical">
        <Text ohos:text="$string:app_name"/>
    </DirectionalLayout>
    

rawfile目录中的资源文件:通过指定文件路径和文件名称来引用。

在Java文件中,引用一个路径为“resources/rawfile/”、名称为“example.js”的资源文件,示例如下:

ohos.global.resource.ResourceManager resManager = this.getResourceManager();
ohos.global.resource.RawFileEntry rawFileEntry = resManager.getRawFileEntry("resources/rawfile/example.js"); 

系统资源文件

目前支持的部分系统资源文件

鸿蒙HarmonyOS应用开发之eTS和C++工程目录结构以及资源文件详解-开源基础软件社区

希望这些对你的鸿蒙开发之路有帮助。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-2-3 20:01:00修改
1
收藏
回复
举报
回复
添加资源
添加资源将有机会获得更多曝光,你也可以直接关联已上传资源 去关联
    相关推荐