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. 逆向实战31——xhs—xs算法分析

    前言 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 公众号链接 目标网站 aH ...

  2. java图书管理系统

    一 .需求 1.使用数组存储学生(学号.姓名.性别.年级.院系.班级)信息数据和图书(书号.书名.出版日期.作者.价格.类别)信息数据 2.学生管理功能:增加学生.删除学生信息.修改学生信息.查询学生 ...

  3. kafka消费者的三种模式

    几种不同的注册方式 subscribe方式:当主题分区数量变化或者consumer数量变化时,会进行rebalance:注册rebalance监听器,可以手动管理offset不注册监听器,kafka自 ...

  4. 【Azure 应用服务】在App Service中新建WebJob时候遇见错误,不能成功创建新的工作任务

    问题描述 在Azure App Service界面上,添加新的Web Job(工作任务)时,一直添加失败.无详细错误提示,在App Service的Activity Logs(活动日志)中,根本没有添 ...

  5. 【Azure 应用服务】如何让App Service 支持 Delete 方法 

    问题描述 如何让webapp 支持 delete 方法? 在不修改设置的情况下,调用DELETE方法出现405错误 - 方法不被允许 问题解决 基于当前App Service在Windows的环境中运 ...

  6. 基于 Nebula Graph 构建百亿关系知识图谱实践

    本文首发于 Nebula Graph Community 公众号 一.项目背景 微澜是一款用于查询技术.行业.企业.科研机构.学科及其关系的知识图谱应用,其中包含着百亿级的关系和数十亿级的实体,为了使 ...

  7. Linux安装Docker教程

    介绍 Docker利用Linux核心中的资源分脱机制,例如cgroups,以及Linux核心名字空间(name space),来创建独立的软件容器(containers).可以在单一Linux实体下运 ...

  8. Mac下使用Docker快速布署FastGPT实现AI私有知识库

    FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理.模型调用等能力.同时可以通过 Flow 可视化进行工作流编排,从而实现复杂的问答场景! 官网地址为:https: ...

  9. 为什么defineProps宏函数不需要从vue中import导入?

    前言 我们每天写vue代码时都在用defineProps,但是你有没有思考过下面这些问题.为什么defineProps不需要import导入?为什么不能在非setup顶层使用defineProps?d ...

  10. vetur volar 是否可以共用,vue2 vue3项目 如何同时开发?

    vetur volar 是否可以共用,vue2 vue3项目 如何同时开发? 先提问 以后再找答案 20220704 补答 vetur volar 不要一起装 vscode环境