说明:答案不保证正确。欢迎讨论。。。
下列哪些模块可以在进程内实现单例?
说明:
共享模块是进程内只会加载一次的模块,使用"use shared"这一指令来标记一个模块是否为共享模块。
非共享模块在同一线程内只加载一次,在不同线程间会加载多次,在不同的线程内都会产生新的模块对象。因此可以使用共享模块来实现进程单例。
developer.huawei.com/consumer/cn...
以下关于StyledString的描述错误的是
说明:
A: equals:当属性字符串的文本及样式均一致,视为相等。不比较GestureStyle,当属性字符串配置了不同事件,文本和其他样式相同时,亦视为相等。当比较CustomSpan时,比较的是地址,地址相等,视为相等。
B: fromHtml将HTML格式字符串转换成属性字符串,当前支持转换的HTML标签范围:<p>
、<span>
、<img>
。仅支持将这三种标签中的style属性样式转换成对应的属性字符串样式。
C: 这句话是对的
D:getStyles 当指定范围属性字符串未设置任何样式,则返回空数组。
这题答案应该是B
ArkTs支持以下哪个函数?
说明:
ArkTS不允许使用TypeScript或JavaScript标准库中的某些接口。大部分接口与动态特性有关。ArkTS中禁止使用以下接口:
全局对象的属性和方法:eval
Object:proto 、defineGetter 、defineSetter、
lookupGetter 、lookupSetter、assign、create、
defineProperties、defineProperty、freeze、
fromEntries、getOwnPropertyDescriptor、getOwnPropertyDescriptors、
getOwnPropertySymbols、getPrototypeOf、
hasOwnProperty、is、isExtensible、isFrozen、
isPrototypeOf、isSealed、preventExtensions、
propertyIsEnumerable、seal、setPrototypeOf
Reflect:apply、construct、defineProperty、deleteProperty、
getOwnPropertyDescriptor、getPrototypeOf、
isExtensible、preventExtensions、
setPrototypeOf
Proxy:handler.apply()、handler.construct()、
handler.defineProperty()、handler.deleteProperty()、handler.get()、
handler.getOwnPropertyDescriptor()、handler.getPrototypeOf()、
handler.has()、handler.isExtensible()、handler.ownKeys()、
handler.preventExtensions()、handler.set()、handler.setPrototypeOf()
链接:developer.huawei.com/consumer/cn...
答案应该是C
下面关于V2状态管理@Monitor装饰器的描述错误的是
说明:
A:@Monitor装饰器具有深度监听的能力,能够监听嵌套类、多维数组、对象数组中指定项的变化。对于嵌套类、对象数组中成员属性变化的监听要求该类被@ObservedV2装饰且该属性被@Trace装饰。
B:单个@Monitor装饰器能够同时监听多个属性的变化,当这些属性在一次事件中共同变化时,只会触发一次@Monitor的回调方法。
C: @Monitor装饰器支持在类中与@ObservedV2、@Trace配合使用,不允许在未被@ObservedV2装饰的类中使用@Monitor装饰器。未被@Trace装饰的属性无法被@Monitor监听到变化。
D:@Monitor监听的状态变量为类对象时,仅能监听对象整体的变化。监听类属性的变化需要类属性被@Trace装饰。
链接:developer.huawei.com/consumer/cn...
答案选D
下面关于@Track装饰器的限制条件说法错误的是?
说明:
A: @Track是class对象的属性装饰器。当一个class对象是状态变量时,@Track装饰的属性发生变化,只会触发该属性关联的UI更新;如果class类中使用了@Track装饰器,则未被@Track装饰器装饰的属性不能在UI中使用,如果使用,会发生运行时报错。
B:错误
C: 是正确的
D: 也是正确的
链接:developer.huawei.com/consumer/cn...
下面关于方舟字节码格式PREF_IMM16_V8_V8描述正确的是?
说明:
方舟字节码中的操作码通常被编码为一个8位的值,因此至多只能有256个操作码。随着方舟编译器运行时功能的演进,字节码的数量也在逐步增加,已经超过了256个。因此,方舟字节码引入了前缀(prefix),将操作码最大宽度从8位扩展到16位。8位操作码(无前缀的)用于表示频繁出现的指令,16位操作码(有前缀的)用于表示出现频率不高的指令。
链接:developer.huawei.com/consumer/cn...
在Column容器中,使用alignItems(HorizontalAlign.End)时,子元素如何排列?
说明:
水平右对齐。
从桌面冷启动如下应用代码, 点击Change按钮5次。整个过程中,代码中的2条log依次出现的次数是?
js
class Data {
num: number
type: string
constructor(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 log2")
this.data = params.data
}
build() {
Text("num = " + this.data?.num + ", type = " + this.data?.type)
}
}
@Preview
@Entry
@Component
struct ColumnPage {
data1: Data = new Data(1, "type1");
data2: Data = new Data(2, "type2");
@State data: Data = this.data1;
build() {
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(() => {
// console.log(String(this.data === this.data1))
if(this.data === this.data1){
this.data = this.data2
} else {
this.data = this.data1
}
})
}
}
}
A: 6, 0
B: 1, 0
C: 1, 5
D: 2, 4
答案应该是B
以下程序中,对按钮进行点击后,后台会输出什么内容?
js
@Preview
@Entry
@Component
struct HitTestBehaviorExample {
@State message: string = 'Hello World';
build() {
Stack() {
Button('outer button').onTouch((event) => {
console.log('outer button touched type: ' + (event as TouchEvent).type)
})
Stack() {
Button('inner button').onTouch((event) => {
console.log('inner button touched type:' + (event as TouchEvent).type)
})
}.width('100%').height('100%')
.hitTestBehavior(HitTestMode.Block)
.onTouch(event => {
console.log('stack touched type: ' + (event as TouchEvent).type)
})
}.width(300).height(300)
}
}
说明:答案D
以下程序中,点击"hello world"后,控制台会输出什么内容?
js
@Preview
@Entry
@Component
struct HitTestBehaviorExample {
@State message: string = 'Hello World';
isPolygon(event: TouchEvent) {
return true;
}
build() {
Row() {
Column() {
Text('hello world').backgroundColor(Color.Blue)
.fontSize(50).fontWeight(FontWeight.Bold)
.onClick(() => {
console.log('Text click')
})
}.width(400).height(300)
.backgroundColor(Color.Pink)
.onClick(() => {
console.log("Column click")
})
.onTouchIntercept((event: TouchEvent) => {
console.log('OnTouchIntercept')
if(this.isPolygon(event)){
return HitTestMode.None
}
return HitTestMode.Default
})
}.width('100%')
}
}
说明:
项目需要同时进行应用和元服务的开发,并针对当前项目工程中的代码可以分别构建出应用和元服务的包,如何在DevEcoStudio中设置不同的构建配置,达成这个目的?
答案D
开发者小华开发了一个鸿蒙应用,功能开发自验证完成后,准备进行上架了,需要对应用的质量进行初步的评过,为了快速评估和提升产品品质,针对这个场景,小华可以使用IDE上哪个能力帮助他完成这个事情?
答案:C
在使用DevEcoStudio的Profler进行HarmonyOS应用或服务性能分析时,面对应用出现卡顿,加载慢等性能瓶颈问题,以下哪个描述最贴切地说明了"Time场景分析任务"的功能及其对开发者优化流程的帮助?
说明:
B:内存分析是 Allocation分析:developer.huawei.com/consumer/cn...
C:CPU分析: developer.huawei.com/consumer/cn...
答案是A