如何在DAYU800上创建第一个OpenHarmony应用

如何在DAYU800上创建第一个OpenHarmony应用

第一步获取开发板

为了以赛促学,更好的学习OpenHarmony,大家可以在这儿报名参赛https://competition.atomgit.com/competitionInfo?id=107cf210e30c11ed8beef50cefdf1cc2

然后下载申请书https://atomgit.com/lianzhian/RISC-V_OpenHarmony/tree/master/填写申请书。

具体的报名流程请查看

https://ost.51cto.com/posts/27586

项目通过审核后,会有赛事小助手邮寄开发板(17752170152)。

第二步组装

关于DAYU800的组装,请查看

DAYU800装机指导

https://ost.51cto.com/resource/3067

如果大家有支架的话,推荐大家将支架也同样的进行安装

DAYU800支架安装

https://ost.51cto.com/resource/3068

DAYU800资料

https://gitee.com/hihope_iot/DAYU800

第三步开发

这个时候开发板组装完成,也通上电了。就可以进行开发了。

只需要这一根线和开发板连接就好。

image-20231122091912269

3.1下载配套的IDE

这里我给我我使用的IDE下载地址:

HUAWEI DevEco Studio4.0Release下载链接

Windows(64-bit)

Mac(X86)

Mac(ARM)

以及官方的下载地址:https://developer.harmonyos.com/cn/develop/deveco-studio/#download

3.2创建工程

image-20231122083913511

image-20231122083931570

image-20231122084507134

点击Finish完成之后,等依赖加载完毕。

3.3编译安装到DAYU800

真机连接之后,IDE上就可以发现设备。

image-20231122084617619

签名

image-20231122084638300

自动签名就好

image-20231122084703829

然后我们点击运行

image-20231122092449022

就可以在真机上看到效果啦。

然后大家就可以正常的去在开发板上创作啦。

屏幕分辨率

import common from '@ohos.app.ability.common';

@Entry
@Component
struct Index {
    
    
  @State message: string = 'Hello World';

  build() {
    
    
    Row() {
    
    
      Column() {
    
    
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold).onClick(() => {
    
    
          let context = getContext(this) as common.UIAbilityContext;
          let screenDensity = context.config.screenDensity;

          this.message = JSON.stringify(screenDensity)
        })
      }
      .width('100%')
    }
    .height('100%')
  }
}

运行效果

image-20231122085329088

获取屏幕属性

这一篇文章主要是为了获取到屏幕属性之后,方便没有预览器的同学使用

完整源码

import common from '@ohos.app.ability.common';
import display from '@ohos.display';

@Entry
@Component
struct Index {
    
    
  @State message: string = 'Hello World';
  @State display: string = '屏幕属性';

  build() {
    
    
    Row() {
    
    
      Column() {
    
    

        Text(this.display).fontSize(36)
          .fontWeight(FontWeight.Bold)
          .onClick(() => {
    
    
            let displayClass = null;
            let promise = display.getAllDisplays();
            promise.then((data) => {
    
    
              displayClass = data;
              console.info('Succeeded in obtaining all the display objects. Data: ' + JSON.stringify(data));
              this.display = JSON.stringify(data)
            }).catch((err) => {
    
    
              console.error('Failed to obtain all the display objects. Code: ' + JSON.stringify(err));
            });
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

返回的参数说明

名称 类型 可读 可写 说明
id number 显示设备的id号,该参数应为整数。
name string 显示设备的名称。
alive boolean 显示设备是否启用。
state DisplayState 显示设备的状态。
refreshRate number 显示设备的刷新率,该参数应为整数。
rotation number 显示设备的屏幕旋转角度。 值为0时,表示显示设备屏幕旋转为0°; 值为1时,表示显示设备屏幕旋转为90°; 值为2时,表示显示设备屏幕旋转为180°; 值为3时,表示显示设备屏幕旋转为270°。
width number 显示设备的宽度,单位为像素,该参数应为整数。
height number 显示设备的高度,单位为像素,该参数应为整数。
densityDPI number 显示设备的屏幕密度,表示每英寸点数。该参数为浮点数,一般取值160.0、480.0等。
orientation Orientation 表示屏幕当前显示的方向。
densityPixels number 显示设备的逻辑密度,是像素单位无关的缩放系数。该参数为浮点数,一般取值1.0、3.0等。
scaledDensity number 显示设备的显示字体的缩放因子。该参数为浮点数,通常与densityPixels相同。
xDPI number x方向中每英寸屏幕的确切物理像素值,该参数为浮点数。
yDPI number y方向中每英寸屏幕的确切物理像素值,该参数为浮点数。

返回的数据

[{
    
    
	"id": 0,
	"width": 800,
	"height": 1280,
	"refreshRate": 66,
	"name": "display_0",
	"alive": true,
	"state": 0,
	"rotation": 0,
	"densityDPI": 240,
	"densityPixels": 1.5,
	"scaledDensity": 1.5,
	"xDPI": 0,
	"yDPI": 0
}]

运行后在屏幕上的展示

image-20231122090940728

参考

https://docs.openharmony.cn/pages/v4.0/zh-cn/application-dev/reference/apis/js-apis-display.md/

如何使用预览器

针对目前还没有拿到开发板的同学,我们可以使用预览器先进行开发,等开发板,拿到手之后,我们就可以冲刺啦。

接下来我们来看一下如何设置,

第一步打开预览器

点击右侧previewer

image-20231122093115632

第二步,点击New Profile

image-20231122091322181

然后填写相关参数,如图所示。

这些数据是如何获得的呢?

image-20231122091436630

image-20231122091527355

创建完成之后,我们就可以在列表里看到了,

image-20231122094221798

然后可以先用预览器调试。

猜你喜欢

转载自blog.csdn.net/qq_39132095/article/details/134547830