3. **项目是只鸿蒙版本吗?**按情况定
当前仅支持鸿蒙OS,未来计划通过跨平台框架(如ArkUI-X)适配安卓/iOS。
4. 鸿蒙OS和安卓的区别?
- 架构:鸿蒙为分布式微内核,安卓基于Linux宏内核。
- 性能:鸿蒙更轻量,跨设备协同能力更强。
- 生态:鸿蒙支持一次开发多端部署,安卓需针对性适配。
5. 鸿蒙为什么能实现多端部署?
- 分布式架构:设备虚拟化技术统一资源池。
- ArkTS语言:声明式UI适配多端布局。
- 方舟编译器:跨平台字节码优化执行效率。
6. 多设备数据共享实现方式?
- 分布式数据服务:数据对象(如
DistributedDataObject
)自动同步。 - 统一账号体系:设备间通过华为账号鉴权共享数据。
7. 分布式数据共享技术细节?
- KV数据模型:使用
@ohos.data.distributedData
管理键值对。 - 数据同步策略:按需同步(如Wi-Fi下全量同步,移动网络增量同步)。
8. UIAbility启动模式
- standard:默认模式,每次启动新实例。
- singleton:单例模式,全局唯一实例。
- specified:由开发者指定是否复用实例。
9. 启动模式使用场景
- singleton:用于全局设置页,避免重复创建。
- specified:特定场景如支付流程,复用同一实例保证数据连贯。
10. 组件/页面生命周期
- 页面级:
onPageShow()
、onPageHide()
、onBackPress()
。 - 组件级:
aboutToAppear()
、aboutToDisappear()
。
11. 组件生命周期中间阶段
- 活跃状态:
onActive()
(获取焦点)。 - 后台状态:
onInactive()
(失去焦点但未销毁)。
12. ArkTS与TS的区别
- UI声明:ArkTS强制静态UI描述(
@Component
装饰器)。 - 状态管理:内置
@State
、@Link
等装饰器简化状态同步。
13. 鸿蒙状态管理
- 组件内状态:
@State
管理私有状态。 - 父子组件:
@Prop
(单向)、@Link
(双向)。 - 全局状态:
AppStorage
或LocalStorage
。
14. 跨组件状态同步
- @Provide/@Consume:跨层级组件状态共享。
- EventHub:事件总线实现组件间通信。
15. 子组件变化通知父组件
- 事件传递:子组件通过
this.emit('eventName', data)
触发,父组件监听处理。
16. 长列表局部渲染优化
- LazyForEach:动态加载可视区域项,减少内存占用。
- 复用机制:类似RecyclerView的ViewHolder复用策略。
17. 多线程并发实现
- Worker:独立线程执行耗时任务,通过
postMessage
通信。 - TaskPool:轻量级任务池,适合短期异步任务。
18. 多线程并发项目经验
- 案例:图片批量压缩使用
TaskPool
分配任务,提升处理速度50%。
19. 视频列表压缩并发处理
- 分片处理:将视频拆分为多个任务,通过
TaskPool
并行压缩。 - 队列控制:限制并发数避免资源争抢。
20. Worker适用场景
- 复杂计算:如大数据分析、图像处理。
- 持久化任务:后台定位、实时数据同步。
21. 断点续传实现
- 分块上传:文件切分为固定大小块,记录已上传块。
- 持久化记录:使用
Preferences
存储上传进度,断网后恢复。
22. 第三方登录经验
- 微信/谷歌登录:集成SDK获取Token,后端验证后生成JWT。
23. SDK无鸿蒙支持处理
- 适配层:封装安卓SDK为HarmonyOS接口(需兼容模式)。
- H5桥接:通过Web组件调用第三方H5登录页。
24. 鸿蒙实现QQ登录
- WebView方案:内嵌QQ的H5登录页,通过JS桥接获取授权码。
- 联合开发:联系腾讯提供HarmonyOS版SDK或REST API支持。