1. 鸿蒙关系型数据库 RDB 中如何进行加密?
答:创建关系型数据库时,可通过 StoreConfig 管理关系型数据库配置,其中 encrypt 属性指定数据库是否加密。
2. 多个相同 BundleName 的 HAP 包,使用 Preference 数据如何共享?
答:Preference 保存数据时保存在 ApplicationContext 中,可以使各个 HAP 数据互通。
3. 用 SQLite 开发时,怎么保证数据库同一时间只能支持一个写操作?怎么创建索引?
1、定义 SQL 语句的常量:
const SQL_CREATE_TABLE = 'CREATE TABLE IF NOT EXISTS EMPLOYEE (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT NOT NULL, AGE INTEGER, SALARY REAL)';
const CREATE_INDEX = 'CREATE INDEX idx_name ON EMPLOYEE (NAME)';
2、使用 executeSql 执行包含指定参数但不返回值的 SQL 语句:
this.rdbStore.executeSql(SQL_CREATE_TABLE);
this.rdbStore.executeSql(CREATE_INDEX);
4. 非 UI 页面使用用户首选项时 Context 如何获取?
答:可以在 UIAbility 里通过 AppStorage 或 LocalStorage 存储 context,然后在非 ArkUI 页面里使用。
5. H5 页面如何与 ArkTS 交互?
答:通过对 javaScriptProxy 和 runJavaScript 封装,实现 JSBridge 通信方案。使用 Web 组件的 javaScriptProxy 将原生侧接口注入到 H5 的 window 对象上,通过 runJavaScript 接口执行 JS 脚本到 H5 中,并在回调中获取脚本执行结果。
6. WebView 如何实现网络请求拦截功能?
答:可以通过 onInterceptRequest() 接口实现自定义资源请求响应,该能力可用于自定义 Web 页面响应、自定义文件资源响应等场景。
7. Socket 连接中支持发送哪些数据类型?
答:目前 Socket 连接仅支持发送 string 类型和 ArrayBuffer 类型数据。
8. 性能优化这块你有了解吗?
答:使用数据懒加载。
使用条件渲染替代显隐控制。
使用 Column/Row 替代 Flex。
减少应用滑动白块。
设置 List 组件的宽高。
一般用 Profiler 性能分析器进行分析。
9. 如何查看应用是否为系统应用?
答:
- 连接设备。
- 执行以下命令打印日志:
hdc shell bm dump -n <Bundle Name>
- 当 isSystemApp 字段返回值为 true 时,则说明当前应用为系统应用。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容