鸿蒙最新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

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

查看Oracle数据库中UNDO表空间的使用情况(最新推荐)

《查看Oracle数据库中UNDO表空间的使用情况(最新推荐)》Oracle数据库中查看UNDO表空间使用情况的4种方法:DBA_TABLESPACES和DBA_DATA_FILES提供基本信息,V$... 目录1. 通过 DBjavascriptA_TABLESPACES 和 DBA_DATA_FILES

最新Spring Security实战教程之Spring Security安全框架指南

《最新SpringSecurity实战教程之SpringSecurity安全框架指南》SpringSecurity是Spring生态系统中的核心组件,提供认证、授权和防护机制,以保护应用免受各种安... 目录前言什么是Spring Security?同类框架对比Spring Security典型应用场景传统

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

OpenManus本地部署实战亲测有效完全免费(最新推荐)

《OpenManus本地部署实战亲测有效完全免费(最新推荐)》文章介绍了如何在本地部署OpenManus大语言模型,包括环境搭建、LLM编程接口配置和测试步骤,本文给大家讲解的非常详细,感兴趣的朋友一... 目录1.概况2.环境搭建2.1安装miniconda或者anaconda2.2 LLM编程接口配置2

Mysql中InnoDB与MyISAM索引差异详解(最新整理)

《Mysql中InnoDB与MyISAM索引差异详解(最新整理)》InnoDB和MyISAM在索引实现和特性上有差异,包括聚集索引、非聚集索引、事务支持、并发控制、覆盖索引、主键约束、外键支持和物理存... 目录1. 索引类型与数据存储方式InnoDBMyISAM2. 事务与并发控制InnoDBMyISAM

Redis 内存淘汰策略深度解析(最新推荐)

《Redis内存淘汰策略深度解析(最新推荐)》本文详细探讨了Redis的内存淘汰策略、实现原理、适用场景及最佳实践,介绍了八种内存淘汰策略,包括noeviction、LRU、LFU、TTL、Rand... 目录一、 内存淘汰策略概述二、内存淘汰策略详解2.1 ​noeviction(不淘汰)​2.2 ​LR

StarRocks索引详解(最新整理)

《StarRocks索引详解(最新整理)》StarRocks支持多种索引类型,包括主键索引、前缀索引、Bitmap索引和Bloomfilter索引,这些索引类型适用于不同场景,如唯一性约束、减少索引空... 目录1. 主键索引(Primary Key Index)2. 前缀索引(Prefix Index /

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

浅析Python中的绝对导入与相对导入

《浅析Python中的绝对导入与相对导入》这篇文章主要为大家详细介绍了Python中的绝对导入与相对导入的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1 Imports快速介绍2 import语句的语法2.1 基本使用2.2 导入声明的样式3 绝对import和相对i