热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

鸿蒙OS应用开发之——项目介绍

一概述项目工程结构java项目目录结构JS项目目录结构二项目工程结构2.1逻辑结构HarmonyOS应用发布形态为APPPack(ApplicationPackage

一 概述


  • 项目工程结构
  • java项目目录结构
  • JS项目目录结构

二 项目工程结构


2.1 逻辑结构

HarmonyOS应用发布形态为APP Pack(Application Package,简称APP),它是由一个或多个HAP(HarmonyOS Ability Package)包以及描述APP Pack属性的pack.info文件组成

2.2 工程目录构成

一个HAP在工程目录中对应于一个Module,它是由代码、资源、第三方库及应用清单文件组成,可以分为Entry和Feature两种类型

  • Entry:应用的主模块。一个APP中,对于同一设备类型必须有且只有一个entry类型的HAP,可独立安装运行
  • Feature:应用的动态特性模块。一个APP可以包含一个或多个feature类型的HAP,也可以不包含

2.3 部署包


  • HAP是Ability的部署包,HarmonyOS应用代码围绕Ability组件展开,它是由一个或多个Ability组成。
  • Ability分为两种类型:FA(Feature Ability,中文名称:元程序)和PA(Particle Ability,中文名称:元服务)
  • FA/PA是应用程序的基本组成单元,能够实现特定的业务功能。FA有UI界面,而PA无UI界面

三 java项目目录结构


3.1 java项目目录结构

3.2 项目说明


  • .gradle:Gradle配置文件,由系统自动生成,一般情况下不需要进行修改

  • entry:默认启动模块(主模块),开发者用于编写源码文件以及开发资源文件的目录

    • entry>libs:用于存放entry模块的依赖文件

    • entry>src>main>Java:用于存放Java源码

    • entry>src>main>resources:用于存放应用所用到的资源文件,如图形、多媒体、字符串、布局文件等

      资源目录资源文件说明
      base>element包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:
      boolean.json:布尔型
      color.json:颜色
      float.json:浮点型
      integer.json:整形
      pattern.json:样式
      plural.json:复数形式
      strarray.json:字符串数组
      string.json:字符串值
      base>graphicxml类型的可绘制资源,如SVG(Scalable Vector Graphics)可缩放矢量图形文件、基本的几何图形(如矩形、圆形、线等)shape资源等
      base>layoutxml格式的界面布局文件。
      base>media多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png.gif.mp3.mp4等。
      base>profile用于存储任意格式的原始资源文件。区别在于rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用
      rawfile用于存储任意格式的原始资源文件。区别在于rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用
    • **entry>src>main>config.json:**HAP清单文件

    • entry>src>test:编写代码单元测试代码的目录,运行在本地Java虚拟机(JVM)上

    • entry>.gitignore:标识git版本管理需要忽略的文件

    • entry>build.gradle:entry模块的编译配置文件


四 JS项目目录结构


4.1 JS项目目录结构

4.2 项目说明


  • common目录:可选,用于存放公共资源文件,如媒体资源、自定义组件和JS文档等
  • **i18n目录:**可选,用于存放多语言的json文件,可以在该目录下定义应用在不同语言系统下显示的内容,如应用文本词条、图片路径等
  • **pages目录:**pages文件夹下可以包含1个或多个页面,每个页面都需要创建一个文件夹(如图中的index)。页面文件夹下主要包含3种文件类型:css、js和hml文件
    • **pages>index>index.hml文件:**hml文件定义了页面的布局结构,使用到的组件,以及这些组件的层级关系
    • **pages>index>index.css文件:**css文件定义了页面的样式与布局,包含样式选择器和各种样式属性等
    • **pages>index>index.js文件:**js文件描述了页面的行为逻辑,此文件里定义了页面里所用到的所有的逻辑关系,比如数据、事件等
  • **resources:**可选,用于存放资源配置文件,比如:全局样式、多分辨率加载等配置文件
  • **app.js文件:**全局的Javascript逻辑文件和应用的生命周期管理

推荐阅读
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文整理了Java面试中常见的问题及相关概念的解析,包括HashMap中为什么重写equals还要重写hashcode、map的分类和常见情况、final关键字的用法、Synchronized和lock的区别、volatile的介绍、Syncronized锁的作用、构造函数和构造函数重载的概念、方法覆盖和方法重载的区别、反射获取和设置对象私有字段的值的方法、通过反射创建对象的方式以及内部类的详解。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 在Android中解析Gson解析json数据是很方便快捷的,可以直接将json数据解析成java对象或者集合。使用Gson解析json成对象时,默认将json里对应字段的值解析到java对象里对应字段的属性里面。然而,当我们自己定义的java对象里的属性名与json里的字段名不一样时,我们可以使用@SerializedName注解来将对象里的属性跟json里字段对应值匹配起来。本文介绍了使用@SerializedName注解解析json数据的方法,并给出了具体的使用示例。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • 本文介绍了如何使用JSONObiect和Gson相关方法实现json数据与kotlin对象的相互转换。首先解释了JSON的概念和数据格式,然后详细介绍了相关API,包括JSONObject和Gson的使用方法。接着讲解了如何将json格式的字符串转换为kotlin对象或List,以及如何将kotlin对象转换为json字符串。最后提到了使用Map封装json对象的特殊情况。文章还对JSON和XML进行了比较,指出了JSON的优势和缺点。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
author-avatar
手机用户2502877255
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有