01创建第一个鸿蒙APP

1、安装开发工具

第一步:准备好,开发工具下载地址:

https://developer.huawei.com/consumer/cn/gray/deveco-studio#download

在下载地址中,需要下载两个工具:

IDE:DevEco Studio 3.1.1 Release,用于鸿蒙应用及服务开发;
命令行工具 :Command Line Tools for HarmonyOS ,用于该集合了HarmonyOS应用开发所用到的系列工具,包括SDK管理sdkmgr、代码检查codelinter、三方库的包管理ohpm。

第二步:安装DevEco Studio 和命令行工具:

安装DevEco Studio

先解压安装包800多MB,如下图所示:

在这里插入图片描述

点击exe文件直接运行,如下图所示:

在这里插入图片描述

开始引导安装,如下图所示:

在这里插入图片描述
可全部勾上,如下图所示:
在这里插入图片描述
启动IDE,还需要根据引导进行一些配置库安装,如下图所示:
在这里插入图片描述
在这里插入图片描述
同意之后开始安装,如下图所示:在这里插入图片描述

看起来有些文件安装失败了,先点击Finish按钮:
在这里插入图片描述
跳转到了这个界面,还可以点击Set it up now补救,安装失败的文件,如下图所示:
在这里插入图片描述
上面的问题再次安装失败,最后查了一下,还是因为权限的原因,解决方案如下:
在这里插入图片描述

到此,DevEco Studio安装完成。
在这里插入图片描述

接下来安装命令行工具

先解压命令行工具压缩包,如下图所示
在这里插入图片描述
bin目路是三个bat命令可执行文件,如下图所示:
在这里插入图片描述
直接把文件拖到cmd命令行工具中即可使用,如下图所示:
在这里插入图片描述
命令行工具无需安装,解压即可使用,实际用到的时候再说。

2、创建工程项目

第一步:先创建一个工程项目,如下图所示:

在这里插入图片描述

第二步:点击Next按钮,配置一下工程项目属性,如下图所示:

在这里插入图片描述

第三步:点击Finish按钮之后,进入到项目开发界面,如下图所示:

在这里插入图片描述

第四步:右下角发现了一处错误,还需要安装SDK,如下图所示:

在这里插入图片描述

第五步:初次运行APP,可安装IDE自带的模拟器设备,如下图所示:

在这里插入图片描述

第六步:选择手机,进行模拟器的下载安装,大概2GB大小,如下图所示:

在这里插入图片描述

第七步:模拟器已经安装完成,启动鸿蒙系统中,如下图所示:

在这里插入图片描述

3、编写代码

项目结构,如下图所示:

在这里插入图片描述

第一步:在pages目录下,创建一个Test.ets文件:

@Entry
@Component
struct Test {
  @State btnText: string = '鸿蒙,你好!'

  build() {
    Row() {
      Column() {
        Button() {
          Text(this.btnText)
            .fontSize(32)
            .fontColor(Color.White)
            .padding(16)
        }.backgroundColor(Color.Orange)
      }
      .width('100%')
    }
    .height('100%')
  }
}

第二步:修改一下/entryability目录下的EntryAbility.ts这个文件:

import UIAbility from '@ohos.app.ability.UIAbility';
import hilog from '@ohos.hilog';
import window from '@ohos.window';

export default class EntryAbility extends UIAbility {
  onCreate(want, launchParam) {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  }

  onDestroy() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
  }

  onWindowStageCreate(windowStage: window.WindowStage) {
    // Main window is created, set main page for this ability
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');

	//TODO 最关的就在此处,修改成你的界面对应的ets文件名
    windowStage.loadContent('pages/Test', (err, data) => {
      if (err.code) {
        hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
        return;
      }
      hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? '');
    });
  }

  onWindowStageDestroy() {
    // Main window is destroyed, release UI related resources
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
  }

  onForeground() {
    // Ability has brought to foreground
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
  }

  onBackground() {
    // Ability has back to background
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
  }
}

第三步:修改profile中的main_pages.json文件

{
  "src": [
    "pages/Test"
  ]
}

4、调试运行与打包

APP打包分为两种模式,Debug和Release模式。

4.1、运行Debug程序

点击标记处即可运行Debug调试等操作,如下图所示:

在这里插入图片描述

4.2、打包应用程序

第一步:点击Build,构建Hap(s),如下图所示:

在这里插入图片描述
注意鸿蒙的APP文件的后缀是.hap,而AndroidAPP文件的后缀名是.apk。

我们可以看到,已经创建了对应的Debug版本的打包文件,如下图所示:
在这里插入图片描述
为了直接将这个hap安装到鸿蒙系统的模拟器(设备)上,因为不能直接拖进去安装,可通过hdc命令进行安装(类似Android的Adb命令),所以还需要为HDC命令配置的对应的环境变量,以便能直接在Cmd命令行工具中使用hdc命令。

第二步:配置环境变量:

在这里插入图片描述
新建一个系统变量Hdc,注意变量值要设置正确,如下图所示:

在这里插入图片描述

然后把系统变量添加到path中,然后重启DevEco Studio,如下图所示:
在这里插入图片描述

第三步:运行hdc命令进行hap文件的直接安装

在cmd命令窗口显示如下,表示hdc命令安装成功,如下图所示:
在这里插入图片描述
使用hdc命令,查询连接设备列表,如下图所示:
在这里插入图片描述
执行如下指令,直接安装未签名的Hap程序到模拟器,如下图所示:
在这里插入图片描述
在这里插入图片描述
温馨提示:CSR打包签名的方式需要华为开发者账号登录后进行申请操作,步骤比较繁琐,后续文章补上。






原创不易,求个关注。

在这里插入图片描述

微信公众号:一粒尘埃的漫旅
里面有很多想对大家说的话,就像和朋友聊聊天。
写代码,做设计,聊生活,聊工作,聊职场。
我见到的世界是什么样子的?
搜索关注我吧。

公众号与博客的内容不同。

### RT-DETRv3 网络结构分析 RT-DETRv3 是一种基于 Transformer 的实时端到端目标检测算法,其核心在于通过引入分层密集正监督方法以及一系列创新性的训练策略,解决了传统 DETR 模型收敛慢和解码器训练不足的问题。以下是 RT-DETRv3 的主要网络结构特点: #### 1. **基于 CNN 的辅助分支** 为了增强编码器的特征表示能力,RT-DETRv3 引入了一个基于卷积神经网络 (CNN) 的辅助分支[^3]。这一分支提供了密集的监督信号,能够与原始解码器协同工作,从而提升整体性能。 ```python class AuxiliaryBranch(nn.Module): def __init__(self, in_channels, out_channels): super(AuxiliaryBranch, self).__init__() self.conv = nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1) self.bn = nn.BatchNorm2d(out_channels) def forward(self, x): return F.relu(self.bn(self.conv(x))) ``` 此部分的设计灵感来源于传统的 CNN 架构,例如 YOLO 系列中的 CSPNet 和 PAN 结构[^2],这些技术被用来优化特征提取效率并减少计算开销。 --- #### 2. **自注意力扰动学习策略** 为解决解码器训练不足的问题,RT-DETRv3 提出了一种名为 *self-att 扰动* 的新学习策略。这种策略通过对多个查询组中阳性样本的标签分配进行多样化处理,有效增加了阳例的数量,进而提高了模型的学习能力和泛化性能。 具体实现方式是在训练过程中动态调整注意力权重分布,确保更多的高质量查询可以与真实标注 (Ground Truth) 进行匹配。 --- #### 3. **共享权重解编码器分支** 除了上述改进外,RT-DETRv3 还引入了一个共享权重的解编码器分支,专门用于提供密集的正向监督信号。这一设计不仅简化了模型架构,还显著降低了参数量和推理时间,使其更适合实时应用需求。 ```python class SharedDecoderEncoder(nn.Module): def __init__(self, d_model, nhead, num_layers): super(SharedDecoderEncoder, self).__init__() decoder_layer = nn.TransformerDecoderLayer(d_model=d_model, nhead=nhead) self.decoder = nn.TransformerDecoder(decoder_layer, num_layers=num_layers) def forward(self, tgt, memory): return self.decoder(tgt=tgt, memory=memory) ``` 通过这种方式,RT-DETRv3 实现了高效的目标检测流程,在保持高精度的同时大幅缩短了推理延迟。 --- #### 4. **与其他模型的关系** 值得一提的是,RT-DETRv3 并未完全抛弃经典的 CNN 技术,而是将其与 Transformer 结合起来形成混合架构[^4]。例如,它采用了 YOLO 系列中的 RepNCSP 模块替代冗余的多尺度自注意力层,从而减少了不必要的计算负担。 此外,RT-DETRv3 还借鉴了 DETR 的一对一匹配策略,并在此基础上进行了优化,进一步提升了小目标检测的能力。 --- ### 总结 综上所述,RT-DETRv3 的网络结构主要包括以下几个关键组件:基于 CNN 的辅助分支、自注意力扰动学习策略、共享权重解编码器分支以及混合编码器设计。这些技术创新共同推动了实时目标检测领域的发展,使其在复杂场景下的表现更加出色。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值