鸿蒙高级开发者认证204-3

701 阅读5分钟

下面关于混淆的描述正确的是哪几项(AD)

A、修改应用混淆配置,新配置需要重新全量编译应用才能生效

B、可以在HAR模块工程的build-profile.json5中的obfuscation.consumerFiles字段中配置导出的混淆配置,该配置仅在编译依赖该HAR的模块时生效。

C、在工程build-profile.json5中的obfuscation.ruleOptions.files字段中配置该工程的混淆配置,该配置仅在编译该工程时生效。

D、支持顶层作用域名称、属性名称、文件名称等多种混淆功能

以下代码片段哪几处违反了ArkTS语法规范(ACD)

function foo(value1: number,value2: number){
return value1 + value2;

}

A foo();

B foo(1,2);

C foo(1,2,3);

D foo(1,2,3,4);

在ArkTS中,以下哪些声明类的方式是正确的?(c1 c2)

class C1{value:number=0;}

class C2{value: number;

constructor(value:number){this.value = value;}}

class C3{constructor(value:number){this.value = value;}}

class C4{value: number;}

下面代码块符合Node-API开发规范的是(AD)(Demo1 和 Demo3)

代码块A:

static napi_value Demo1(napi_env env, napi_callback_info info)

{size_t argc;napi_value argv[10]={nullptr};napi_get_cb_info(env,info,&argc, argv, nullptr, nullptr);return nullptr;}

代码块B:

static napi_value Demo4(napi_env env, napi_callback_info info)

{size_t argc=5;napi_value argv[3]={nullptr};napi_get_cb_info(env,info,&argc, argv, nullptr, nullptr);return nullptr;}

代码块C:

static napi_value Demo2(napi_env env, napi_callback_info info)
{size_t argc =0;
napi_get_cb_info(env,info,&argc, nullptr, nullptr, nullptr);
if(argc ==0){return nullptr;}
napi_value* argv = new napi value[argc];
napi_get_cb_info(env,info,&argc, argv, nullptr, nullptr);// 业务代码
return nullptr;}

代码块D:

static napi_value Demo3(napi_env env, napi_callback_info info)
{size_t argc =2;napi_value argv[2]={nullptr};
napi_get_cb_info(env,info, &argc, nullptr, nullptr, nullptr);
// 业务代码
return nullptr;}

以下数据类型中,哪些是Sendable数据。(BC)

import{ lang }from '@kit.ArkTs';

class c{}

interface I extends lang.ISendable {}

A. interface l

B. number

C. string

D. class C

项目组开发的Harmonyos应用工程,为了保护hap代码资产,如何在DevEcostudio中启用混淆的功能,并设置相应的混淆规则(CD)

A、在混淆规则配置文件consumer-rules.txt中进行混淆规则的配置

B、release模式下将buildOption/arkOptions/ruleOptions/enable设置为false

C、在混淆规则配置文件obfuscation-rules.txt中进行混淆规则的配置

D、release模式下将buildOption/arkOptions/ruleOptions/enable设置为true

A中consumer-rules.txt文件主要用于库(library)项目,指定库在被其他项目依赖时应用的混淆规则。

使用如下的代码去启动一个ability时,下面哪种代码块中skills定义的组件能够被匹配到:(BCD)

let want ={

"uri":"https:// www.test.com: 8080/query/books",

"type" : "text/plain"}

context.startAbility(want).then((data))=>{console.log(TAG +"startAbility success");

}).catch((err))=>{

console.log(TAG + "startAbility failed.");

}

代码块A:

"skills":[ {

"uris":[{

"scheme": "https","host":"www.test.com","pathstartwith" :"query/books","type”:"text/*”}

]}]

代码块B:

"skills":[ {

"uris":[ {

"scheme": "https","type” :"text/*"}]}]

代码块C:

"skills":[ {

"uris":[ {

"scheme":"https","host":"www .test.com","pathstartwith" :"query/books","type" :"text/plain"

}]}]

代码块D:

"skills":[ {

"uris":[ {

"scheme":"https","host":"www.test.com","type" :"text/plain"

}]}]

出于安全因素考虑,ArkTs不支持以下哪些语法?(ACD)

new Function('a' , 'b', 'return a + b')

Object.entries()

eval()

with()

ArkTs对并发编程API和能力进行了增强,以下描述正确的是?(AD)

A.在并发API的形式上,目前主要有两种:Worker和TaskPool

B.单次I/O任务的开发场票中,必须使用TaskPool进行开发。

C.默认情况下,Sendable数据在ArKTS并发实例间(包括主线程、TaskPool&Worker工作线程)传递的行为是拷贝传选。

D.CPU密集型任务场豪中,当在务不需要长时间(3分钟)占据后台线程,而是一个个独立的任务时,推荐使用TaskPool进行开发。

下面代码符合ArkTS编程规范的是? (ABCD)

const arr =[1,2,3];

if(flag){//..}else {//..}

function fight(): void {console.log("Swooosh!");}

if(isJedi){fight();}

以下ABCD代码片段哪几处违反了ArkTS语法规范? (BCD)

class Point {

public x: number;public y: number;

constructor(x:number,y:number){

this.x = x

this.y = y

}

代码A:let p=new Point(1.0,1.0);

代码B:delete p.x;

代码C:p.z=2.0;

代码D:p.x='He11o!';

关于混淆的描述正确的是:(ABCD)

B针对工程源码的混淆可以降低工程被破解攻击的风险,缩短函数名、类名和属性名,减小应用的大小。

D代码混淆已经被集成了到SDK中,可以在DevEco Studio中方便地使用。

在ArkTS中,以下A、B、C、D个代码片段正确的是(BD)

代码段B:

function fn(x:string): string {

return x;

}

type funcType =(ns:string|number)=> string;

let func: funcType =fn;

代码段D:

function fn(x:string |number): string {

return 'value:' + x;

}

type funcType=(ns:string|number)=>string;

let func:funcType =fn;

应用开发的有些场景中,如果希望根据条件导入模块或者按需导入模块,可以使用动态导入代替静态导入,下面导入场景中适合使用动态import的是(ABCD)

A.当被导入的模块,在加载时并不存在,需要异步获取。

B.当静态导入的模块很明显的降低了代码的加载速度且被使用的可能性很低,或者并不需要马上使用它。

C.当静态导入的模块很明显的占用了大量的系统内存且被使用的可能性很低

D.当被导入的模块说明符,需要动态构建。

方舟字节码文件格式,描述正确的是:

uint16_t、二进制产物

以下4个代码片段哪几个函数违反了ArkTS语法规范:(foo1,foo4)

function foo1(value1?: number, value2: number){

if(value1 == undefined){

return value2;}

return value1 + value2;}

function foo4( ...array: number[],value: number){

return value;

}

function foo2(value1: number, value2?: number){

if(value2 == undefined){

return value1;}

return value1 + value2;}

function foo3(value: number, ...array: number[]){return value}

ArkTS中,哪些属性声明是正确的:

短的两个1、4

ArkTS中的import用法,正确的是:ABCD

import { export1 } from "ets file name"

import { export1 as alias1 } from "ets file name"

import * as name from "ets file name"

import defaultExport from "ets file name"