侵权投诉

HarmonyOS如何自动生成JS FA调用Java PA的模板代码

HarmonyOS开发者 2021-09-28 10:09 次阅读

JS UI框架提供了JS FA(Feature Ability)调用Java PA(Particle Ability)的机制,该机制提供了一种通道来传递方法调用、处理数据返回以及订阅事件上报。

在往期的《JS UI框架下FA与PA是如何交互的》一文中,给大家介绍了如何通过利用FA、PA交互机制来完成基于JS UI框架的应用开发。但是,开发者在实操过程中,都遇到一个共同的问题,就是需要手动撰写大量模板代码,且模板代码可能与业务代码相互耦合,使得代码可维护性和可读性较差。于是,js2java-codegen工具应运而生。

本期,小编将通过开发一个简单的计算器应用,阐述JS UI框架下,如何使用js2java-codegen工具自动生成JS FA调用Java PA的模板代码。

注:以下内容中涉及到的 “FA调用PA”,均是指JS UI框架下JS FA调用Java PA。

js2java-codegen是HarmonyOS SDK中Toolchains工具链从2.2.0.3版本开始提供的自动生成FA调用PA代码的辅助开发工具。它可以根据用户源码自动生成FA调用PA时所需的Java和JS模板代码,该模板代码与用户编写的业务代码相互分离,降低了代码的耦合。

目前,js2java-codegen工具所支持的FA调用PA实现方式为InternalAbility类型,Ability类型尚不支持。

说明 :当前JS FA调用Java PA的机制中,提供了Ability和InternalAbility两种调用方式:

Ability:拥有独立的Ability生命周期,FA使用远端进程通信拉起并请求PA服务,适用于基本服务供多FA调用或者服务在后台独立运行的场景。

InternalAbility:与FA共进程,采用内部函数调用的方式和FA进行通信,适用于对服务响应时延要求较高的场景。该方式下PA不支持其他FA访问调用。

更多JS FA调用Java PA的机制官网文档

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-js-fa-call-pa-0000001050435961

由于该工具从HarmonyOS SDK中Toolchains的2.2.0.3版本开始支持,所以请先把DevEco Studio更新至最新的2.2 Beta2版本。

DevEco Studio官网下载链接:

https://developer.harmonyos.com/cn/develop/deveco-studio#download

1. 新建工程

在最新版的DevEco Studio 2.2 Beta2下,新建一个包含JS的手机项目。

2. 工具配置

开发者需在进行代码生成模块下的build.gradle中进行编译设置及开关控制。编译参数位于ohos -》 defaultConfig下,开发者需用以下方式设置JS模板代码生成路径,即‘jsOutputDir’对应的值。代码如下:

// 定义JS模板生成路径def jsOutputDir = project.file(“src/main/js/default/generated”).toString()ohos { defaultConfig { javaCompileOptions { annotationProcessorOptions { // JS模板代码生成路径赋值 arguments = [‘jsOutputDir’: jsOutputDir] } } }}

工具开关位于ohos下,值设为true则启用工具,false或不进行配置则不启用工具。配置代码如下:

ohos { compileOptions { // 此处为启用js2java-codegen工具的开关。值为true则启用工具,false则不启用工具。 f2pautogenEnabled true }}

3. PA侧代码编写

开发者需在PA侧用Java语言手动编写实现计算器业务逻辑的InternalAbility类,用于接收FA侧传来的运算表达式,并对表达式的合法性进行检验。然后通过单独编写一个工具类来完成对运算表达式的计算,并由InternalAbility来调用,将计算结果返回FA侧。本示例中,开发者通过新建CalculateService类实现计算器的业务逻辑,并对CalculateService类本身添加@InternalAbility注解,表示该类为InternalAbility类,并且用参数指定该类注册到同包中的MainAbility类。然后通过calculate()方法来实现计算器的基本操作,包括入参检验、调用工具类实现运算表达式的计算、捕获异常并返回结果,部分示例代码如下所示:

package com.example.simplecalculatorfapa;import

com.example.simplecalculatorfapa.utils.Util;import

ohos.annotation.f2pautogen.InternalAbility;import java.util.EmptyStackException;import

java.util.regex.Pattern;// 注册到同一个包下的MainAbility类中@InternalAbility(registerTo =

“com.example.simplecalculatorfapa.MainAbility”)public class CalculateService { public String

calculate(String exp) { // 排除不需计算就可发现的非法情况,此处列出一种为例 if (exp.isEmpty

()) { return “NoResult”; } // ... // 使用工具类进行计算,捕获可能出现的异常 String result;

try { result = Util.getResult(exp); } catch (NumberFormatException | ArithmeticException |

EmptyStackException e) { return “Wrong”; } // 返回合法结果 return result; }}

工具注解说明:js2java-codegen工具通过注解来获取信息并生成开发者所需的代码。因此用户如果想使用该工具辅助开发,则需要了解以下三种注解的用法:@InternalAbility注解:类注解,用于被使用作InternalAbility的、包含实际业务代码的类(简称InternalAbility类)。包含一个参数:registerTo,参数值为需要注册的Ability类全名。

如下用例表示Service类是一个InternalAbility类,注册到位于com.example包中的、名为Ability的Ability类。@InternalAbility (registerTo = “com.example.Ability”)

public class Service{}@ExportIgnore注解:方法注解,用于InternalAbility类中的某些方法,表示该方法不暴露给JS侧来调用,仅对public方法有效。如下用例表示service方法不会被暴露给JS侧。@ExportIgnore public int service(int input) {return input;}

@ContextInject注解:用于AbilityContext上的注解。该类由HarmonyOS的Java API提供,开发者可通过它获取API中提供的信息。如下用例表示开发者可以借助abilityContext对象获取API中提供的信息。

@ContextInject AbilityContext abilityContext;

4. 编译

编写完InternalAbility类的业务代码后,下面FA调用PA的模板代码生成工作就交给js2java-codegen工具吧!

开发者只需点击菜单栏中的Build -》 Build HAP(s)/APP(s) -》 Build HAP(s),即可完成对项目的编译,同时js2java-codegen工具会在编译过程中完成FA调用PA通道代码的生成。 编译过程会生成Java和JS的模板代码。

① 自动生成的Java模板代码位于entry 》 build 》 generated》 source 》 annotation 》 debug 下。部分Java模板代码如下所示:

public boolean onRemoteRequest(int code,MessageParcel data, MessageParcel reply, MessageOption option) { Map《String, Object》 result = new HashMap《String,Object》(); switch(code) { case OPCODE_calculate:{ java.lang.String zsonStr =data.readString(); ZSONObject

zsonObject =ZSONObject.stringToZSON(zsonStr); java.lang.String exp =zsonObject.getObject(“exp”,java.lang.String.class);

result.put(“code”, SUCCESS); result.put(“abilityResult”,service.calculate(exp)); break;} default:reply.writeString(“Opcode is not defined!”);

return false; } return sendResult(reply,result, option.getFlags() == MessageOption.TF_SYNC);}rivate boolean sendResult(MessageParcel reply,Map《String, Object》 result, boolean isSync) { if (isSync) { reply.writeString(ZSONObject.toZSONString(result)); } else { MessageParcel response =MessageParcel.obtain();

response.writeString(ZSONObject.toZSONString(result)); IRemoteObject remoteReply =reply.readRemoteObject();

try { remoteReply.sendRequest(0, response,MessageParcel.obtain(), new MessageOption()); response.reclaim();

} catch (RemoteExceptionexception) { return false; } } return true;}

② 自动生成的JS模板代码位于开发者在编译设置中设置的路径,名称与InternalAbility类的名称相对应。自动生成的JS模板代码如下所示:

// This file is automatically generated. Do not modify it!const ABILITY_TYPE_EXTERNAL = 0;const ABILITY_TYPE_INTERNAL = 1;

const ACTION_SYNC = 0;const ACTION_ASYNC = 1;const BUNDLE_NAME = ‘com.example.simplecalculatorfapa’;const ABILITY_NAME = ‘com.example.simplecalculatorfapa.CalculateServiceStub’;

const OPCODE_calculate = 0;const sendRequest = async (opcode, data) =》 { var action = {};

action.bundleName = BUNDLE_NAME; action.abilityName = ABILITY_NAME; action.messageCode = opcode; action.data = data; action.abilityType = ABILITY_TYPE_INTERNAL; action.syncOption = ACTION_SYNC; return FeatureAbility.callAbility(action);

}class CalculateService { async calculate(exp) { if (arguments.length != 1) { throw new Error(“Method expected 1 arguments, got ” + arguments.length);

} let data = {}; data.exp = exp; const result = await sendRequest(OPCODE_calculate, data); return JSON.parse(result);

}}export default CalculateService;

5. FA侧代码编写

FA侧的内容包含“由html与css代码编写的静态页面”及“实现按钮与方法动态关联的JS代码”。首先,开发者需在开头引入由js2java-codegen工具自动生成的JS模板代码的FA接口类,然后实现计算器按钮对应的方法。由于“=”按钮对应的方法调用了PA侧的计算功能,因此需在该方法中新建FA接口示例,并调用对应方法(名称与InternalAbility类中需要被调用的方法名称相同),并将输入框的值传入,将返回值打印在结果框中。

本示例中,开发者通过在开头引入由js2java-codegen工具自动生成的JS模板代码的CalculateService接口类(from后的值需要与编译设置中的路径进行统一,JS模板代码文件名称与InternalAbility类名相同),然后用data实现输入框与结果框的动态,并在等号按钮对应的calculate()方法中新建接口实例,通过调用接口类的calculate()方法,将输入框值传入,并把返回值赋给结果框。示例代码如下所示:

// 引入calculateService类import CalculateService from ‘../../generated/CalculateService.js’;

export default { // 用于实现输入框和结果框的动态变化 data: { input: “”, // 输入框内容 result: “” // 结果框内容 }, // 不需要调用PA的按钮功能实现,此处列出退格键为例 deleteOne() { this.result = “”; this.input = this.input.substr(0, this.input.length-1);

}, // ... // 由等号触发的方法,调用PA calculate() { // 新建CalculateService示例 var service = new CalculateService();

// 调用calculate方法,传入输入框内容并将返回结果赋值给结果框 service.calculate(this.input) .then((data) =》 { this.result = data[“abilityResult”];

}); }}

启动手机模拟器,并运行程序,即可生成结果。效果展示如下:

至此,一个运用js2java-codegen工具开发的计算器Demo就完成了。该工具引入的代码生成技术,大大提升了跨语言调用场景的开发效率,让HarmonyOS开发者更能专注业务开发,提升开发体验。

责任编辑:haq

原文标题:无需手动撰写,HarmonyOS工具自动生成代码,真香!

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

征战国际音频外设市场,索爱演绎中国智造最强音

很长一段时间内,在国内音频外设消费市场,每当提起国产品牌,很多消费者都会不假思索的为国货贴上“山寨”....
的头像 科技见闻网 发表于 10-25 18:00 207次 阅读
征战国际音频外设市场,索爱演绎中国智造最强音

华为开发者大会2021在哪

华为开发者大会2021在广东东莞松山湖举行,时间为三天,10月22至24天,华为官方已经公布了开发者....
的头像 lhl545545 发表于 10-25 17:53 322次 阅读

太强了!华为自研鸿蒙编程语言,行业大佬都已经偷偷学起来了

华为开发者大会 2021(Together)上,Harmony OS 3 开发者预览版正式发布,华为鸿蒙又是一个历史性的进步啊,而且,华为还表...
发表于 10-25 16:53 68次 阅读

华为开发者大会2021概念股

  华为开发者大会2021在10月22至24日在东莞松山湖如期举行,中国软件万兴科技等鸿蒙概念股有望....
的头像 lhl545545 发表于 10-25 16:44 256次 阅读

华为开发者大会值得参加吗

2021华为开发者大会值得参加。10月22至24日,2021华为开发者大会聚焦行业技术大咖发表了技术....
的头像 lhl545545 发表于 10-25 16:15 108次 阅读

2021华为开发者大会分论坛

华为开发者大会2021近日在广东如期举行,本次大会HarmonyOS鸿蒙生态成为重要参与者,华为除了....
的头像 lhl545545 发表于 10-25 15:56 249次 阅读

HarmonyOS 3.0.0开发者预览版全新发布

2021年10月22日在华为开发者大会HDC.Together 2021 主题演讲上,我们发布了HarmonyOS 3.0.0开发者预览版,主要内容包括:...
发表于 10-25 15:49 97次 阅读
HarmonyOS 3.0.0开发者预览版全新发布

2021华为开发者大会心得体会

10月22至24日华为正式举行了2021华为HDC开发者大会,华为通过展示软硬件协同的全场景多终端教....
的头像 lhl545545 发表于 10-25 15:25 136次 阅读

华为开发者大会是干嘛的

2021华为HDC开发者大会堪称“开发者嘉年华”,华为开发者大会是面向ICT等领域全球开发者的年度旗....
的头像 lhl545545 发表于 10-25 15:12 131次 阅读

不容错过!鸿蒙开发必备神器,老王月薪过万的秘诀都在这了

大家应该都知道在华为开发者大会HDC.Together 2021主题演讲会上,华为发布了HarmonyOS3.0.0开发者预览版。 预览版本中...
发表于 10-25 14:47 44次 阅读

HUAWEI AppGallery Connect服务创新

10月23日,以“全生命周期赋能应用开发者”为主题的华为开发者大会2021(Together)App....
的头像 话说科技 发表于 10-25 14:34 160次 阅读
HUAWEI AppGallery Connect服务创新

HarmonyOS原子化服务卡片开发-快照实战说明

1.快照作用在服务中心显示卡片的过程中,因为页面加载需要一定时间,所以在服务中心中会先显示快照,后续再显示加载的小卡页面,...
发表于 10-25 13:42 0次 阅读
HarmonyOS原子化服务卡片开发-快照实战说明

华为开发者大会2021视频

华为开发者大会2021(Together)在东莞如期举行,华为消费总裁CEO余承恩在以“未来 有迹可....
的头像 lhl545545 发表于 10-25 11:23 234次 阅读

摩尔线程携手麒麟软件共同打造中国“完美体验系统”

摩尔线程与麒麟软件宣布达成生态合作伙伴关系,双方将着眼长期产品规划,深入产品研发和技术合作,携手打造....
的头像 互联网科技 发表于 10-25 11:11 135次 阅读
摩尔线程携手麒麟软件共同打造中国“完美体验系统”

2020华为开发者大会直播入口

2020 年华为开发者大会与9 月10 日至9 月12 日在东莞松山湖举行。会上,华为揭开 了关于H....
的头像 lhl545545 发表于 10-25 11:09 183次 阅读

华为开发者大会2021举办时间

华为开发者大会HDC 2021在10月22至24日如期召开,地点在中国松山湖举行。华为与全球开发者汇....
的头像 lhl545545 发表于 10-25 10:50 157次 阅读

华为开发者大会2021官网

华为开发者大会2021近日已经正式开幕,华为公司在会上宣布HMS全球开发者已达510万,通过Harm....
的头像 lhl545545 发表于 10-25 10:36 190次 阅读

HarmonyOS驱动华为全屋智能再升级让智能家体验更近一步

(中国,东莞,2021年10月23日)华为开发者大会2021(Together)如期在东莞松山湖举行....
的头像 话说科技 发表于 10-25 10:31 215次 阅读
HarmonyOS驱动华为全屋智能再升级让智能家体验更近一步

梦想再度启航,第二届HarmonyOS开发者创新大赛正式启动

在10月22日举办的华为开发者大会(Together)上,第二届“HarmonyOS开发者创新大赛”....
的头像 话说科技 发表于 10-25 10:18 148次 阅读
梦想再度启航,第二届HarmonyOS开发者创新大赛正式启动

华为开发者大会发布HarmonyOS 3预览版等全新开发技术,搭载HarmonyOS的设备超过1.5亿台

HarmonyOS已在超过1.5亿智能手机、平板、手表、智慧屏等设备上应用,成为万物智联时代的数字底....
的头像 西西 发表于 10-25 09:55 438次 阅读

华为何刚:网络安全和隐私保护是华为践行全场景生态战略的原点

华为提出消费者业务安全与隐私保护的“四大主张”,即自上而下的组织与流程保障、制定严苛的隐私安全原则、....
发表于 10-25 09:50 117次 阅读

鸿蒙3开发者预览版发布 华为鸿蒙编程语言正在研发中

2021华为开发者大会近日在广东东莞正式举行,随后华为消费总裁余承恩宣布将带来全新HarmonyOS....
的头像 lhl545545 发表于 10-25 09:13 243次 阅读

内核的功能有哪些

计算机是由哪些部分组成的? 操作系统有何作用? 内核的功能有哪些? ...
发表于 10-25 07:59 0次 阅读

什么是操作系统?操作系统有哪些作用

计算机是由哪几大单元组成的? 什么是操作系统?操作系统有哪些作用?...
发表于 10-25 07:56 0次 阅读

ARM与单片机相比有哪些优势

单片机和ARM有什么区别? ARM与单片机相比有哪些优势? ...
发表于 10-25 07:46 0次 阅读

2021华为开发者大会分论坛HarmonyOS学生公开课布道师从零开始从现在开始

2021华为开发者大会分论坛HarmonyOS学生公开课布道师从零开始从现在开始 在正在直播的202....
的头像 inr999 发表于 10-24 11:47 565次 阅读
2021华为开发者大会分论坛HarmonyOS学生公开课布道师从零开始从现在开始

华为开发者分论坛HarmonyOS学生公开课-HarmonyOS开发者三大成长阶段与学习资源

2021华为开发者分论坛HarmonyOS学生公开课-HarmonyOS开发者三大成长阶段与学习资源
的头像 lhl545545 发表于 10-24 11:43 480次 阅读
华为开发者分论坛HarmonyOS学生公开课-HarmonyOS开发者三大成长阶段与学习资源

2021华为开发者大会分论坛HarmonyOS学生公开课解读HarmonyOS布道师

在今天的2021华为开发者大会分论坛HarmonyOS学生公开课上华为HarmonyOS开发者运营高....
的头像 inr999 发表于 10-24 11:35 510次 阅读
2021华为开发者大会分论坛HarmonyOS学生公开课解读HarmonyOS布道师

华为开发者分论坛HarmonyOS学生公开课-如何成为HarmonyOS校园布道师

2021华为开发者分论坛HarmonyOS学生公开课-如何成为HarmonyOS校园布道师
的头像 lhl545545 发表于 10-24 11:33 460次 阅读
华为开发者分论坛HarmonyOS学生公开课-如何成为HarmonyOS校园布道师

华为开发者分论坛HarmonyOS学生公开课-开发者成长图谱

2021华为开发者分论坛HarmonyOS学生公开课-开发者成长图谱
的头像 lhl545545 发表于 10-24 11:25 371次 阅读
华为开发者分论坛HarmonyOS学生公开课-开发者成长图谱

华为开发者分论坛HarmonyOS学生公开课-OpenHarmony Codelabs开发案例

2021华为开发者分论坛HarmonyOS学生公开课-OpenHarmony Codelabs开发案....
的头像 lhl545545 发表于 10-24 11:25 357次 阅读
华为开发者分论坛HarmonyOS学生公开课-OpenHarmony Codelabs开发案例

华为开发者分论坛HarmonyOS学生公开课-10分钟玩转codeLabs应用案例

2021华为开发者分论坛HarmonyOS学生公开课-10分钟玩转codeLabs应用案例
的头像 lhl545545 发表于 10-24 11:17 358次 阅读
华为开发者分论坛HarmonyOS学生公开课-10分钟玩转codeLabs应用案例

2021华为开发者大会HarmonyOS学生公开课上分享精彩样例

在今天的2021华为开发者大会分论坛HarmonyOS学生公开课上分享了很多的精彩样例;比如分布式任....
的头像 inr999 发表于 10-24 11:17 436次 阅读
2021华为开发者大会HarmonyOS学生公开课上分享精彩样例

华为开发者分论坛HarmonyOS学生公开课-如何学习HarmonyOS应用开发?

2021华为开发者分论坛HarmonyOS学生公开课-如何学习HarmonyOS应用开发?
的头像 lhl545545 发表于 10-24 11:09 282次 阅读
华为开发者分论坛HarmonyOS学生公开课-如何学习HarmonyOS应用开发?

华为开发者分论坛HarmonyOS学生公开课-10分钟成为HarmonyOS开发者

2021华为开发者分论坛HarmonyOS学生公开课-10分钟成为HarmonyOS开发者
的头像 lhl545545 发表于 10-24 11:03 289次 阅读
华为开发者分论坛HarmonyOS学生公开课-10分钟成为HarmonyOS开发者

2021华为开发者大会HarmonyOS学生公开课上教你10分钟成为HarmonyOS开发者

2021华为开发者大会HarmonyOS学生公开课上教你10分钟成为HarmonyOS开发者 学习H....
的头像 inr999 发表于 10-24 11:03 324次 阅读
2021华为开发者大会HarmonyOS学生公开课上教你10分钟成为HarmonyOS开发者

华为开发者分论坛HarmonyOS学生公开课-HarmonyOS的无限可能

2021华为开发者分论坛HarmonyOS学生公开课-HarmonyOS的无限可能   推荐链接:h....
的头像 lhl545545 发表于 10-24 11:03 272次 阅读
华为开发者分论坛HarmonyOS学生公开课-HarmonyOS的无限可能

2021华为开发者大会HarmonyOS学生公开课 无限可能和传承

2021华为开发者大会HarmonyOS学生公开课 无限可能和传承
的头像 inr999 发表于 10-24 10:58 329次 阅读
2021华为开发者大会HarmonyOS学生公开课 无限可能和传承

华为开发者分论坛HarmonyOS学生公开课-木棉花2.0模式

2021华为开发者分论坛HarmonyOS学生公开课-木棉花2.0模式与1.0模式的不足
的头像 lhl545545 发表于 10-24 10:53 276次 阅读
华为开发者分论坛HarmonyOS学生公开课-木棉花2.0模式

华为开发者分论坛HarmonyOS学生公开课-面向所有开发者的木棉花开源项目

2021华为开发者分论坛HarmonyOS学生公开课-面向所有开发者的木棉花开源项目,有鸿蒙最全面的....
的头像 lhl545545 发表于 10-24 10:52 185次 阅读
华为开发者分论坛HarmonyOS学生公开课-面向所有开发者的木棉花开源项目

华为开发者分论坛HarmonyOS学生公开课-分布式数字华容道

2021华为开发者分论坛HarmonyOS学生公开课-分布式数字华容道
的头像 lhl545545 发表于 10-24 10:40 198次 阅读
华为开发者分论坛HarmonyOS学生公开课-分布式数字华容道

2021华为开发者大会HarmonyOS学生公开课案例 开发者收入超1300万

在今天的2021华为开发者大会分论坛HarmonyOS学生公开课上,有一个案例中开发者收入超1300....
的头像 inr999 发表于 10-24 10:40 236次 阅读
2021华为开发者大会HarmonyOS学生公开课案例 开发者收入超1300万

华为开发者分论坛HarmonyOS学生公开课-学习鸿蒙更全面的开发

2021华为开发者分论坛HarmonyOS学生公开课-学习鸿蒙更全面的开发
的头像 lhl545545 发表于 10-24 10:37 199次 阅读
华为开发者分论坛HarmonyOS学生公开课-学习鸿蒙更全面的开发

华为开发者分论坛HarmonyOS学生公开课-学习demo总结分享

2021华为开发者分论坛HarmonyOS学生公开课-学习demo总结分享
的头像 lhl545545 发表于 10-24 10:34 184次 阅读
华为开发者分论坛HarmonyOS学生公开课-学习demo总结分享

2021华为开发者大会HarmonyOS学生公开课分享开发者会遇到什么问题 怎么解决问题

2021华为开发者大会HarmonyOS学生公开课分享开发者会遇到什么问题 怎么解决问题 2021华....
的头像 inr999 发表于 10-24 10:31 213次 阅读
2021华为开发者大会HarmonyOS学生公开课分享开发者会遇到什么问题 怎么解决问题

2021华为开发者大会HarmonyOS学生公开课教你怎么从小白到高手

2021华为开发者大会HarmonyOS学生公开课教你怎么从小白到高手 HarmonyOS难不难?我....
的头像 inr999 发表于 10-24 10:28 269次 阅读
2021华为开发者大会HarmonyOS学生公开课教你怎么从小白到高手

华为开发者分论坛HarmonyOS学生公开课-学习开发demo模仿与创新

2021华为开发者分论坛HarmonyOS学生公开课-学习开发demo模仿与创新
的头像 lhl545545 发表于 10-24 10:25 168次 阅读
华为开发者分论坛HarmonyOS学生公开课-学习开发demo模仿与创新

华为开发者分论坛HarmonyOS学生公开课-学习并总结HarmonyOS相关知识

2021华为开发者分论坛HarmonyOS学生公开课-学习并总结HarmonyOS相关知识
的头像 lhl545545 发表于 10-24 10:21 167次 阅读
华为开发者分论坛HarmonyOS学生公开课-学习并总结HarmonyOS相关知识

华为开发者分论坛HarmonyOS学生公开课-成立HarmonyOS木棉花研究团队

2021华为开发者分论坛HarmonyOS学生公开课-成立HarmonyOS木棉花研究团队
的头像 lhl545545 发表于 10-24 10:16 183次 阅读
华为开发者分论坛HarmonyOS学生公开课-成立HarmonyOS木棉花研究团队

鸿蒙os用户达2亿!官方:版本必须再更新!

今天华为开发者大会 2021(Together)主题演讲上,华为宣布,HarmonyOS 设备数量超 1.5 亿,成为史上发展最快的终端操作系统...
发表于 10-23 16:38 0次 阅读

华为2022秋招鸿蒙工程师,零基础小白也能拿20K+高薪?

​俗话说“金九银十”,今年的华为2022届的秋招又如期而至了! 跟往年一样,今年的秋招依旧是大家最关心的热门话题之一,可以看...
发表于 10-23 15:00 464次 阅读