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配置信息,暂时忽略 
    ]
  }
}

五、启动流程 

  1. 解析json文件
  2. 初始化
  3. 入口Ability的全类名
  4. 找到Ability并运行
  5. 运行Ability中子界面
  6. 加载xml文件,展示内容

初始包化名

初始化区域

完成后,查找入口界面

对应的是下方对应的MAInAbility

随后加载主页面的子页面

随后加载layout_ability_main

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

可以试着修改

至此,helloworld完成。

经验分享 程序员 微信小程序 职场和发展