鸿蒙最新IDE(DevEco Studio)绝密档案大揭秘,绝对有你不知道的东西!

2023-11-05 10:20

本文主要是介绍鸿蒙最新IDE(DevEco Studio)绝密档案大揭秘,绝对有你不知道的东西!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1. 分布式远程模拟器

2. 本地模拟器

3. 改变了创建工程的方式

4. 原子化服务

5. 学习的好帮手:Samples

6. 应用自签名


公元2021年6月2日,鸿蒙系统迎来了第2次开源,同时,用于开发鸿蒙App的DevEco Studio也迎来了重大的更新,这次更新是具有里程碑意义的,因为增加了很多非常牛叉的功能,而且编译速度得到了显著的提升。尤其是分布式模拟器,可以在无需真机的情况下开发分布式鸿蒙App。本文将深入讲解DevEco Studio推出的一些核心特性。

1. 分布式远程模拟器

 

分布式远程模拟器是新版DevEco Studio中最值得使用的功能。以前的远程模拟器只能测试单机和网络应用,而鸿蒙的分布式特性却只能用真机测试。而分布式远程模拟器允许同时创建两个远程模拟器(P40+P40或P40+MatePad Pro),这两个远程模拟器可以互相访问,利用相关的分布式API可以获取另一个的设备ID,所以可用来开发分布式鸿蒙App。

在默认情况下,分布式远程模拟器是不开启的。要想开启该功能,进入IDE的设置窗口,点击左侧树的DevEco Labs,在右侧选中Enable Super Device复选框即可,如下图所示。

然后点击Tools > Device Manager菜单项,就会打开HarmonyOS Virtual Device Manager窗口(需要先登录华为开发者网站),如下图所示。

 

 

最下面会出现一个Super device节点,里面有两种组合方式:P40+P40和P40+MatePad Pro,选中一种组合方式即可。

 

搞定后,就会在IDE主窗口右侧出现两个模拟器,如下图所示。他们的端口号分别是18888和18889。

 

执行hdc list targets命令,会显示如下两个设备:

127.0.0.1:18888 device 127.0.0.1:18889 device

如果嫌模拟器窗口太小,可以直接用scrcpy远程投屏,命令行如下:

scrcpy -s 127.0.0.1:18888

投屏后的效果如下图所示,这样可以拥有一个独立窗口的远程模拟器。

 

现在可以运行一个支持分布式的App,如下面的应用可以获取网内其他的设备,目前只获得一个设备,就是双模拟器中的另外一个。

 

2. 本地模拟器

尽管远程模拟器使用起来非常方法,而且占用资源少,但却有如下2个缺点:

(1)使用远程模拟器,必须联网,这对于没有网络环境或网络环境不好的用户并不友好;

(2)由于网络的差异,远程模拟器可能会反应比较迟钝,用户体验并不好;

基于以上两个缺点,最新版DevEco Studio还推出了本地模拟器,也就是将HarmonyOS安装在本地虚拟环境中,这样运行效率得到了很大提升。

想使用本地模拟器,可以在DevEco Labs中打开Enable Local Emulator选项,如下图所示。

 

然后在设备管理里就会看到Local Emulator标签页,如下图所示。不过目前本地模拟器的镜像还没有放出,稍后华为会开放这些镜像,用户可以点击Install按钮进行下载。等本地模拟器发布时,我再写文章详细讲解。

 

 

3. 改变了创建工程的方式

 

新版IDE改变了创建工程方式,首先要求选择模板,如下图所示。

 

 

在这个模板中增加了11个跨设备模板,如下所示。

 

 

下一步,会要求选择模板适用的设备,如下图所示。根据选择模板的不同,下方会出现该模板适用的所有可选设备,如果不适用,就不会显示。

 

 

4. 原子化服务

上面窗口中大多数都是一些常规的设置。这里要提一下Project Type。这里有两个选项:Service和Application。其中Application就是普通的App,无需多介绍。而Service是原子化服务App。Service App安装后,在桌面上是没有图标的。而且app的尺寸要限制在10MB以内,上传华为应用市场,通过某些条件(如跨设备流转),会自动从华为应用市场下载并安装(用户完全无感知)。

 

而且创建原子化服务,会自动创建一个卡片,如下图所示。

 

如果选中最后的Show in Service Center复选框,就会在鸿蒙的服务中心显示。

通过从手机屏幕左下角向右上方滑动进入服务中心。

现在按下面的样式修改string.json文件。

 

 

接下来在模拟器或手机上运行,然后进入服务中心,输入FirstAtomApp,就会看到这个程序,如下图所示。其实这就是App中的卡片。

 

 

然后点击,会弹出与其关联的Ability,如下图所示。不过,Service类型的App是没有图标的,所以只能从服务中心搜索启动,或者满足某些条件才能启动,如数据流转,NFC等。

 

5. 学习的好帮手:Samples

 

鸿蒙有一个CodeLabs(看下面的页面),但里面的例子有点大,所以IDE提供了很多samples(相对较小)。

CodeLabs地址:

https://developer.harmonyos.com/cn/develop/codelabs/

导入samples,有两种方式。

方式1,在欢迎界面(如下图所示),点击Import HarmonyOS Sample。

 

 

然后会弹出下面的窗口,选择其中一个,点击Next按钮,按提示操作即可导入特定的Sample。

 

 

方式2:在IDE里,点击File > New > Import HarmonyOS Sample菜单项,也会弹出上的Import HarmonyOS Sample窗口。

 

 

其实Samples并不是直接打开工程,而是从gitee(码云)拉的,这些案例也可以从下面的页面中获取。

https://gitee.com/openharmony/app_samples/tree/master

6. 应用自签名

 

我们知道,HarmonyOS App在部署到真机上时需要签名,在以前,都需要到AppGallery Connect生成一些用于签名的配置文件,然后进入Project Structure窗口,完成如下图所示的配置。

 

 

在新版的IDE中,提供了一个Automatically generate signing复选框,选中该复选框,并在AppGallery Connect上创建一个与当前工程相同包名的应用,就可以自动产生相关的签名文件,效果如下图所示。

 

不过使用自动签名要注意如下2点:

(1)必须有鸿蒙设备连接到PC(通过USB或远程连接都可以)

(2)与PC连接的所有设备必须都是鸿蒙设备,不能有Android设备。当然,Apple设备没问题

如果有Android设备同时连接到PC上,在自动签名时会抛出如下异常:

 

出错的原因是系统会签名所有的物理设备,目前并没有判断是鸿蒙设备,还是Android设备。所以如果遇到Android设备,也会签名。Android设备当然无法成功对HarmonyOS App签名了,所以就会导致签名失败(只要有一台设备签名失败,所有的设备签名都会失败)。

当然,新版IDE还有很多其他功能,后期我会写文章专门介绍,敬请期待!

 

这篇关于鸿蒙最新IDE(DevEco Studio)绝密档案大揭秘,绝对有你不知道的东西!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/349218

相关文章

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主

Python多进程、多线程、协程典型示例解析(最新推荐)

《Python多进程、多线程、协程典型示例解析(最新推荐)》:本文主要介绍Python多进程、多线程、协程典型示例解析(最新推荐),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定... 目录一、multiprocessing(多进程)1. 模块简介2. 案例详解:并行计算平方和3. 实现逻

Spring Boot集成SLF4j从基础到高级实践(最新推荐)

《SpringBoot集成SLF4j从基础到高级实践(最新推荐)》SLF4j(SimpleLoggingFacadeforJava)是一个日志门面(Facade),不是具体的日志实现,这篇文章主要介... 目录一、日志框架概述与SLF4j简介1.1 为什么需要日志框架1.2 主流日志框架对比1.3 SLF4

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推