1、如何通过AOP统计方法执行时间
对于执行时间的统计,可以利用addBefore记录开始时间,用addAfter记录结束时间。
2、如何实现Sendable类型和JSON数据的转换
可以通过从API version 12开始支持的,ArkTS新增的ASON工具实现。
ASON支持开发者解析JSON字符串,并生成共享数据进行跨并发域传输,同时ASON也支持将共享数据转换成JSON字符串。
3、如何使用工具库对JSON进行解析与生成
从API version 12开始支持@ohos.util.json,能够实现将JSON文本转换为JSON对应对象或值,以及将对象转换为JSON字符串等功能。
4、A持有B,B引用A的场景会不会导致内存泄漏
方舟虚拟机的内存管理和GC采用的是根可达算法,根可达算法可以解决循环引用问题,不会导致A引用B,B引用A的内存泄漏。
5、如何通过key获取对象值
ArkTS中不支持通过索引访问字段,要使用索引的话可以考虑Record<key, value>。
6、如何查看编译的详细过程
在hvigor->hvigor-config.json5中"logging": { //"level": "info" }的注释取消 ,改为debug,改完后的结果为"logging": { "level": "debug" },在编译时就可以看到编译的详细过程。
7、如何判断对象的类型
在代码开发中,如果需要对对象的类型做判断,调用不同类的方法,可以使用instanceof进行判断来得知对象的类型。
8、混淆后的映射文件具体在哪个路径下
-
obfuscation.txt:打包后放consumer-rules.txt的混淆规则的
目录:build/default/intermediates/obfuscation/default/obfuscation.txt
-
nameCache.json:名称映射表文件,该文件记录了源码名称混淆的映射关系
目录:build/default/cache/default/default@CompileArkTS/esmodule/release/obfuscation/nameCache.json
-
混淆后的d.ets和js文件
目录:build/default/intermediates/loader_out/default/...
-
sourceMaps.json:是关联编译后的代码和源码的,通过一个个行列号的映射
目录:build/default/cache/default/default@CompileArkTS/esmodule/release/sourceMaps.json
9、如何获取对象的所有方法
可以使用Object.getOwnPropertyNames获取所有方法的字符串数组,注意获取对象的原型prototype需要文件后缀为.ts的文件。
10、如何使用内置的js引擎?JIT支持策略如何?
使用内置的js引擎可以参考:JSVM,推荐使用自带JS引擎,不禁止使用三方引擎,但禁止三方引擎的JIT能力。
11、如何在ArkTS中使用闭包
ArkTS不支持在函数内声明函数,但可以改用lambda函数来代替内部函数声明。
12、是否支持通过动态import反射调用类的静态成员函数和实例成员函数?
目前支持通过动态import反射调用类的静态成员函数、实例成员函数以及全局方法。
13、动态import是异步的,同步和异步场景如何使用?
动态import为了能实现按需加载和延迟加载的功能,返回的是promise,用法参考promise。
1、同步环境用.then接口。
2、异步环境可以用await关键字。
更多详情查看:文档中心