当前位置: 首页 > news >正文

鸿蒙开发接口定制管理:【@ohos.enterpriseDeviceManager (企业设备管理)】

企业设备管理

说明:

本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import enterpriseDeviceManager from '@ohos.enterpriseDeviceManager';

enterpriseDeviceManager.activateAdmin

activateAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType, callback: AsyncCallback): void

以异步方法根据给定的包名和类名激活设备管理员应用,使用Callback形式返回是否激活成功。

需要权限:  ohos.permission.MANAGE_ADMIN

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
admin[Want]设备管理员应用
enterpriseInfo[EnterpriseInfo]设备管理员应用的企业信息
type[AdminType]激活的设备管理员类型
callbackAsyncCallbackcallback方式返回是否激活成功

示例

let wantTemp = {bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility",
};
let enterpriseInfo = {name: "enterprise name",description: "enterprise description"
}
enterpriseDeviceManager.activateAdmin(wantTemp, enterpriseInfo, enterpriseDeviceManager.AdminType.ADMIN_TYPE_NORMAL, (error, result) => {if (error != null) {console.log("error occurs" + error);return; }console.log("result is " + result);
});

enterpriseDeviceManager.activateAdmin

activateAdmin(admin: Want, enterpriseInfo: EnterpriseInfo, type: AdminType): Promise

以异步方法根据给定的包名和类名激活设备管理员应用,使用Promise形式返回是否激活成功。

需要权限:  ohos.permission.MANAGE_ADMIN

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
admin[Want]设备管理员应用
enterpriseInfo[EnterpriseInfo]设备管理员应用的企业信息
type[AdminType]激活的设备管理员类型

返回值:

类型说明
PromisePromise形式返回是否激活成功

示例

let wantTemp = {bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility",
};
let enterpriseInfo = {name: "enterprise name",description: "enterprise description"
}
enterpriseDeviceManager.activateAdmin(wantTemp, enterpriseInfo, enterpriseDeviceManager.AdminType.ADMIN_TYPE_NORMAL)
.then((result) => {console.log("result is " + result);
}).catch(error => {console.log("error occurs" + error);
});

enterpriseDeviceManager.deactivateAdmin

deactivateAdmin(admin: Want, callback: AsyncCallback): void

以异步方法根据给定的包名和类名将设备普通管理员应用去激活,使用Callback形式返回是否去激活成功。

需要权限:  ohos.permission.MANAGE_ADMIN

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
admin[Want]普通设备管理员应用
callbackAsyncCallbackcallback方式返回是否去激活成功

示例

let wantTemp = {bundleName: "bundleName",abilityName: "abilityName",
};
enterpriseDeviceManager.deactivateAdmin(wantTemp, (error, result) => {if (error != null) {console.log("error occurs" + error);return; }console.log("result is " + result);
});

enterpriseDeviceManager.deactivateAdmin

deactivateAdmin(admin: Want): Promise

以异步方法根据给定的包名和类名将设备普通管理员应用去激活,使用Promise形式返回是否去激活成功。

需要权限:  ohos.permission.MANAGE_ADMIN

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
admin[Want]普通设备管理员应用

返回值:

类型说明
PromisePromise形式返回是否激活成功

示例

let wantTemp = {bundleName: "bundleName",abilityName: "abilityName",
};
enterpriseDeviceManager.deactivateAdmin(wantTemp).then((result) => {console.log("result is " + result);
}).catch(error => {console.log("error occurs" + error);
});

enterpriseDeviceManager.deactivateSuperAdmin

deactivateSuperAdmin(bundleName: String, callback: AsyncCallback): void

以异步方法根据给定的包名将设备超级管理员应用去激活,使用Callback形式返回是否去激活成功。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
bundleNameString超级设备管理员应用的包名
callbackAsyncCallbackcallback方式返回是否去激活成功

示例

let bundleName = "com.example.myapplication";
enterpriseDeviceManager.deactivateSuperAdmin(bundleName, (error, result) => {if (error != null) {console.log("error occurs" + error);return; }console.log("result is " + result);
});

enterpriseDeviceManager.deactivateSuperAdmin

deactivateSuperAdmin(bundleName: String): Promise

以异步方法根据给定的包名将设备超级管理员应用去激活,使用Promise形式返回是否去激活成功。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
bundleNameString超级设备管理员应用的包名

返回值:

类型说明
PromisePromise形式返回是否激活成功

示例

let bundleName = "com.example.myapplication";
enterpriseDeviceManager.deactivateSuperAdmin(bundleName).then((result) => {console.log("result is " + result);
}).catch(error => {console.log("error occurs" + error);
});

enterpriseDeviceManager.isAdminAppActive

isAdminAppActive(admin: Want, callback: AsyncCallback): void

以异步方法根据给定的包名和类名判断设备管理员应用是否被激活,使用Callback形式返回是否处于激活状态。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
admin[Want]设备管理员应用
callbackAsyncCallbackcallback方式返回是否处于激活状态

示例

let wantTemp = {bundleName: "bundleName",abilityName: "abilityName",
};
enterpriseDeviceManager.isAdminAppActive(wantTemp, (error, result) => {if (error != null) {console.log("error occurs" + error);return; }console.log("result is " + result);
});

enterpriseDeviceManager.isAdminAppActive

isAdminAppActive(admin: Want): Promise

以异步方法根据给定的包名和类名判断设备管理员应用是否被激活,使用Promise形式返回是否处于激活状态。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
admin[Want]设备管理员应用

返回值:

类型说明
PromisePromise形式返回是否处于激活状态

示例

let wantTemp = {bundleName: "bundleName",abilityName: "abilityName",
};
enterpriseDeviceManager.isAdminAppActive(wantTemp).then((result) => {console.log("result is " + result);
}).catch(error => {console.log("error occurs" + error);
});

enterpriseDeviceManager.isSuperAdmin

isSuperAdmin(bundleName: String, callback: AsyncCallback): void

以异步方法根据给定的包名判断设备超级管理员应用是否被激活,使用Callback形式返回是否处于激活状态。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
bundleNameString设备管理员应用
callbackAsyncCallbackcallback方式返回是否处于激活状态

示例

let bundleName = "com.example.myapplication";
enterpriseDeviceManager.isSuperAdmin(bundleName, (error, result) => {if (error != null) {console.log("error occurs" + error);return; }console.log("result is " + result);
});

enterpriseDeviceManager.isSuperAdmin

isSuperAdmin(bundleName: String): Promise

以异步方法根据给定的包名判断设备超级管理员应用是否被激活,使用Promise形式返回是否处于激活状态。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数

参数名类型必填说明
bundleNameString超级设备管理员应用

返回值:

类型说明
PromisePromise形式返回是否处于激活状态

示例

let bundleName = "com.example.myapplication";
enterpriseDeviceManager.isSuperAdmin(bundleName).then((result) => {console.log("result is " + result);
}).catch(error => {console.log("error occurs" + error);
});

enterpriseDeviceManager.getDeviceSettingsManager

getDeviceSettingsManager(callback: AsyncCallback): void

获取DeviceSettingsManager对象,使用callback形式返回DeviceSettingsManager对象。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数:

参数名类型必填说明
callbackAsyncCallbackcallback方式返回DeviceSettingsManager对象

示例:

let wantTemp = {bundleName: "bundleName",abilityName: "abilityName",
};
enterpriseDeviceManager.getDeviceSettingsManager((error, mgr) => {if (error != null) {console.log("error occurs" + error);return; }mgr.setDateTime(wantTemp, 1526003846000, (error, value) => { if (error != null) {console.log(error);} else {console.log(value);}});
});

enterpriseDeviceManager.getDeviceSettingsManager

getDeviceSettingsManager(): Promise

获取DeviceSettingsManager对象,使用Promise形式返回DeviceSettingsManager对象。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

返回值:

类型说明
PromisePromise方式返回DeviceSettingsManager对象

示例:

let wantTemp = {bundleName: "bundleName",abilityName: "abilityName",
};
mgr.getDeviceSettingsManager().then((mgr) => {mgr.setDateTime(wantTemp, 1526003846000).then((value) => {console.log(value);}).catch((error) => {console.log(error);})
}).catch((error) => {console.log(error);
})

enterpriseDeviceManager.setEnterpriseInfo

setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo, callback: AsyncCallback): void

设置设备管理员应用的企业信息,使用callback形式返回是否设置成功。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数:

参数名类型必填说明
admin[Want]设备管理员应用
enterpriseInfo[EnterpriseInfo]设备管理员应用的企业信息
callbackAsyncCallbackcallback方式返回是否设置企业信息成功

示例:

let wantTemp = {bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility",
};
let enterpriseInfo = {name: "enterprise name",description: "enterprise description"
}
enterpriseDeviceManager.setEnterpriseInfo(wantTemp, enterpriseInfo)
.then((result) => {console.log("result is " + result);
}).catch(error => {console.log("error occurs" + error);
});

enterpriseDeviceManager.setEnterpriseInfo

setEnterpriseInfo(admin: Want, enterpriseInfo: EnterpriseInfo): Promise

设置设备管理员应用的企业信息,使用Promise形式返回是否设置成功。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数:

参数名类型必填说明
admin[Want]设备管理员应用
enterpriseInfo[EnterpriseInfo]设备管理员应用的企业信息

返回值:

类型说明
Promise;Promise方式返回是否设置企业信息成功

示例:

let wantTemp = {bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility",
};
let enterpriseInfo = {name: "enterprise name",description: "enterprise description"
}
enterpriseDeviceManager.setEnterpriseInfo(wantTemp, enterpriseInfo)
.then((result) => {console.log("result is " + result);
}).catch(error => {console.log("error occurs" + error);
});

enterpriseDeviceManager.getEnterpriseInfo

getEnterpriseInfo(admin: Want, callback: AsyncCallback): void

获取设备管理员应用的企业信息,使用callback形式返回设备管理员应用的企业信息。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数:

参数名类型必填说明
admin[Want]设备管理员应用
callbackAsyncCallback<[EnterpriseInfo]>callback方式返回设备管理员应用的企业信息

示例:

let wantTemp = {bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility",
};
enterpriseDeviceManager.getEnterpriseInfo(wantTemp, (error, result) => {if (error != null) {console.log("error occurs" + error);return; }console.log(result.name);console.log(result.description);
});

enterpriseDeviceManager.getEnterpriseInfo

getEnterpriseInfo(admin: Want): Promise

获取设备管理员应用的企业信息,使用Promise形式返回设备管理员应用的企业信息。

系统能力:  SystemCapability.Customation.EnterpriseDeviceManager

参数:

参数名类型必填说明
admin[Want]设备管理员应用

返回值:

类型说明
Promise<[EnterpriseInfo]>Promise方式返回设备管理员应用的企业信息对象

示例:

let wantTemp = {bundleName: "com.example.myapplication",abilityName: "com.example.myapplication.MainAbility",
};
enterpriseDeviceManager.getEnterpriseInfo(wantTemp).then((result) => {console.log(result.name);console.log(result.description);
}).catch(error => {console.log("error occurs" + error);
});

EnterpriseInfo

设备管理员应用的企业信息

系统能力:  以下各项对应系统能力均为SystemCapability.Customation.EnterpriseDeviceManager

名称读写属性类型必填描述
name只读string表示设备管理员应用所属企业的名称。
description只读string表示设备管理员应用所属企业的描述。

AdminType

设备管理员应用的管理员类型。

系统能力:  以下各项对应系统能力均为SystemCapability.Customation.EnterpriseDeviceManager

名称默认值说明
ADMIN_TYPE_NORMAL0x00普通管理员
ADMIN_TYPE_SUPER0x01超级管理员

相关文章:

鸿蒙开发接口定制管理:【@ohos.enterpriseDeviceManager (企业设备管理)】

企业设备管理 说明&#xff1a; 本模块首批接口从API version 9开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import enterpriseDeviceManager from ohos.enterpriseDeviceManager;enterpriseDeviceManager.activateAdmin activate…...

Pytorch实用教程:多分类任务中使用的交叉熵损失函数nn.CrossEntropyLoss

nn.CrossEntropyLoss 在 PyTorch 中是处理多分类问题的常用损失函数,它是两个函数 nn.LogSoftmax 和 nn.NLLLoss(Negative Log Likelihood Loss)的组合。使用这个损失函数可以直接从模型得到原始的输出分数(logits),而不需要单独对输出进行 Softmax 处理。下面详细介绍这…...

智慧冶金:TSINGSEE青犀AI+视频技术助力打造高效、安全的生产环境

一、建设背景 冶金行业因其特殊的生产环境和工艺要求&#xff0c;对安全生产、环境保护以及质量监控等方面有着极高的要求。因此&#xff0c;将视频智能监控技术引入冶金行业&#xff0c;不仅有助于提升生产效率&#xff0c;更能有效保障生产安全&#xff0c;降低事故风险。 …...

【ARM+Codesys案例】基于全志T3+Codesys软PLC的3C点胶边缘控制解决方案:整合了运动控制、视觉、激光测高等技术

视觉精密点胶控制方案 针对直交型机构的平面点涂胶应用&#xff0c;基于CODESYS软件平台开发的一站式PC型控制器解决方案&#xff0c;包含运动控制器硬件和点胶应用软件。方案整合了运动控制、视觉、激光测高等技术&#xff0c;高效精密的控制胶水点涂于产品表面或内部&#x…...

描述JSP的内置对象

JSP&#xff08;JavaServer Pages&#xff09;内置对象&#xff08;也称为隐式对象或预定义对象&#xff09;是JSP容器为每个页面提供的Java对象&#xff0c;开发者可以直接在JSP页面中使用它们&#xff0c;而无需显式声明。这些内置对象提供了对JSP页面运行环境信息的快速访问…...

MongoDB CRUD操作:可重试写入

MongoDB CRUD操作&#xff1a;可重试写入 文章目录 MongoDB CRUD操作&#xff1a;可重试写入使用的先决条件部署的限制支持的存储引擎3.6 MongoDB 驱动程序MongoDB 版本写确认 可重试写入和多文档事务启用可重试写入MongoDB驱动mongosh 可重试的写操作行为持续的网络错误故障切…...

Microsoft Outlook Lite 引入短信功能

随着科技的不断进步&#xff0c;我们的沟通方式也在不断演变。微软最新推出的 Outlook Lite 应用&#xff0c;不仅为我们提供了一个轻量级的电子邮件管理工具&#xff0c;现在更是带来了一项令人兴奋的新功能——短信服务。 Outlook Lite&#xff1a;轻量级&#xff0c;功能全…...

Redis的数据结构以及对应的使用场景

Redis支持的数据结构包括字符串(String)、列表(List)、哈希(Hash)、集合(Set)、有序集合(Sorted Set)等。这些数据结构在应用开发中扮演着重要的角色&#xff0c;它们各自适用于不同的使用场景和需求。以下是对Redis各数据结构的详细分析及它们的使用场景&#xff1a; 字符串(S…...

Vue中如何获取dom元素?

在Vue中&#xff0c;通常我们不直接操作DOM元素&#xff0c;因为Vue是一个声明式渲染的框架&#xff0c;它鼓励我们使用数据驱动视图的方式来更新UI。然而&#xff0c;在某些情况下&#xff0c;你可能需要直接访问DOM元素。在这种情况下&#xff0c;你可以使用Vue的ref属性和$r…...

前端最新面试题(基础模块HTML/CSS/JS篇)

目录 一、HTML、HTTP、WEB综合问题 1 前端需要注意哪些SEO 2 img的title和alt有什么区别 3 HTTP的几种请求方法用途 4 从浏览器地址栏输入url到显示页面的步骤 5 如何进行网站性能优化 6 HTTP状态码及其含义 7 语义化的理解 8 介绍一下你对浏览器内核的理解? 9 html…...

matlab模拟太阳耀斑喷发

代码 function simulate_solar_flare% 参数设置gridSize 100; % 网格大小timeSteps 200; % 时间步数dt 0.1; % 时间步长% 初始化网格[X, Y] meshgrid(linspace(-5, 5, gridSize));Z zeros(size(X));% 设置耀斑初始位置和强度flareCenter [0, 0]; % 耀斑中心位置flareRad…...

WebStorm 2024.1.1 Mac激活码 前端开发工具集成开发环境(IDE)

WebStorm 2024 Mac激活码 搜索Mac软件之家下载WebStorm 2024 Mac激活版 WebStorm 2024 功能介绍 WebStorm 2024是由JetBrains公司开发的一款专为前端开发设计的集成开发环境&#xff08;IDE&#xff09;。它提供了一整套功能&#xff0c;旨在提高Web开发者的工作效率和代码质…...

多项目的.net core解决方案(项目间引用)如何使用Docker部署

解决方案内部项目之间引用很正常&#xff0c;但我docker不是很熟&#xff0c;对一些基础命令含义还理解不深入&#xff0c;部署引用其他项目的项目总不成功。搜到了一篇非常适合初学者&#xff0c;从dockerfile命令讲解&#xff0c;到解决引用其他项目时如何docker部署的文章。…...

使用raise语句抛出异常

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 如果某个函数或方法可能会产生异常&#xff0c;但不想在当前函数或方法中处理这个异常&#xff0c;则可以使用raise语句在函数或方法中抛出异常。rai…...

vue组件中data为什么必须是一个函数?

在 Vue 中&#xff0c;组件的 data 必须是一个函数&#xff0c;而不是一个对象&#xff0c;这是为了保证每个组件实例都可以维护一份被返回对象的独立的拷贝。如果 data 是一个对象&#xff0c;那么所有的组件实例将共享同一个引用&#xff0c;导致一个组件实例的数据变化会影响…...

10-Django项目--Ajax请求

目录 Ajax请求 简单示范 html 数据添加 py文件 html文件 demo_list.html Ajax_data.py 图例 Ajax请求 简单示范 html <input type"button" id"button-one" class"btn btn-success" value"点我"> ​ ​ <script>/…...

二进制安装Prometheus

从 https://prometheus.io/download/ 下载相应版本&#xff0c;安装到服务器上官网提供的是二进制版&#xff0c;解压就 能用&#xff0c;不需要编译 1、下载软件 [rootlocalhost ~]# wget -c https://github.com/prometheus/prometheus/releases/download/v2.45.5/prometheus…...

Git配置SSH-Key

git config --global user.name 沈健 git config --global user.email sjshenjianoutlook.com初次使用 SSH 协议进行代码克隆、推送等操作时&#xff0c;需按下述提示完成 SSH 配置 1 生成 RSA 密钥 ssh-keygen -t rsa2. 获取 RSA 公钥内容&#xff0c;并配置到 SSH公钥 中 …...

处理多语言文案的工具

处理多语言文案的工具 离线的处理多语言文案的工具 用于开发软件过程中&#xff0c;加速多语言文案的导出&#xff0c;导入&#xff0c;校对&#xff0c;复用已经翻译的多语言文案 SDL Trados Studio&#xff1a;一款专业的离线多语言翻译管理工具&#xff0c;支持导入、导出…...

手把手教你MMDetection实战

论文下载地址:点击这里 本页提供有关MMDetection用法的基本教程。有关安装说明,请参阅INSTALL.md。 目录 预训练模型的推论训练模型有用的工具如何预训练模型的推论 我们提供测试脚本以评估整个数据集(COCO,PASCAL VOC等),还提供一些高级api,以便更轻松地集成到其他项…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...