鸿蒙APP开发入门到进阶 | 聊聊鸿蒙项目结构和使用方法
大家好,我是 码工,一个有十年工作经验的码农,一心追求技术。
来啦来啦,最近经常有小伙伴问我有关鸿蒙的项目目录结构,让我讲一下鸿蒙开发的目录结构。
今天终于有时间了,给大家详细讲解一下。
主要从两方面讲,Java项目结构和Js项目结构。
为啥要说两个的呢?这就体现了鸿蒙开发的好处,鸿蒙开发太方便了,既可以使用Java开发,还可以使用Js开发。
根据个人的喜好或者擅长来选择,进行开发。
话不错说,开干。
1,Java 项目目录结构
Java工程目录结构如下图所示。
gradle:Gradle配置文件,由系统自动生成,一般情况下不需要进行修改。
entry:默认启动模块(主模块),开发者用于编写源码文件以及开发资源文件的目录。
element 目录下文件:
1,boolean.json:布尔型
2,color.json:颜色
3,float.json:浮点型
4,intarray.json:整型数组
5,integer.json:整型
6,pattern.json:样式
7,plural.json:复数形式
8,strarray.json:字符串数组
9,string.json:字符串值。
entry>libs:用于存放entry模块的依赖文件-jar包。
entry>src>main>Java:用于存放Java源码。
entry>src>main>resources:用于存放应用所用到的资源文件,如图形、多媒体、字符串、布局文件等。
资源目录 |
资源文件说明 |
---|---|
base>element |
包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:
|
base>graphic |
xml类型的可绘制资源,如SVG(Scalable Vector Graphics)可缩放矢量图形文件、Shape基本的几何图形(如矩形、圆形、线等)等。 |
base>layout |
xml格式的界面布局文件。 |
base>media |
多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 |
base>profile |
用于存储任意格式的原始资源文件。区别在于rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
rawfile |
entry>src>main>config.json:HAP清单文件。
en/zh element 支持的与语言,目前有中文和英文。
entry>src>test:编写代码单元测试代码的目录,运行在本地Java虚拟机(JVM)上。
entry>.gitignore:标识git版本管理需要忽略的文件。
entry>build.gradle:entry模块的编译配置文件。
2,js项目目录结构
JS工程目录结构如下图所示。
- 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逻辑文件和应用的生命周期管理。
JS服务卡片(entry/src/main/js/module)的典型开发目录结构如下:
图1 目录结构
目录结构中文件分类如下:
- .hml结尾的HML模板文件,这个文件用来开发页面的模板布局结构。
- .css结尾的CSS样式文件,这个文件用于开发页面样式。
- .json结尾的JSON文件,这个文件用于开发使用的变量和action事件。
说明
i18n和resources是开发保留文件夹,不可重命名。
3,应用资源访问规则
应用资源可通过绝对路径或相对路径的方式进行访问,本开发框架中绝对路径以"/"开头,相对路径以"./"或"../"。具体访问规则如下:
- 引用代码文件,需使用相对路径,比如:../common/style.css。
- 引用资源文件,推荐使用绝对路径。比如:/common/xxx.png。
- 公共代码文件和资源文件推荐放在common下,通过规则1和规则2进行访问。
- CSS样式文件中通过url()函数创建<url>数据类型,如:url(/common/xxx.png)。
这篇的目录结构非常重要,在开发中需要根据目录去添加和设置文件,清楚这些目录是必备技能。
原创不易,有用就关注一下。要是帮到了你 就给个三连吧,多谢支持。
觉得不错的小伙伴,记得帮我 点个赞和关注哟,笔芯笔芯~**
作者:码工
有问题请留言或者私信,可以 微信搜索:程序员漫话编程,关注公众号获得更多免费学习资料。
鸿蒙APP开发入门到进阶 | 聊聊鸿蒙项目结构和使用方法相关推荐
- 鸿蒙APP开发入门到进阶 | 入门完整篇。
大家好,我是 码工,一个有十年工作经验的码农,一心追求技术. 先说说我的开发经历,10年毕业,到目前已经十多年开发经验,大学学习了多种语言,Java,Android,c,c++,到毕业时真正掌握了几乎 ...
- 鸿蒙App开发(1)---初识鸿蒙开发
[摘要] 鸿蒙App开发 搭建鸿蒙开发环境首先,我们需要安装Java JDK,博主后续的讲解大部分都是用Java语言开发鸿蒙App,所以系统中必须有Java JDK,安装地址:https://www. ...
- 【鸿蒙OS开发入门】18 - HDF驱动子系统:加速度计传感器 Driver层驱动代码分析
[鸿蒙OS开发入门]18 - HDF驱动子系统:加速度计传感器 Driver层代码分析 一.如何添加速度计传感器驱动代码(代码.编译.配置) 1.驱动代码实现 2.驱动编译配置 2.1 linux 编 ...
- 【鸿蒙OS开发入门】13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解
[鸿蒙OS开发入门]13 - 启动流程代码分析之第一个用户态进程:init 进程 之 init 任务详解 一. /etc/init.cfg 系统默认cfg:启动lo回环网卡 1.1 init.Hi35 ...
- 【鸿蒙OS开发入门】06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 启动init进程
[鸿蒙OS开发入门]06 - 启动流程代码分析之KernelOS:之启动Linux-4.19 Kernel内核 一.head.S 启动start_kernel() 1.1 start_kernel() ...
- 【鸿蒙OS开发入门】16 - 重头搭建Ubuntu新环境编译OpenHarmony 3.0 LTS
[鸿蒙OS开发入门]16 - 重头搭建Ubuntu新环境编译OpenHarmony 3.0 LTSv 一.配置Telnet 和 samba 二.下载code-v3.0-LTS.tar.gz源码 三.配 ...
- (转载)H5 手机 App 开发入门:概念篇
H5 手机 App 开发入门:概念篇 一.H5 的含义 二.原生应用 2.1 概念 2.2 优点 2.3 缺点 三.Web 应用 3.1 概念 3.2 优点和缺点 3.3 Web APP 的劣势 3. ...
- 5G 时代的 Android App 开发入门与项目实战
随着移动互联网的持续发展,Android系统从智能手机逐步拓展到平板电脑.智能电视.车载大屏.智能家居.智能手表等诸多设备,Android开发依然是前景可期的IT岗位. 当然,整个社会正在迈向5G时代 ...
- 《Android App开发入门与项目实战》出版后记
<Android Studio开发实战:从零基础到App上线>自面世以来,承蒙众多朋友的抬爱,该书一直保持不错的销量,其中第一版的出货量突破一万,第二版的出货量即将突破两万.对于一个程序员 ...
最新文章
- DNS重绑定DNS Rebinding攻击
- 【bzoj4318】OSU! 期望dp
- java 设计模式_快速上手Java设计模式之简介
- 工作201:所需功能优化
- ubuntu 破解mysql密码_Ubuntu下忘记MySQL root密码解决方法
- phpcms 怎样实现PC端、手机端的双模版
- 优秀的gdb图形化前端调试器
- 跨平台的网络通信中间件:ICE和ACE
- linux查看双机热备运行,linux双机热备,故障切换!!!
- 【Python读文件】'gbk' codec can't decode byte 0xb1 in position 5: illegal multibyte sequence
- linux创建文件夹操作步骤,linux如何用命令创建新建文件夹
- 驱动精灵卸载后无限蓝屏重启
- nar神经网络_基于神经网络的预测模型
- excel简繁切换_excel简繁转换_EXCEL中的“中文简繁转换”按钮不见了!
- VUE:element ui组件应用之个人中心页面
- Linux下PCB的task_struck结构体
- 选字验证码破解思路:CTPN - 自然场景文本检测
- 在后台删除新闻时,需要删除服务器上的文件夹
- 拿什么拯救你 我的“游戏寡妇”、“游戏孤儿”们
- 仅需3分钟,你就能明白Kafka的工作原理