HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3

基础认证题库请移步:HarmonyOS应用开发者基础认证题库


注:有读者反馈,题库的代码块比较多,打开文章时会卡死。所以笔者将题库拆分,单选题20个为一组,多选题10个为一组,题库目录如下,读者可以按需跳转。如果对您的阅读产生不便,笔者在这里向大家说声抱歉,请各位读者原谅。完整的md文档,等读者把题库整理完,会将网盘链接发出。

序号目录:

  • 单选题
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号1
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号2
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号3
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 单选题序号4
  • 多选题
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号1
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号2
    HarmonyOS应用开发者高级认证,Next版本发布后最新题库 - 多选题序号3

注:题目是乱序,每次考试,选项的顺序都不同

单选题题库 - 序号3


41、在方舟字节码的函数调用规范中,前三个参数表示的含义分别是

​ A、new.Target、this、函数对象本身

​ B、this、函数对象本身、new.Target

​ C、new.Target、函数对象本身、this

D、函数对象本身、new.Target、this

方舟字节码基本原理-学习ArkTS语言-基础入门 | 华为开发者联盟 (huawei.com)


42、下面关于方舟字节码格式IMM16_ID16_IMM8描述正确的是

A、8位操作码,16位立即数,16位id,8位立即数

​ B、8位操作码,16位立即数,2个8位寄存器

​ C、8位操作码,16位立即数,16位id,8位寄存器

​ D、16位前缀操作码,16位立即数,8位寄存器

方舟字节码基本原理-学习ArkTS语言-基础入门 | 华为开发者联盟 (huawei.com)


43、以下关于垂直滚动Grid组件使用cachedCount属性的说明正确的是**(题目选项有误)**

A、设置cachedCount为1,则Grid在显示范围上下各缓存1个Gridltem

​ B、设置cachedCount为1,则Grid在显示范围上下各缓存1行Gridltem

​ C、设置cachedCount为1,则Grid在显示范围下方缓存1行Gridltem

​ D、设置cachedCount为1,则Grid在显示范围下方缓存1个Gridltem

List-容器组件-基于ArkTS的声明式开发范式-ArkTS组件-ArkUI(方舟UI框架)-应用框架 | 华为开发者联盟 (huawei.com)


44、从桌面冷启动如下应用代码,点击Change按钮5次,整个过程中,代码中的2条log依次出现的次数是:(不确定,把所有选项列出)

class Data {num: numbertype: stringconstructor(num: number, type: string) {this.num = num;this.type = type;}
}@Reusable
@Component
struct Item {@State data: Data | undefined = undefined;aboutToAppear(): void {console.log("Demo log1");}aboutToReuse(params: ESObject): void {console.log("Demo 1og2");this.data = params.data}build() {Text("num = " + this.data?.num + ", type = " + this.data?.type)}
}@Entry
@Component
struct Index {data1: Data = new Data(1, "type1");data2: Data = new Data(2, "type2");@State data: Data = this.data1build() {Column() {if (this.data.type == "type1") {Item({ data: this.data }).reuseId(this.data.type)} else {Item({ data: this.data }).reuseId(this.data.type)}Button('Change').onClick(() => {if (this.data === this.data1) {this.data = this.data2} else {this.data = this.data1}})}}
}

A、2,4

B、6,0

C、1,0

D、1,5


45、以下哪份代码可以实现下图Grid布局
45.jpg

//	A、通过设置Gridltem的columnStart和columnEnd
@Entry
@Component
struct GridExample3 {numbers: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']scroller: Scroller = new Scroller()build() {Column({ space: 5 }) {Grid(this.scroller) {ForEach(this.numbers, (day: string) => {if (day === '0' || day === '5') {GridItem() {Text(day).fontSize(16).backgroundColor(0xF9CF93).width('100%').height(80).textAlign(TextAlign.Center)}.columnStart(1).columnEnd(4)} else {GridItem() {Text(day).fontSize(16).backgroundColor(0xF9CF93).width('100%').height(80).textAlign(TextAlign.Center)}}}, (day: string) => day)}.columnsTemplate('1fr 1fr 1fr 1fr').columnsGap(10).rowsGap(10).scrollBar(BarState.Off).width('100%').backgroundColor(0xFAEEE0).height(350)}}
}
//	B、通过设置不同Gridltem的宽度
@Entry
@Component
struct GridExample3 {numbers: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']scroller: Scroller = new Scroller()columnGap: number = 10gridItemWidth: number = 80build() {Column({ space: 5 }) {Grid(this.scroller) {ForEach(this.numbers, (day: string) => {if (day === '0' || day === '5') {GridItem() {Text(day).fontSize(16).backgroundColor(0xF9CF93).width(this.gridItemWidth * 4 + this.columnGap * 3).height(80).textAlign(TextAlign.Center)}} else {GridItem() {Text(day).fontSize(16).backgroundColor(0xF9CF93).width(this.gridItemWidth).height(80).textAlign(TextAlign.Center)}}}, (day: string) => day)}.columnsTemplate('1fr 1fr 1fr 1fr').columnsGap(this.columnGap).rowsGap(10).scrollBar(BarState.Off).width('100%').backgroundColor(0xFAEEE0).height(350)}}
}
//	C、通过GridLayoutOptions
@Entry
@Component
struct GridExample3 {numbers: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']scroller: Scroller = new Scroller()layoutOptions1: GridLayoutOptions = {regularSize: [1, 1],irregularIndexes: [0, 5],}build() {Column({ space: 5 }) {Grid(this.scroller, this.layoutOptions1) {ForEach(this.numbers, (day: string) => {GridItem() {Text(day).fontSize(16).backgroundColor (0xF9CF93).width('100%').height(80).textAlign(TextAlign.Center)}}, (day: string) => day)}.columnsTemplate('1fr 1fr 1fr 1fr').columnsGap(10).rowsGap(10).scrollBar(BarState.Off).width('100%').backgroundColor(0xFAEEE0).height(350)}.align(Alignment.Center)}
}

​ A、通过设置Gridltem的columnStart和columnEnd

​ B、通过设置不同Gridltem的宽度

C、通过GridLayoutOptions


46、已知下列代码PageOne页面为navigation中的某一子页面,依次点击PageOne页面中toPageTwo按钮,PageTwo页面中toPageOne按钮,此时获取当前页面的路由栈数量为多少(不确定,把所有选项列出)

// PageOne.ets
@Component
export struct PageOneTmp {@Consume('pageInfos') pageInfos: NavPathStack;build() {NavDestination() {Column() {Button('toPageTwo', { stateEffect: true, type: ButtonType.Capsule }).width('80%').height(40).margin(20).onClick(() => {this.pageInfos.pushPathByName('pageTwo',"")})}.width('100%').height('100%')     }.title('pageOne').onBackPressed(() => {const popDestinationInfo = this.pageInfos.pop()console.log('pop返回值' + JSON.stringify(popDestinationInfo))return true})}
}
// PageTwo.ets
export class Pages{names: string = ""values: NavPathStack | null = null
}@Builder
export function pageTwoTmp(info: Pages){NavDestination() {Column(){Button('toPageOne', { stateEffect: true, type: ButtonType.Capsule }).width('80%').height(40).margin(20).onClick(() => {(info.values as NavPathStack).pushPathByName('pageOne', null)})}.width('100%').height('100%')}.title('pageTwo').onBackPressed(() => {(info.values as NavPathStack).pop()return true})
}

A、1

B、2

C、3

D、4


47、在HarmonyOS应用开发中,当开发者遇到需要分析Release版本应用的崩溃或异常堆栈信息时,为了准确地将堆栈追踪信息对应到源代码的具体位置,以下哪个描述是正确的做法或理解

​ A、开发者需手动将Release构建生成的so文件与源代码进行映射,配合第三方工具进行堆栈信息还原,虽然过程繁琐,但最终能定位到问题代码位置

​ B.因为Release应用经过优化和去除Debug信息 ,直接从堆栈跟踪到源代码行号是不可能的,开发者只能依靠日志信息手工推测问题所在

C、DevEco Studio提供的Release应用堆栈解析功能,要求开发者在遇到问题时,需上传构建产物中的特定文件(如so、 source map、nameCache等)到指定工具或界面,借助这些文件辅助解析堆栈信息,实现从Release堆栈到源码的映射,便于快速定位问题

​ D、DevEco Studio通过集成的Release应用堆栈解析功能,自动利用构建时产生的so文件、source map文件、nameCache文件等,无需额外操作即可直接在Release应用中提供详细的源码级堆栈追踪信息

堆栈轨迹分析-故障分析-应用/服务调试-DevEco Studio | 华为开发者联盟 (huawei.com)


48、小李正在使用DevEco Studio进行Harmony0S应用的开发工作,他需要对一个频繁被调用的函数calculateData()进行重构,为了帮助小李高效地找到calculateData()函数的所有引用位置,并确保重构时考虑周全,以下哪个步骤是正确的使用DevEco Studio的“Find Usages”功能的操作方法

​ A、小李应将光标置于calculateData()函数的名称上,按下Ctrl + Shift+ F(macOS为Command + Shift + F)全局搜索该函数名,然后在搜索结果中筛选出真正的调用位置。

​ B、小李应该在菜单栏中选择“Navigate” > “Class”来打开类浏览器, 从中找到calculateData()函数, 并在此界面中手动检查所有引用。

C、小李只需将光标定位在calculateData()函数名上,右键点击并选择“Find Usages",或者直接使用快捷键Alt+ F7(macOS为Option+ F7),DevEco Studio会自动列出该函数在项目中的所有引用位置。

​ D、小李应当在项目目录树中找到calculateData()函数所在的文件, 直接双击打开文件,然后逐行扫描代码以手动查找该函数的所有调用位置。


49、在使用DevEco Studio的Profiler进行HarmonyOS应用或服务性能分析时,面对应用出现卡顿、加载慢等性能瓶颈问题,以下哪个描述最贴切地说明了“Time场景分析任务”的功能及其对开发者优化流程的帮助

​ A、Time场景分析任务仅提供应用/服务运行时的CPU使用率概览,帮助开发者粗略判断性能瓶颈,但不提供深入分析

​ B、Time场景分析任务专注于内存管理,帮助开发者监控应用内存泄漏,但对解决卡顿和加载耗时问题帮助有限

​ C、Time场景分析任务在应用运行时,通过显示所有函数执行的耗时排序列表,辅助开发者手动对比寻找耗时最短的函数进行优化

D、Time场景分析任务展示热点区域内的CPU和进程级调用栈耗时情况,支持代码跳转,助力开发者快速定位并优化耗时较长的代码段

基础耗时分析:Time分析-性能分析-DevEco Studio | 华为开发者联盟 (huawei.com)


50、开发者小林正在使用DevEco Studio开发一款HarmonyOS应用, 并在真机上进行调试。他在运行应用的过程中突然发现一处UI布局需要微调,希望在不中断当前应用运行的情况下看到调整效果,基于DevEco Studio提供的Hot Reload (热重载)能力,以下哪一种做法能让小林最有效地实现他的需求

​ A、继续运行应用,手动重启应用后检查布局是否符合预期

B、在不关闭应用的情况下,直接修改代码并保存,借助Hot Reload功能在真机上实时查看布局调整的效果

​ C、使用模拟器替代真机进行调试,因为Hot Reload仅在模拟器上支持代码改动的即时生效

​ D、立即停止应用,修改代码后重新编译并部署到真机上

Hot Reload-代码调试-应用/服务调试-DevEco Studio | 华为开发者联盟 (huawei.com)


51、项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在DevEco studio中设置不同的构建配置,以生成针对不同设备的hap包?(不确定,把所有选项列出)

A、在工程级别build-profile.json5定义多个product,在每个product的config/distributionFilter中定义不同的设备类型

B、在工程级别build-profile.json5定义多个product,在每个product的config/deviceType中定义不同的设备类型

C、在模块级别build-profile.json5定义多个target,在每个target的config/deviceType中 定义不同的设备类型

D、在模块级别build-profile.json5定义多个target,在每个target的config/distributionFilter中定义不同的设备类型


52、一个复杂的项目,该项目不仅包含主入口模块(Entry Module),还有多个特性的功能模块(Feature Modules/HSP),并且这些模块存在着相互调用关系。为了确保在调试过程中能够完整地测试所有交互逻辑,需要将涉及到的所有模块的HAP包都部署到目标设备上。请从以下选项中选择正确的操作步骤来配置DevEco Studio,以便一次性部署和调试项目中的多个模块

​ A、无需特殊配置,DevEco Studio会自动检测到项目中的所有模块依赖,并在每次调试运行时自动部署所有相关HAP包。

​ B、在项目结构界面手动选择每个模块,单独编译并逐一将生成的HAP包通过HDC命令推送到设备上。

C、进入“Run > Edit Configurations”菜单,“Deploy Multi Hap”选项卡下,勾选“Deploy Multi Hap Packages”,随后在列表中选择需要部署的模块。

​ D、直接点击运行按钮,DevEco Studio会弹出对话框询问需要部署哪些模块,从中选择需要的模块后开始调试。

自定义运行/调试配置-应用/服务调试-DevEco Studio | 华为开发者联盟 (huawei.com)


53、项目中涉及多个类的继承与重写。为了快速实现子类对父类方法的重写,小华想利用DevEco Studio提供的便捷功能来提高开发效率。他了解到,通过一个特定的操作流程,可以直接依据父类的模板生成子类中需要重写的方法代码,而无需手动编写完整方法体,在DevEco Studio中,如何正确使用Override Methods功能来快速生成子类需要重写的方法代码

​ A、将光标放置于任何代码行,按下Ctrl+B,然后在弹出菜单中选择Override Methods,之后勾选需要重写的方法并确认。

​ B、在项目结构视图中找到目标子类,双击打开后直接在代码编辑区输入重写方法的签名,DevEco Studio将自动完成剩余代
码。

​ C、通过菜单栏File > Settings,配置Override Methods快捷方式,之后在代码中仅需选中父类方法名,即可自动在子类中生
成重写代码。

D、将光标定位到子类的定义处,按下Ctrl+O(或右键单击选择Generate... > Override Methods),在弹出的对话框中选择 要重写的方法,点击OK完成生成。


54、下面的配置存在有几处错误()

//	module. json5配置文件:
{"module": {"name": "entry",//	==========================	缺少type字段// ..."abilities": [{"name": "EntryAbility","srcEntry": "./ets/entryability/EntryAbility.ets",// ..."skills": [{"entities": ["entity.system.home"],"actions": ["ohos.want.action.home"]}],"metadata": [{"name": "ohos.entry.shortcuts","resource": "$profile:shortcuts_config"}]}]}
}
//	在/resources/base/profile/目录下配置shortcuts_config.json配置文件:
{"shortcuts": [{"shortcutId": "id_test1",//	==========================	【shortcutLabel】字符串不符合匹配规则"label": "shortcutLabel","icon": "$media:shortcutIcon","wants": [{"bundleName": "com.ohos.hello","moduleName": "entry","abilityName": "EntryAbility"}]}]
}

​ A、1

B、2

​ C、3

​ D、4

module.json5配置文件-应用配置文件(Stage模型)-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)


55、下面的配置存在有几处错误()

//	app.json5配置文件:
{"app": {"bundleName": "com.example.myapplication","vendor": "example","versionCode": 1000000,"versionName": "1.0.2","icon": "$media:app_icon","label": "$string:app_name","bundleType": "app"}
}
// module.json5配置文件:
{"module": {"name": "feature",//	==========================	缺少type字段//..."atomicService": {"preloads":[{"moduleName": "feature"}]}}
}

A、1

​ B、2

​ C、3

​ D、4

app.json5配置文件-应用配置文件(Stage模型)-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)

module.json5配置文件-应用配置文件(Stage模型)-开发基础知识-基础入门 | 华为开发者联盟 (huawei.com)


56、(1)在UIAbility的onCreate生命周期中通过EventHub的on注册“event1”和“event2”事件。

import { hilog } from '@kit.PerformanceAnalysisKit';
import { UIAbility, Want, AbilityConstant } from '@kit.AbilityKit';const DOMAIN_NUMBER: number = 0xFF00;
const TAG: string = '[EventAbility]';export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {//获取UlAbility实例的上下文let context = this.context;//获取eventHublet eventhub = this.context.eventHub;//执行订阅操作eventhub.on('event1', this.eventFunc);eventhub.on('event2', this.eventFunc);hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate');}// ..eventFunc(argOne: Context, argTwo: Context): void {hilog.info(DOMAIN_NUMBER, TAG, 'receive.' + `${argOne},${argTwo}`);return;}}

(2)在UI组件的click处理事件中调用如下的eventHubFunc,连续点击2次该控件后,运行日志输出是什么:

// 题目获取上下文的方式是错的,要导这个common包才行
import common from '@ohos.app.ability.common';
import { promptAction } from '@kit.ArkUI';@Entry
@Component
struct Page_EventHub {private context = getContext(this) as common.UIAbilityContext;eventHubFunc(): void {this.context.eventHub.emit('event1');this.context.eventHub.emit('event2', 2, 'test2');this.context.eventHub.off('event1');}build() {Column() {//...List({ initialIndex: 0 }) {ListItem() {Row() {//...}.onClick(() => {this.eventHubFunc();promptAction.showToast({message: $r('app.string.EventHubFuncA')});})}}//...}//...}
}

​ A、

[Example].[Entry].[EntryAbility] receive. []
[Examp1e].[Entry].[EntryAbility] receive. [2,"test2" ]
[Examp1e].[Entry].[EntryAbility] receive. []
[Example].[Entry].[EntryAbility] receive. [2,"test2"]

B、答案↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

[Example].[Entry].[EntryAbility] receive. []
[Example].[Entry].[EntryAbility] receive. [2,"test2"]
[Examp1e].[Entry].[EntryAbility] receive. [2,"test2"]

​ C、

[Examp1e].[Entry].[EntryAbility] receive. []
[Example].[Entry].[EntryAbility] receive. [2,"test2"]

​ D、

[Example].[Entry].[EntryAbility] receive. []
[Example].[Entry].[EntryAbility] receive. [2,"test2"]
[Example].[Entry].[EntryAbility] receive. []

57、singleton模式的UIAbility,在冷启动时生命周期的执行顺序是:

A、onCreate->onWindowStageCreate->onForeground

​ B、onCreate->onBackground->onForeground

​ C、onCreate ->onForeground->onWindowStageCreate

​ D、onCreate->onBackground->onWindowStageCreate

UIAbility组件生命周期-UIAbility组件-Stage模型应用组件-Stage模型开发指导-Ability Kit(程序框架服务)-应用框架 | 华为开发者联盟 (huawei.com)****


58、开发者开发了一个应用,该应用只有一个hap包,其module.json5中abilities的配置如下所示,包含1个UlAbility(无Web组件)、1个FormExtensionAbility组件 、1个WorkSchedulerExtensionAbility组件,那么该应用在运行过程中,最多会存在几个应用进程:(不确定,把所有选项列出)

"abilities": [{"name": "EntryAbility","srcEntry": "./etc/entryability/EntryAbility.ts","description": "$string:EntryAbility_desc","exported": ture}],"extensionAbilities": [{	"name": "ClockFormExtensionAbility","srcEntrance": "./ets/form/ClockFormExtensionAbility.ts","type": "form"},{"name": "TipWorkSchedulerExtensionAbility","srcEntrance": "./ets/service/TipWorkSchedulerExtensionAbility.ts","type": "workScheduler"}]

A、1个

B、2个

C、3个

D、4个


59、hiAppEvent提供的Watcher接口,需要订阅到OS的崩溃事件,正确的实现方式()

//	A
hiAppEvent.addWatcher({name: "watcher",appEventFilters: [{names: [hiAppEvent.event.APP_FREEZE]}],onReceive: (domain: string, appEventGroups: Array<hiAppEvent.AppEventGroup>) => {}
})
//	B
hiAppEvent.addWatcher({name: "watcher",onReceive: (domain: string, appEventGroups: Array<hiAppEvent.AppEventGroup>) => {}
})
//	C
hiAppEvent.addWatcher({name: "watcher",appEventFilters: [{domain: hiAppEvent.domain.OS,names: [hiAppEvent.event.APP_CRASH]}],onReceive: (domain: string, appEventGroups: Array<hiAppEvent.AppEventGroup>) => {}
})
//	D
hiAppEvent.addWatcher({name: "watcher",appEventFilters: [{domain: hiAppEvent.domain.OS,names: [hiAppEvent.event.APP_CRASH]}]
})

​ A、A

​ B、B

C、C

​ D、D

订阅崩溃事件(ArkTS)-崩溃事件-系统事件-事件订阅-HiAppEvent使用指导-Performance Analysis Kit(性能分析服务)-调测调优-系统 | 华为开发者联盟 (huawei.com)


60、当标记了@Reuseable的自定义组件实现了组件复用后,这个组件的复用范围是什么?(不确定,把所有选项列出)

A、标记了@Reuseable的自定义组件的外层容器节点范围内

B、标记了@Reuseable的自定义组件的父组件范围内

C、整个页面都可以复用

D、整个应用内都可以复用


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/381811.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hive3 hql脚本传递参数

在数仓的构建过程中&#xff0c;需要配置hive的调度任务&#xff0c;这时就需要对hive hql脚本进行封装&#xff0c;将参数提取出来&#xff0c;作为变量进行配置&#xff0c;比如日期、类型等。 hive3版本&#xff0c;hive -f 在执行sql脚本文件的时候是可以传递参数。 具体…

GitHub 令牌泄漏, Python 核心资源库面临潜在攻击

TheHackerNews网站消息&#xff0c;软件供应链安全公司 JFrog 的网络安全研究人员称&#xff0c;他们发现了一个意外泄露的 GitHub 令牌&#xff0c;可授予 Python 语言 GitHub 存储库、Python 软件包索引&#xff08;PyPI&#xff09;和 Python 软件基金会&#xff08;PSF&…

系统架构设计师教程 第3章 信息系统基础知识-3.5 专家系统-解读

系统架构设计师教程 第3章 信息系统基础知识-3.5 专家系统(ES) 3.5.1 人工智能3.5.1.1 人工智能的特点3.5.1.2 人工智能的主要分支3.5.2 ES的概念3.5.2.1 ES 概述3.5.2.2 与传统程序的区别3.5.3 ES的特点3.5.4 ES的组成3.5.4.1 知识库3.5.4.2 综合数据库3.5.4.3 推理机3.5.4.…

google 浏览器插件开发简单学习案例:TodoList

参考&#xff1a; google插件支持&#xff1a; https://blog.csdn.net/weixin_42357472/article/details/140412993 这里是把前面做的TodoList做成google插件&#xff0c;具体网页可以参考下面链接 TodoList网页&#xff1a; https://blog.csdn.net/weixin_42357472/article/de…

MongoDB教程(十八):MongoDB MapReduce

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、MapRed…

OpenCV 图像旋转和平移 数学和代码原理详解

文章目录 数学原理旋转矩阵平移和旋转合成变换矩阵应用在OpenCV中的实现 代码关键点解读完整代码C代码&#xff1a;Python代码&#xff1a; 在OpenCV中进行图像旋转涉及到一些基本的几何变换和图像处理操作。 数学原理 在图像旋转中&#xff0c;背后的数学原理主要涉及二维欧…

阿里云ubuntu宝塔面板部署uni-app-flask-websocket前后端项目

1.下载宝塔面板 wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec 然后去安全组开放对应的端口 面板账户登录信息 【云服务器】请在安全组放行 29725 端口 进入控制面板后修改默认用户名和密码 2. …

linux、windows、macos,命令终端清屏

文章目录 LinuxWindowsmacOS 在Linux、Windows和macOS的命令终端中&#xff0c;清屏的命令或方法各不相同。以下是针对这三种系统的清屏方法&#xff1a; Linux clear命令&#xff1a;这是最常用的清空终端屏幕的命令之一。在终端中输入clear命令后&#xff0c;屏幕上的所有内容…

Web开发:ASP.NET CORE使用Ajax定时获取后端数据

一、低难度&#xff08;刷新a标签&#xff09; 1、需求 给a标签每15s刷新一次&#xff0c;显示最新的时间&#xff08;时间必须由后端获取&#xff09; 应该如何操作呢 2、代码 后端 using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using Mi…

微信小程序获取蓝牙并实现内容打印

通过微信小程序如何实现获取蓝牙打印机并实现打印能力&#xff0c;之前做过一个测试Dome&#xff0c;能够获取附近的蓝牙打印机设备并实现打印,今天开放出来供大家参考。 wxml <!--右下角搜索--> <view class"ly-cass-box"><view class"ly-cas…

Docker核心技术:Docker原理之Namespace

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Docker核心技术 系列文章&#xff1a;Docker原理之Namespace&#xff0c;其他文章快捷链接如下&#xff1a; 应用架构演进容器技术要解决哪些问题Docker的基本使用Docker是如何实现的 Docker核心技术&#xff1…

设计模式思想

设计模式思想 1. 理论2. 结构型模式——更优雅的声明和构建对象2.1 适配器模式——将一个类的接口适配成用户所期待的类2.2 代理模式——创建一个代理对象劫持对目标对象的调用&#xff0c;为目标访问增加一层控制和拦截&#xff0c;将控制逻辑和主逻辑隔离2.3 装饰器模式——在…

017、Vue动态tag标签

文章目录 1、先看效果2、代码 1、先看效果 2、代码 <template><div class "tags"><el-tag size"medium"closable v-for"item,index in tags":key"item.path":effect"item.title$route.name?dark:plain"cl…

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.3应用架构

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

安卓系统签名的制作与使用(SignApk.jar)踩坑记录

看到这里的你应该能区分apk签名跟系统签名吧,如果无法区分的请看下面链接 android 应用的证书签名跟系统签名 看过上面的文章应该知道系统签名需要的文件清单大概有哪些 前两个是编译安卓系统时在build目录下,详细目录为 /build/target/product/security 每组签名用途不同&am…

Godot学习笔记2——GDScript变量与函数

目录 一、代码编写界面 二、变量 三、函数 四、变量的类型 Godot使用的编程语言是GDS&#xff0c;语法上与python有些类似。 一、代码编写界面 在新建的Godot项目中&#xff0c;点击“创建根节点”中的“其他节点”&#xff0c;选择“Node”。 点击场景界面右上角的绿色…

ISP代理和双ISP代理:区别和优势

随着互联网技术的不断发展和普及&#xff0c;网络代理服务成为众多用户保护隐私、提高网络性能、增强安全性的重要工具。其中&#xff0c;ISP代理和双ISP代理是两种常见的网络代理服务形式。本文将详细探讨ISP代理和双ISP代理的区别和优势&#xff0c;以便用户更好地了解并选择…

真实测评,霍尼韦尔、希喂、352宠物空气净化器性能对比

在快节奏的社会生活中&#xff0c;人们越来越注重精神需要&#xff0c;许多年轻人纷纷选择拥抱宠物&#xff0c;作为生活中的温馨伴侣。宠物们治愈心灵的同时也要付出一定“代价”&#xff0c;日常养护&#xff0c;如清理猫毛、管理气味以及保持宠物环境的清洁&#xff0c;都是…

开源发票识别InvoiceNet项目Windows部署踩坑记(1)

今天安装在github上的InvoiceNet开源项目&#xff0c;准备对它进行测试&#xff0c;安装过程出现了一些问题&#xff0c;做个记录&#xff0c;给遇到兄弟爬坑。 第一个问题&#xff0c;conda的问题&#xff0c; 这是另外一个包管理器&#xff0c;不仅仅可以管理python的虚拟…

UFO:革新Windows操作系统交互的UI聚焦代理

人工智能咨询培训老师叶梓 转载标明出处 人机交互的便捷性和效率直接影响着我们的工作和生活质量。尽管现代操作系统如Windows提供了丰富的图形用户界面&#xff08;GUI&#xff09;&#xff0c;使得用户能够通过视觉和简单的点击操作来控制计算机&#xff0c;但随着应用程序功…