DevEco Device Tool 为设备开发者提供一站式的开发环境和资源获取通道,实现了从芯片模板工程创建、到开发资源挑选定制,再到快速编码、轻小型系统调试调优、烧录环节的全流程覆盖,帮助开发者实现 OpenAtom OpenHarmony(以下简称“OpenHarmony”)智能硬件设备的高效开发。自2020 年 9 月发布了第一个版本 V1.0.0,到 2022 年 3 月底发布了 V3.0 Release 版本,历经 10 次迭代升级,DevEco Device Tool 为开发者主要提供了以下八大特性。

一、一体化安装导航

设备开发过程中依赖的软件比较多,而且不同的软件还存在多种版本,这在一定程度上加大了搭建开发环境的难度,导致部分开发者由于环境安装遇到的问题被劝退。

DevEco Device Tool 为开发者提供一体化安装导航功能,自动对依赖的软件进行检测,并针对缺失的软件提供推荐的软件版本。开发者只根据提示进行勾选,即可自动下载和安装软件,提高用户的安装体验和便利性。

比如,图 1 表示安装器检测到 Python 环境缺失,开发者可通过勾选完成 Python 的自动下载安装。

图1 安装提示

二、支持多种类型的开发板和芯片

DevEco Device Tool 目前支持基于华为海思芯片的 Hi3516DV300、Hi3518EV300、Hi3861V100、BearPi-HM Nano 开发板,以及基于三方厂商芯片的 Imx6ull、Rtl8720、Xr872、Neptune 等,总计 24 款开发板。未来,DevEco Device Tool 还将增加对更多开发板的全面支持。

如图 2 所示,在 DevEco Device Tool 工具界面,选择“QUICK ACCESS > 主界面 > 开发板”,即可查看 DevEco Device Tool 目前支持的所有开发板和芯片。

图2 当前支持的开发板

三、集成设备开发样例

为帮助提升开发效率,DevEco Device Tool 集成了 OpenHarmony 社区的设备开发样例,让开发者无需从零开始敲代码,可快速上手。开发者在创建工程时根据需要选择开发样例,即可一键快速拉取源码。

具体使用方法:

1. 在 DevEco Device Tool 工具界面,选择“QUICK ACCESS > DevEco Home > Home”,然后点击 Create Project 进入创建工程的向导界面。

2. 输入工程名称,在 Bundle 下拉栏中选择需要的设备开发样例。Device Tool 会根据所选的开发样例自动填写 MCU 和开发板信息。

3. 点击 Finish,DevEco Device Tool 自动拉取开发样例完成工程创建。

图3 选择开发样例

目前已集成了 47 个不同产品的样例,后续会有越来越多的样例逐渐上架,形成标准的资源中心。开发者也可以将自己的样例上传到 OpenHarmony 社区参与样例共建哦!

样例共建链接:https://gitee.com/openharmony-sig/knowledge/blob/master/docs/co-construct_demos/README_zh.md

四、多人共享的远程开发模式

在开发过程中,开发者可能都遇到过开发环境不够用、与同事争抢同一套开发环境的窘迫场景。DevEco Device Tool 提供多人共享开发的功能,支持一个团队共用一台服务器。只需搭建一台公共的 Linux 服务器,团队成员即可从自己的 Windows 机器远程登录 Linux 服务器,进行共享开发。既节省了时间,也降低了成本。

具体使用方法:

点击 VSCode 左侧的 图标,进入远程资源管理器界面,添加远程服务器(即 Linux 服务器)。添加成功后,管理员登录远程服务器通过 sudo 命令进行初始配置后,团队成员即可通过 Remote SSH 登录远程服务器,进行共享开发了。

图4 多人共享开发

五、自动检测和补全编译工具链

在日常开发中,你是否遇到过因工具缺失导致编译失败?然后到处查找工具,找到后又要学习怎么安装,安装后还需要配置工具链,操作繁琐,费时费力。

DevEco Device Tool 贴心地为开发者集成了丰富多样的编译工具链。导入工程时,DevEco Device Tool 自动检测工程所依赖的工具是否完备。如果存在工具缺失,可一键下载和安装所有缺失的工具,且自动完成工具链配置,大幅度减少编译复杂度,提高工作效率。

具体使用方法:

1. 导入工程后,在 DevEco Device Tool 工具界面,选择“QUICK ACCESS > DevEco Home > Projects”,然后点击 “Settings”进入工程配置界面。

2. 在工程配置界面,点击“toolchain”页签下的“Details”,详细查看缺失了哪些工具。

3. 在工程配置界面,点击“toolchain”页签下的“Setup”,一键下载和安装所有缺失的工具。

图5 自动检测和补全编译工具链

六、源码级调试能力

在开发过程中,调试能力尤为重要,一个好用的调试功能能够帮助开发者事半功倍地完成开发任务。

DevEco Device Tool 提供自研调试插件,为开发者提供源码级调试能力。调试界面如下图所示:

图6 调试界面

提供的源码级调试能力包括:

● 支持 Launch 和 Attach 两种方式启动调试。

● 支持的调试操作有:单步调试、方法进入、方法退出、Continue、Restart(复位调试)、Reset device(复位设备)、停止调试。

● 支持设置断点,包括源码断点、数据断点、函数断点和汇编源码断点。

● 支持查看和修改局部变量(Local)、全局变量(Global)、静态变量(Static)和通用寄存器(Registers),还支持将关心的变量添加到“监视”任务栏,随时查看变量值变化。

● 支持在调试过程中同时查看当前执行的源代码和对应的汇编代码,且支持对汇编代码设置断点和单步调试。

● 支持调试过程中查看调用栈。

● 支持根据地址查看内存。

七、性能分析能力

在轻量设备开发过程中,时常会面临 CPU 紧张、内存不足、内存溢出等问题,因此开发者在开发过程中需要时刻关注 CPU 和内存等的使用情况。

为帮助开发者提升性能,DevEco Device Tool 提供以下性能分析能力:

1. Profiling可视化分析

DevEco Device Tool 提供 Profiling 可视化分析功能,通过可视化的界面展示开发板上运行的应用所占系统资源和内存资源的信息,帮助开发者查看和分析开发板上各任务堆内存和栈内存的使用情况。

可查看的可视化数据曲线包括 Heap(堆内存)、Stack(栈内存)、OS Objects(系统资源)和 All in one(实时的内存占用情况)的使用情况。

● Heap:实时统计应用堆内存当前的使用情况和历史峰值情况。

● Stack:统计应用内各任务的内存使用情况,可以通过任务内存的峰值比例(Peak%)查看具体任务的内存使用情况,以便更合理的分配每个任务的内存大小。

图7 Stack(栈内存)

● OS Objects:统计系统资源的使用情况,如定时器(timers)、任务(tasks)、队列(queues)等数量。

图8 OS Objects(系统资源)

● All in one:统计 Heap 和 Stack 的使用情况,实时动态刷新。

图9 All in one

2. 栈分析和镜像分析

DevEco Device Tool 通过集成栈分析工具(Stack Analysis)和镜像分析工具(Image Analysis),用于开发过程中的内存不足、内存溢出等问题进行分析,帮助开发者更加精准的分析、定位问题。

栈分析工具是基于静态二进制分析手段,提供任务栈开销估算值和函数调用关系图示,为栈内存使用、分析、优化、问题定位等开发场景提供较为准确的静态内存分析数据参考。镜像分析工具对工程构建出的elf文件进行内存占用分析,支持开发者快速评估内存段、符号表使用情况。

图10 栈分析和镜像分析

(目前 DevEco Device Tool 只支持只支持 Hi3861V100 开发板的栈分析和镜像分析功能。)

3. Trace分析

DevEco Device Tool 提供 Trace 分析功能,可以实时跟踪应用在开发板上运行时的 CPU 的用率、内存占用、运行的任务或事件。开发者可以在任意时刻开始或停止记录 Trace,并以图形化形式展示事件、内存、CPU、运行轨迹等信息。开发者可以根据采集的跟踪数据查看导致内存或 CPU 异常的事件或进程,从而进行源代码的优化。

图11 Trace分析

(目前DevEco Device Tool只支持Hi3516DV300和Hi3518EV300的Trace分析功能。)

4. Perf分析

DevEco Device Tool 提供 Perf 分析功能,可以通过对开发板源码进行事件采样,获取 CPU 硬件事件、高精度周期事件、OS 软件事件,生成 Perf 文件。Perf 分析器对输出的 perf 文件进行热点函数和热点路径分析。基于 Perf 分析,可以进行算法优化、代码优化,以提高执行速度、减少内存占用。

图12 Perf分析

(目前DevEco Device Tool只支持Hi3516DV300和Hi3518EV300的Perf分析功能。)

八、应用兼容性测试

为了保证合作伙伴的设备和应用在 OpenHarmony 上能稳定地运行,同时提供一致性的接口和业务体验,合作伙伴的设备和应用在正式发布之前,需要进行一系列兼容性测试。

DevEco Device Tool 提供基于 Hi3516DV300 开发板的应用兼容性测试功能。开发者可以在 Linux 系统上一站式完成开发和应用兼容性测试,无需将编译生成文件拷贝到 Windows 工作台,即可通过命令行进行测试。

具体使用方法:点击 Acts Test 进入配置页,在配置一系列参数后保存后,通过 PROJECT TASKS 中的 Test 按钮,执行对应的模块按钮后,会自动进行应用兼容性测试并将测试结果显示到浏览器中。

图13 应用兼容性测试

想要更多了解和体验DevEco Device Tool

欢迎获取工具和工具使用指南。

https://docs.openharmony.cn/pages/v3.1/zh-cn/device-dev/get-code/gettools-ide.md/

DevEco Device Tool 助力OpenHarmony设备开发的更多相关文章

  1. DevEco Device Tool 3.0 Release 新版本发布,支持多人共享开发

    DevEco Device Tool 是面向智能设备开发者提供的一站式集成开发环境,支持 HarmonyOS Connect 的组件按需定制,支持代码编辑.编译.烧录和调试.性能监测等功能,支持 C/ ...

  2. Harmony OS 开发避坑指南——DevEco Device Tool 安装配置

    Harmony OS 开发指南--DevEco Device Tool 安装配置 本文介绍如何在Windows主机上安装DevEco Device Tool工具. 坑点总结: 国内部分网络环境下,安装 ...

  3. DevEco Device Tool 2.1 Beta1在Hi3861开发板上可视化分析的体验

    DevEco Device Tool迎来了2.1 Beta1,新版本有很多亮点.在上次"DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验 ...

  4. DevEco Device Tool 2.1 Beta1 的Hi3861在Windows平台的编译体验

    DevEco Device Tool迎来了2.1 Beta1,其中的亮点之一是:支持Hi3861开发板的源码在Windows平台编译.带着浓厚的兴趣,第一时间做了一次体验. 首先在官网下载" ...

  5. OpenHarmony 3.1 Release版本发布

    OpenHarmony 3.1 Release 版本概述 当前版本在OpenHarmony 3.1 Beta的基础上,更新支持以下能力: 标准系统基础能力增强 本地基础音视频播放能力.视频硬编解码.相 ...

  6. 乘风破浪,遇见华为鸿蒙智能终端系统(HarmonyOS 2),打造面向全场景的分布式操作系统

    什么是鸿蒙智能终端系统(HarmonyOS 2) HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化.互联与协同提供了统一的语言.带来简洁,流畅,连续,安全可靠的全场景交互体验. ht ...

  7. 【开发板试用报告】鸿蒙OS环境搭建及代码烧录

    鸿蒙系统的代码编译环境需要linux系统,软件开发和代码烧录需要windows环境. Linux环境 参考官方链接:https://gitee.com/openharmony/docs/blob/ma ...

  8. #2020征文-开发板# 用鸿蒙开发AI应用(三)软件篇

    目录: 前言 HarmonyOS 简介 DevEco Device Tool(windows下) 获取源码(切换到ubuntu) 烧录程序(切换回windows) 前言上一篇,我们在 Win10 上用 ...

  9. OpenHarmony3.0如何轻松连接华为云IoT设备接入平台?

    摘要:本文主要介绍基于OpenHarmony 3.0版本来对接华为云IoT设备接入IoTDA,以小熊派BearPi-HM_Nano开发板为例,使用huaweicloud_iot_link SDK对接华 ...

  10. 【资源下载】Linux下的Hi3861一站式鸿蒙开发烧录(附工具)

    下载附件 2021春节前夕,华为发布了 HUAWEI DevEco Device Tool 2.0 Beta1,整体提供了异常强大的功能.得知消息后,我在第一时间带着无比兴奋的心情下载尝鲜,但结果却是 ...

随机推荐

  1. 【LeetCode贪心#05】K 次取反后最大化的数组和(自定义sort、二重贪心)

    K次取反后最大化的数组和 力扣题目链接(opens new window) 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这 ...

  2. 【Azure 微服务】Service Fabric 部署时遇见了VMExtensionProvisioningError错误: Multiple VM extensions failed to be provisioned on the VM

    问题描述 Deployment  Azure Service Fabric 时,遇见了VMExtensionProvisioningError, 全文如下: Deployment Name: 385A ...

  3. Codeforces Round 923 (Div. 3)(A~F)

    目录 A B C D E F A #include <bits/stdc++.h> #define int long long #define rep(i,a,b) for(int i = ...

  4. SelectZenEmpty 下拉框 支持 最大长度 超出... vue 组件

    <template> <Select v-model="innerValue" :disabled="disabled" :clearable ...

  5. thinkphp phpstorm xdebug 环境配置

    php5.6 环境配置 phpStudy 开启 Apache 网站 的php版本选择7的 (7的可能自己需要装一下) 获取xdebug前的 检查准备 打开 http://localhost:8033/ ...

  6. C#实现软件开机自启动(不需要管理员权限)

    目录 原理简介 使用方法 完整代码 原理简介 本文参考C#/WPF/WinForm/程序实现软件开机自动启动的两种常用方法,将里面中的第一种方法做了封装成AutoStart类,使用时直接两三行代码就可 ...

  7. 【预训练语言模型】BERT原理解析、常见问题和微调实战

    一.BERT原理 1.概述        背景:通过在大规模语料上预训练语言模型,可以显著提高其在NLP下游任务的表现.        动机:限制模型潜力的主要原因在于现有模型使用的都是单向的语言模型 ...

  8. day10-中文乱码处理

    中文乱码处理 1.问题抛出 当表单提交的数据为中文时,会出现乱码: (1)Monster.java: package com.li.web.datavalid.entity; import org.h ...

  9. 29_SDL多线程与锁机制

    目录 一.简介 二.代码实现: 2.1.声明 2.2.创建锁.消费者 2.3.销毁 2.4.实现生产者逻辑 2.5.实现销毁者逻辑 2.6.创建生产者 三.分装SDL锁机制 condmutex.h c ...

  10. 【atcoder abc281_d】动态规划

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * @ ...