DevEco studio的使用(笔记)
一、项目构成test1:项目名称external libraries:集成的jar包,其中包含:华为提供鸿蒙相关APIJava相关jdkGradle是自动生成项目的工具,这里也有与gradle相关jar包打开项目.gradle:即为项目管理工具gradle的信息.idea:开发工具信息(studio)entry:应用主模块,一个应用,有且只有一个主模块其余就为项目管理工具的配置信息点开entry.
一、项目构成

test1:项目名称
external libraries:集成的jar包,其中包含:
华为提供鸿蒙相关API
Java相关jdk
Gradle是自动生成项目的工具,这里也有与gradle相关jar包
打开项目

.gradle:即为项目管理工具gradle的信息
.idea:开发工具信息(studio)
entry:应用主模块,一个应用,有且只有一个主模块
其余就为项目管理工具的配置信息
点开entry

libs:为我们手动导入的第三方jar包
src:存放我们所有代码
展开src:

main:我们存放代码的文件夹
ohosTest:利用华为提供的工具来编写的测试类
当然Java开发和Js开发是不同的。会多出test文件夹,里面用了junit来编写的测试工具

打开main

config.json:是APP的信息
resource:存放项目资源
二、项目的运行
需要实名认证

选择一个设备后即可

待有模拟机后,再次点击运行 按钮即可



三、页面的包含

一个页面分为Ability和多个AbilitySlice
一般一个Ability页面(能力)对应一个功能,其使用中需要切换就用AbilitySlice实现。
在输出为安装包时,多个Ability会被打包为一个HAP包,所有的HAP被打包为一个APP。
使得你使用APP时,并不需要下载所有HAP包,用什么下什么。
Ability的分类
鸿蒙的ability分为:PA和FA。
FA(Feature Ability)
有页面,与用户进行交互
- 提供页面的模板Page Ability
PA(Particle Ability)
耗时、不需要与用户交互的后台
- 提供后台服务的模板Service Ability
- 提供访问数据的模板Data Ability
四、config.json配置
包含了如下信息:

app(项目信息):厂商信息、版本号等
deviceConfig(应用程序设备上的配置信息):运行时的进程名称,是否允许使用流量,是否未解锁启动时等权限
module(代码中的配置):所有的Ability配置等
此处以JAVA开发模式为例:
(json一般不允许添加注释,这里只是觉得方便)
{
"app": {
"bundleName": "com.example.myapplication",//包名
"vendor": "example",//厂商描述
"version": {//版本号
"code": 1000000,//公司内部可见
"name": "1.0.0"//用户可见版本号
}
"module": {
"package": "com.example.myapplication",//包名
"name": ".MyApplication",//hap包的类名
"mainAbility": "com.example.myapplication.MainAbility",//hap包的入口ability名称
"deviceType": [//可以运行在哪些设备上
"phone",
"tablet",
"tv",
"wearable",
"car"
],
"distro": {//当前hap包的描述信息
"deliveryWithInstall": true,//是否可以随应用安装
"moduleName": "entry",//当前hap包的名称
"moduleType": "entry",
//当前hap包的类型
//entry:主要模块,可单独安装并运行
//feature:非主要模块,不可以单独运行
"installationFree": true
//是否时可选安装项
//feature的话该标签是必选项
},
"abilities": [//在当前模块的所有ability配置信息,暂时忽略
]
}
}
五、启动流程
- 解析json文件
- 初始化
- 入口Ability的全类名
- 找到Ability并运行
- 运行Ability中子界面
- 加载xml文件,展示内容
初始包化名

初始化区域

完成后,查找入口界面
![]()
对应的是下方对应的MAInAbility

随后加载主页面的子页面
![]()
随后加载layout_ability_main

随后发现是个文本xml,用来展示下列值

可以试着修改
![]()

至此,helloworld完成。
更多推荐



所有评论(0)