0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

原子化服务的官方解析来啦~

话说科技 来源:话说科技 作者:话说科技 2021-08-30 14:26 次阅读

一直关注我们的小伙伴们肯定听说过“原子化服务”了,可能有些小伙伴还听说过“元服务”。元服务,其实就是原子化服务。那么原子化服务到底是什么,权威的官方解析来啦~

一、原子化服务是什么?

我们日常生活中已经习惯了应用的概念,而原子化服务是HarmonyOS面向未来提供的一种用户程序形态。为什么需要一种新的用户程序形态呢?

传统的应用是以设备为中心,使用前必须手动安装应用,这样导致应用像生了根一样,牢牢的固定在某个设备上。而在万物互联的时代,人均持有设备量不断攀升,设备和场景的多样性,每个设备都需要独立开发一个应用,先安装后使用、不同设备的能力不兼容等传统应用的短板逐步暴露出来。在此背景下,应用提供方和用户都迫切需要一种新的服务提供方式,使应用开发更简单、服务(如听音乐、打车等)的获取和使用更便捷,原子化服务也就此诞生。

那么原子化服务到底是什么呢?

原子化服务是HarmonyOS提供的一种面向未来的服务方式,是有独立入口的(用户可通过点击方式直接触发)、免安装的(无需显式安装,由系统后台安装后即可使用)、可为用户提供一个或多个便捷服务的用户应用程序形态。

例如:传统方式的购物应用,在按照原子化服务理念调整设计后,可以由多个服务直达、免安装的原子化服务实现,比如“商品浏览”、“购物车”、“支付”等。

a08b87d6277f9e2f355f02f4abbeee2db999f37f.jpeg?token=c7b5622f1db475a8c7d3afcfd6eb5149

带您体验原子化服务

下面让我带您体验一下原子化服务,帮助大家更好地了解原子化服务到底是什么样的。

2.1多种入口

我们可以通过多种方式发现原子化服务:

一种为NFC标签,另一种为多功能码。NFC标签为物理打印标签,支持手机碰一碰使用相应服务。多功能码可以为物理打印的标签,支持手机碰一碰及扫一扫使用相应服务,也可以为屏幕上呈现的电子标签,支持扫一扫。多功能码有两种样式,分别用于跨设备体验和三方服务。

2.用户也可以在设备的服务中心、桌面等地方发现并管理原子化服务。

342ac65c10385343a407f8f3219db777c88088ab.jpeg?token=10192c9918635900bf27601b7d1814e1

3.原子化服务可以基于合适场景被主动推荐给用户使用;用户也可以在服务中心和小艺建议中发现系统推荐的服务。

说明:“小艺”是语音助手在华为设备中的名字。小艺可以回答用户的问题、控制家居设备、执行用户的日常任务等;而且,小艺可以通过不同设备感知用户的使用场景,推荐用户可能需要的服务。

2.2服务卡片

与传统应用不同,原子化服务在设备桌面没有应用图标,是通过服务卡片的形式将重要信息展示在服务中心或者桌面。用户点击服务卡片,即可进入原子化服务的服务界面。

服务卡片的核心理念在于提供用户容易使用且一目了然的信息内容,将智慧化能力融入到服务卡片的体验中供用户选择使用,同时满足在不同终端设备上的展示和自适应。

91529822720e0cf3b346671cb3c8f516bf09aa3f.jpeg?token=991d23a1cbcf02cc1d8100b39752cbb1

值得注意的是,原子化服务和HarmonyOS应用都支持服务卡片。对于原子化服务,服务卡片是必选的,每个原子化服务至少有一个服务卡片。而对于HarmonyOS应用,服务卡片是可选配置。

说明:HarmonyOS应用,即运行在HarmonyOS系统上且具备HarmonyOS特性的应用。

2.3服务流转

原子化服务支持运行在1+8+N设备上。

“1”代表手机

“8”代表平板、智慧屏、音箱、眼镜、手表、车机、耳机、PC

“N”代表运动健康、智能家居、智慧出行、智慧办公、影音娱乐等场景延伸的泛IoT设备。

原子化服务的流转能力打破设备界限,多设备联动,使原子化服务可分可合、可流转,实现如邮件跨设备编辑、多设备协同健身、多屏游戏等分布式业务。

原子化服务的流转触发方式有两种:系统推荐流转和用户手动流转。

①系统推荐流转:用户使用原子化服务时,如果所处环境中存在使用体验更优的可选设备,则系统自动为用户推荐该设备,用户可确认是否启动流转。

0e2442a7d933c895851c71da629d74f98302004c.jpeg?token=3abd355c7b7c5d69cbcb582bd8ab0cf5

②用户手动流转:用户可以手动选择合适的设备进行流转。用户点击图标后,会调起系统提供的流转面板。面板中会展示出原子化服务的信息及可流转的设备,引导用户进行后续的流转操作。

d62a6059252dd42a06f852bbb4b55cbcc8eab840.jpeg?token=006080ac711106e33c2f58197f32b4d8

2.4服务分享

原子化服务所提供的便捷服务,可以通过接入华为分享实现近距离快速分享,使便捷服务可以精准快速的推送至接收方,降低用户触达服务的成本,提升用户体验。相比于传统的社交软件分享,分享双方无需建立好友关系,接收方无需提前安装承载服务的安装包,即可享受原生的服务体验。

用户可在原子化服务内选择分享,打开“华为分享”开关后,将原子化服务分享给附近同样打开了“华为分享”开关的好友,好友点击确认后直接启动服务。下图是通过“华为分享”分享购物类原子化服务的典型场景。

a1ec08fa513d269737873e24ef75b5f24216d88e.jpeg?token=99d81e60e047ddcf8dccfc57a71477d9

原子化服务的优势在哪里?

3.1一次开发,多端部署

对于开发者而言,原子化服务只需开发一次,便可以部署在各种HarmonyOS终端上,大大降低了开发成本。

对于传统的APP软件开发者来说,一个绕不开的烦恼就是同一个APP需要分别针对不同的设备进行适配。比如程序员在手机上开发了一款应用,针对手表需要重新适配、发布到手表的应用市场;针对大屏适配后,再发布到大屏的应用市场,严重影响了应用的开发效率和变现能力。

HarmonyOS在架构设计之初,就提出了一次构建支持多端部署的架构设计原则。HarmonyOS通过提供用户程序框架、Ability框架以及UI框架,能够保证开发的应用在多终端运行时保证一致性。多终端软件平台API具备一致性,确保用户程序的运行兼容性。如此一来,开发者仅需为不同形态的设备配置不同参数,IDE就能够自动生成支持多设备分发的APP包。APP包上架应用市场后,应用市场会自动按照设备类型进行HAP包的拆分、组装和分发,进而端到端实现了一次开发,支持多端部署的设计。

9922720e0cf3d7ca287823454c91b9006a63a98a.jpeg?token=84c3ef3abe1bdd88318918f86e7da4d6

具体流程如下:

1. 开发阶段,IDE基于包格式编译打包支持多设备的应用包。

2. 上架到应用市场。

3. 在云侧对App进行拆包,部署到CDN(Content Delivery Network,内容分发网络),包信息同步到服务分发中心。

4. 端侧运行过程中,根据自身设备类型获取相应的HAP及整体摘要信息。

3.2免安装,秒级打开

消费者不感知安装过程和卸载过程,体验全新升级。

HarmonyOS 原子化服务是轻量化服务的新物种,它提供了全新的服务和交互方式。用户在使用原子化服务时,如果服务未部署,系统将通过云端自动部署服务,部署成功后即可使用对应服务。例如,在服务中心点击服务卡片,原子化服务通过免安装能力完成部署和运行,实现服务直达的业务体验。无须用户跳转到传统的应用分发市场,搜索下载目标应用,使得在设备上部署应用更加快速。

随着分布式场景生态的丰富,原子化服务要始终以人为中心,在不同设备间流转。当用户走到大屏设备前,手机上的视频电话可以流转到大屏沟通,当用户走到电脑前,手机和电脑可以协同办公,原子化服务能够在不干扰用户的情况下完成了自动部署,同时,系统会智能地清理已部署的低频服务。

这就是原子化服务的免安装能力,一方面提升开发者上架应用的分发效率和转化率,一方面提升消费者的服务体验,减少安装过程对用户的干扰。

3.3以人为中心,分布式流转

分布式流转是实现原子化服务以人为中心的核心威廉希尔官方网站 。

随着5G和IoT设备的发展,个人拥有了多个智能设备也逐步成为主流场景。手机、笔记本、PAD、电视、运动手表、耳机、冰箱、抽油烟机、智能门锁等这类智能设备在搭载HarmonyOS系统后,通过分布式软总线连接起来,就可以形成一个超级的终端。不同的设备之间,通过重新业务组合,可以形成新的用户体验。

例如:用户坐在书桌前用手机观看视频,又希望转移到客厅,坐在沙发上用大屏继续视频的观看。业界大多采用投屏的方案实现,如DLNA、Cast+等。而原子化服务采用的分布式组件流转的威廉希尔官方网站 ,简单来讲,就是HarmonyOS系统管理着原子化服务进程实体的上下文环境(打开的文件句柄,硬件,运行状态),并对上下文数据进行跨设备的备份、传输和恢复。如下图示意:

4a36acaf2edda3ccaaf36c1cbb673e08213f920b.jpeg?token=9010e43cb0dd2e6a6fa1348249396844

对于用户来说,流转操作应当是便捷的,高效的,无副作用的。用户可以进行反复流转,应用实体能够始终维持其状态。为了保证用户交互的一致性,流转的入口由系统统一提供。对于应用程序的一致性,由开发者维护。例如:当应用从手机迁移到大屏之后,其控件、样式、布局等方面应当尽可能保持一致。但“一致”不意味着“一样”:针对手机,平板电脑或者大屏各自屏幕的特征,其用户界面应当做好相应的适配。

3.4对比App Clips和小程序,有什么优势?

App Clips和小程序本质上都是针对服务线上化、交易闭环的场景在定义产品,天然追求随处可及和服务直达的特性。原子化服务与之相比,有以下优势:

1. 原子化服务是面向未来超级终端的服务形态,覆盖更广泛的IoT设备,具备1+8+N设备兼容的API接口,这也是原子化服务相比APP Clips和小程序更具竞争力的根基。

2. 原子化服务是基于分布式全场景体验目标而设计的,也是与App Clips和小程序在设计理念上的最大不同。HarmonyOS提供了超强的分布式能力,能够让开发者快速实现一个分布式业务。

3. 原子化服务有服务中心、碰一碰、扫一扫、卡片分享、流转业务触发等相比App Clips和小程序更为丰富的入口, 支持服务快速直达。

如何开发原子化服务?

相信很多的开发者小伙伴们更为关注的是如何开发原子化服务,下面我们就来介绍。

4.1总体开发要求

1. 原子化服务的所有HAP包均需要满足免安装要求。

2. 免安装的HAP包不能超过10MB。

3. 原子化服务升级时,新版本也要保持免安装属性。

4. 目前支持免安装的HAP的设备类型有:手机、平板、智慧屏、智能穿戴,版本均需要在HarmonyOS 2版本及以上。

5. 原子化服务如果要在服务中心露出,则需要满足:

该服务对应的HAP包需要包含FA,且指定唯一的一个“MainAbility”作为用户操作入口。

需要配置一个小尺寸服务卡片(2*2规格),以及配置基础信息:如图标、名称、描述、快照等。

原子化服务的详细设计说明,可以参考官网:

https://developer.harmonyos.com/cn/docs/design/des-guides/service-overview-0000001139795693

4.2开发工具

HUAWEI DevEco Studio(以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,面向华为终端全场景多设备的一站式集成开发环境(IDE),为开发者提供工程模板创建、开发、编译、调试、发布等E2E的HarmonyOS应用开发服务。

DevEco Studio下载链接:

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

我们使用DevEco Studio工具来开发原子化服务。该工具的详细使用说明,可以参考官网:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/tools_overview-0000001053582387

4.3开发过程及注意点

1. 创建工程

(1) 运行DevEco Studio工具,在菜单栏选择File > New > New Project。

(2) 根据工程创建向导,选择需要的Ability工程模板,然后点击Next。

(3) 配置工程的基本信息。

11385343fbf2b2116058070a790e62310dd78e9c.jpeg?token=5cd39fd3857042446ecbfc30c2990963

Project Name:工程的名称,可以自定义。

Project Type:工程的类型,Service表示原子化服务,Application表示传统方式的需要安装的应用。因为要创建原子化服务工程,这里选择Service。

Device Type:根据需要选择该工程支持的设备类型。支持多选。

注:如果勾选了TV,则下面的“Show in Service Center”会消失。

Show in Service Center:是否在服务中心露出。开启此开关,则默认创建一张小尺寸(2x2)服务卡片和快照。

(4) 点击Finish,工具会自动生成示例代码和相关资源,等待工程创建完成。

2. 工程配置

(1) config.json配置文件

每个HAP的根目录下都存在一个config.json配置文件,文件内容主要涵盖以下三个方面:

应用的全局配置信息,包含应用的包名、生产厂商、版本号等基本信息。

应用在具体设备上的配置信息,包含应用的备份恢复、网络安全等能力。

HAP包的配置信息,包含每个Ability必须定义的基本属性(如包名、类名、类型以及Ability提供的能力),以及应用访问系统或其他应用受保护部分所需的权限等。

工程创建完成之后,config.json文件默认包含以下配置内容。

① 免安装配置信息

"distro": { "deliveryWithInstall": true, "moduleName": "entry", "moduleType": "entry", "installationFree": true }

installationFree为true表示该HAP是免安装的。

② 服务卡片配置信息

由于创建工程时开启了Show in Service Center开关,所以默认配置了此信息。

"abilities": [

{

"skills": [

...

],

"name": "com.example.atomicservicedemo.MainAbility",

"icon": "$media:icon",

"description": "$string:mainability_description",

"formsEnabled": true,

"label": "$string:app_name",

"type": "page",

"forms": [

{

"jsComponentName": "widget",

"isDefault": true,

"scheduledUpdateTime": "10:30",

"defaultDimension": "2*2",

"name": "widget",

"description": "$string:widget_description",

"colorMode": "auto",

"type": "JS",

"supportDimensions": [

"2*2"

],

"updateEnabled": true,

"updateDuration": 1

}

],

"launchType": "standard"

}

]

config.json文件的详细说明,可以参考官网:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/basic-config-file-elements-0000000000034463

快照

创建工程时,如果开启了Show in Service Center开关,工程创建完成后会在工程目录下自动生成快照(EntryCard)文件夹。如下图所示:

2934349b033b5bb5120ba0f7895dd230b700bc77.jpeg?token=6ec5c1b857ef20fd405f72432e0d5efb

此文件夹下默认生成了一张2x2(小尺寸)的快照(一张png格式的图片)。开发者可以将其替换为事先设计好的2x2快照,样式上应与对应的服务卡片保持一致:将新的快照拷贝到上图目录下,删除默认图片,新图片命名遵循格式“服务卡片名-2x2.png”。

说明:“服务卡片名”可以查看config.json文件的forms数组中的“name”字段。

3. 开发原子化服务

之前的推文中,我们已经介绍过服务卡片的开发,此处不再赘述,点击下方文字即可。

一文看懂HarmonyOS服务卡片运行原理和开发方法

我们重点介绍一下如何将原子化服务接入到华为分享。

JAVA工程为例,开发步骤如下:

① 新建两个idl文件,用于和华为分享进行跨进程通信

IHwShareCallback.idl文件:

interface com.huawei.hwshare.third.IHwShareCallback {

[oneway] void notifyState([in] int state);

}

IHwShareService.idl文件:

sequenceable ohos.interwork.utils.PacMapEx;

interface com.huawei.hwshare.third.IHwShareCallback;

interface com.huawei.hwshare.third.IHwShareService {

int startAuth([in] String appId, [in] IHwShareCallback callback);

int shareFaInfo([in] PacMapEx pacMapEx);

}

开发者只需将.idl文件保存至DevEco Studio项目的src/目录内,工具则会在构建应用时,在项目的generated/目录中生成IRemoteObject接口文件、Stub文件、Proxy文件。IHwShareCallback.idl文件和IHwShareService.idl文件会生成对应的IHwShareCallback.java和IHwShareService.java。

② 新建一个管理类“ShareAtomicServiceManager.java”,用于管理与华为分享的跨进程通信。

这里对外暴露一个接口:

public void shareFaInfo(String appId, PacMapEx pacMap) {

if (mContext == null) {

return;

}

mAppId = appId;

mSharePacMap = pacMap;

mHandler.removeTask(mTask);

shareFaInfo();

bindShareService();

}

appId是应用在应用市场的唯一标识,在创建项目时生成。

pacMap是需要传递给华为分享的信息。

shareFaInfo()用于分享FA信息到华为分享应用中,代码如下:

private void shareFaInfo() {

if (mShareService == null) {

return;

}

if (mHasPermission) {

HiLog.info(LABEL_LOG, LOG_FORMAT, TAG, "start shareFaInfo.");

try {

mShareService.shareFaInfo(mSharePacMap);

mSharePacMap = null;

} catch (RemoteException e) {

HiLog.error(LABEL_LOG, LOG_FORMAT, TAG, "shareFaInfo error.");

}

}

// 不使用时断开

mHandler.postTask(mTask, UNBIND_TIME);

}

其中,mTask用于执行断连的操作:

private final Runnable mTask = () -> {

if (mContext != null && mShareService != null) {

mContext.disconnectAbility(mConnection);

mHasPermission = false;

mShareService = null;

}

};

另外,绑定华为分享服务的代码如下:

private void bindShareService() {

if (mShareService != null) {

// 保证仅连一次。

return;

}

HiLog.info(LABEL_LOG, LOG_FORMAT, TAG, "start bindShareService.");

Operation operation = new Intent.OperationBuilder().withBundleName(SHARE_PKG_NAME)

.withAction(SHARE_ACTION).withFlags(Intent.FLAG_NOT_OHOS_COMPONENT).build();

Intent intent = new Intent();

intent.setOperation(operation);

mContext.connectAbility(intent, mConnection);

其中,mConnection的定义如下:

// 管理与华为分享的连接 private final IAbilityConnection mConnection = new IAbilityConnection() {@Override public void onAbilityConnectDone(ElementName elementName,IRemoteObjectiRemoteObject,int i) {HiLog.error(LABEL_LOG, LOG_FORMAT,TAG,"onAbilityConnectDonesuccess."); mHandler.postTask(()->{mShareService = new HwShareServiceProxy(iRemoteObject); try {mShareService.startAuth(mAppId, mFaCallback); } catch (RemoteException e) {HiLog.error(LABEL_LOG,LOG_FORMAT,TAG,"startAuth error."); }});} @Override public void on AbilityDisconnectDone(ElementName elementName, int i) {HiLog.info(LABEL_LOG,LOG_FORMAT,TAG,"onAbilityDisconnectDone."); mHandler.postTask(()->{mShareService=null;mHasPermission=false;});}};

mShareService.startAuth(mAppId, mFaCallback)是对appId进行验证,验证成功之后会通过mFaCallback回调。

mFaCallback的代码如下:

private final HwShareCallbackStub mFaCallback = new HwShareCallbackStub("HwShareCallbackStub") {

@Override

public void notifyState(int state) throws RemoteException {

mHandler.postTask(()->{

HiLog.info(LABEL_LOG, LOG_FORMAT, TAG, "notifyState: " + state);

if (state == 0) {

mHasPermission = true;

if (mSharePacMap != null) {

shareFaInfo();

}

}

});

}

};

state为0时表示认证通过,可以进行分享。

③ 在MainAbilitySlice.java中,调用连接华为分享的接口:

ShareAtomicServiceManager.getInstance(this).shareFaInfo("629005930163350400", getPacMap());

"629005930163350400"是appId,每个应用不一样,需要替换成应用自己的appId。getPacMap是获取需要分享的内容封装方法。

private PacMapEx getPacMap() {

PacMapEx pacMap = new PacMapEx();

pacMap.putObjectValue(ShareAtomicServiceManager.SHARING_FA_TYPE, 0);

pacMap.putObjectValue(ShareAtomicServiceManager.HM_BUNDLE_NAME, getBundleName());

pacMap.putObjectValue(ShareAtomicServiceManager.SHARING_EXTRA_INFO, "原子化服务分享额外内容");

pacMap.putObjectValue(ShareAtomicServiceManager.HM_ABILITY_NAME, MainAbility.class.getName());

pacMap.putObjectValue(ShareAtomicServiceManager.SHARING_CONTENT_INFO, "原子化服务通过华为分享的内容");

byte[] sharedContentImg = getResourceBytes(ResourceTable.Media_share_conteng_img);

pacMap.putObjectValue(ShareAtomicServiceManager.SHARING_THUMB_DATA, sharedContentImg);

byte[] iconImg = getResourceBytes(ResourceTable.Media_icon);

pacMap.putObjectValue(ShareAtomicServiceManager.HM_FA_ICON, iconImg);

pacMap.putObjectValue(ShareAtomicServiceManager.HM_FA_NAME, getString(ResourceTable.String_app_name));

return pacMap;

}

其中,常量的定义如下:

public static final String HM_FA_ICON = "ohos_fa_icon";

public static final String HM_FA_NAME = "ohos_fa_name";

public static final String HM_ABILITY_NAME = "ohos_ability_name";

public static final String HM_BUNDLE_NAME = "ohos_bundle_name";

public static final String SHARING_FA_TYPE = "sharing_fa_type";

public static final String SHARING_THUMB_DATA = "sharing_fa_thumb_data";

public static final String SHARING_CONTENT_INFO = "sharing_fa_content_info";

public static final String SHARING_EXTRA_INFO = "sharing_fa_extra_info";

常量含义说明如下:

54fbb2fb43166d220a831911f5ad0efe9252d2d2.jpeg?token=b58c2e7a2e0ac4894571dbe296ab147c

对于图片资源的解析可以参考如下:

private byte[] getResourceBytes(int resId) {

InputStream resource = null;

ByteArrayOutputStream outStream = null;

try {

resource = getResourceManager().getResource(resId);

outStream = new ByteArrayOutputStream();

byte[] buffer = new byte[1024];

int len;

while ((len = resource.read(buffer)) != -1) {

outStream.write(buffer, 0, len);

}

outStream.close();

resource.close();

return outStream.toByteArray();

} catch (IOException e) {

HiLog.error(TAG, "get resource occurs io exception!");

} catch (NotExistException e) {

HiLog.error(TAG, "it dose not exist!");

} finally {

if (resource != null) {

try {

resource.close();

} catch (IOException e) {

HiLog.error(TAG, "close input stream occurs io exception!");

}

}

if (outStream != null) {

try {

resource.close();

} catch (IOException e) {

HiLog.error(TAG, "close output stream occurs io exception!");

}

}

}

return null;

}

大家也可以参考官网上接入华为分享的开发指导:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/huawei-share-service-sharing-guidelines-0000001141302387

运行工程

在虚拟机或者真机运行创建的工程之后,会显示原子化服务的主界面(即服务界面)。但是在桌面找不到原子化服务图标,因为原子化服务在桌面是没有icon的。可以在服务中心通过搜索原子化服务的名称找到该原子化服务,将其服务卡片添加到桌面。

原子化服务接入华为分享的运行结果,需要准备两台HarmonyOS手机,且其系统软件版本不低于HarmonyOS 2。

503d269759ee3d6dad833094f0986a2b4e4ade44.jpeg?token=1b89c7f10d57161e08bf69104efa2655

以上就是本期原子化服务的介绍了,你get到了吗?期待更多的开发者小伙伴们加入我们,开启您的原子化服务开发之旅哦~

fqj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 应用
    +关注

    关注

    2

    文章

    438

    浏览量

    34161
  • HarmonyOS
    +关注

    关注

    79

    文章

    1975

    浏览量

    30205
  • 原子化服务
    +关注

    关注

    0

    文章

    31

    浏览量

    880
收藏 人收藏

    评论

    相关推荐

    开放原子园区行武汉站成功举办

    近日,开放原子园区行(武汉站)在东湖高新区成功举办。本次活动由开放原子开源基金会与武汉市经济和信息局联合主办,得到了武汉东湖新威廉希尔官方网站 开发区的大力支持,并由武汉都市圈资本市场服务基地承办
    的头像 发表于 12-19 10:49 223次阅读

    原子结构模型及特点 原子的组成及结构解析

    原子是物质的基本单位,由原子核和电子组成。原子结构模型的发展经历了几个阶段,每个阶段都有其特点和局限性。 一、原子结构模型的演变 道尔顿模型(1803年) 英国化学家约翰·道尔顿提出了
    的头像 发表于 12-17 15:22 322次阅读

    自动创建UI并解析数据

    *附件:32960_auto.rar备注:Main.vi是ui自动2.1.vi,配置文件为32960.B.ini。 目前可以实现根据配置文件自动创建控件并布局,且可以自动解析接收到的数据内容写入
    发表于 12-10 08:41

    自动创建UI并解析数据

    ,需要加判断; 4.程序运行时切换前面板/后面板会卡顿。 ******该示例较粗糙旨在抛砖引玉,希望有高人指点,优化自动创建UI并解析内容,给出更佳的方案。
    发表于 11-29 11:26

    高防服务器托管:全方位解析与应用

    高防服务器托管是指将具备高防御能力的服务器放置在专业的数据中心,由服务商提供网络带宽、硬件维护、网络安全等一系列支持服务。这种托管方式旨在为企业和个人网站提供稳定、安全的在线
    的头像 发表于 10-28 10:17 161次阅读

    开放原子开源数据库生态论坛成功举办

    以“开源生态筑基础,数字经济铸未来”为主题的2024全球数字经济大会——开放原子开源数据库生态论坛在北京成功举办。开放原子开源基金会副秘书长辛晓华出席并致辞,北京市经济和信息局信息
    的头像 发表于 09-24 10:36 464次阅读

    raksmart洛杉矶云服务器全面解析

    RAKsmart洛杉矶云服务器是一种高性能的云计算解决方案,专为满足不同业务需求而设计。以下是对RAKsmart洛杉矶云服务器的具体介绍,rak小编为您整理发布raksmart洛杉矶云服务器全面
    的头像 发表于 09-14 09:36 280次阅读

    GPU云服务器架构解析及应用优势

    GPU云服务器作为一种高性能计算资源,近年来在人工智能、大数据分析、图形渲染等领域得到了广泛应用。它结合了云计算的灵活性与GPU的强大计算能力,为企业和个人用户提供了一种高效、便捷的计算解决方案。下面我们将从架构解析和威廉希尔官方网站 优势两个方面来详细了解GPU云
    的头像 发表于 08-14 09:43 391次阅读

    鸿蒙原生应用元服务开发-设备管理USB服务开发概览

    。 USB Service:主要实现HAL层数据的接收、解析、分发以及对设备的管理等。 USB HAL层:提供给用户态可直接调用的驱动能力接口。 本文引用参考HarmonyOS官方API9。
    发表于 06-11 10:26

    深度解析电化学储能最新官方数据

    深度解析电化学储能最新官方数据 近日,中国电力企业联合会发布了《2023年度电化学储能电站行业统计数据》(以下简称“统计数据”),数据依托于国家能源局批准建设的国家电化学储能电站安全监测信息平台
    发表于 05-20 11:29 578次阅读
    深度<b class='flag-5'>解析</b>电化学储能最新<b class='flag-5'>官方</b>数据

    使用STM32F407正点原子的开发板作为客户端,电脑作为服务器端时程序总是死在接收函数上是为什么?

    生成的工程可以ping通,使用STM32F407正点原子的开发板作为客户端,电脑作为服务器端时程序总是死在接收函数上,把接收函数屏蔽后程序正常也能于服务器连接上。请大神指教,是否是哪里参数配置有问题导致这样现象?
    发表于 04-29 06:54

    开放原子开源大赛OpenHarmony智能应用生态挑战赛决赛路成功举办

    软件定义世界,开源共筑未来。在江苏省工信厅、市工信局、开放原子开源基金会及相关单位的指导和支持下,4月19-20日,由中软国际教育科技集团联合举办的开放原子开源大赛-OpenHarmony智能应用生态挑战赛决赛路演在盐城市大数
    的头像 发表于 04-24 09:48 417次阅读

    奔驰将放弃电动?奔驰官方辟谣!

    中工汽车网讯,3月6日,从梅赛德斯-奔驰官方获悉,关于近期网络上传播的“奔驰将放弃电动”的消息严重不实。
    的头像 发表于 03-07 16:13 1500次阅读

    LED树木灯光亮方案的设计与控制威廉希尔官方网站 解析

    LED树木灯光亮方案的设计与控制威廉希尔官方网站 解析
    的头像 发表于 01-24 17:54 801次阅读
    LED树木灯光亮<b class='flag-5'>化</b>方案的设计与控制威廉希尔官方网站
<b class='flag-5'>解析</b>

    PLC从HTTP服务端获取JSON文件,解析数据到寄存器

    文件提交给HTTP的服务端; 服务端有返回的JSON,或者GET命令获取到的JSON,网关进行解析后将数据写入到PLC寄存器。 本文主要描述通过GET命令获取数据,解析到西门子PLC的
    发表于 01-24 09:47