DevEco studio的使用(笔记)
一、项目构成
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完成。