美文网首页鸿蒙开发
HarmonyOS NEXT应用启动流程及API调用总结

HarmonyOS NEXT应用启动流程及API调用总结

作者: MardaWang | 来源:发表于2024-10-30 09:33 被阅读0次

数月前,本人基于 OpenAtom OpenHarmony(以下简称“OpenHarmony”) v4.0 Release 源码(https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/get-code/sourcecode-acquire.md#https://openharmony.gitee.com),对应用进程初始化后 MainThread 初始化及核心API调用 (如AttachApplication、LaunchApplication、LaunchAbility) 的过程做了分析和总结,同时绘制了进程间切换逻辑以及核心API调用逻辑的时序图,特分享出来,供大家加深对HarmonyOS开发和OpenHarmony开发的认识和源码的理解。

应用启动流程的核心类须知:
  • AppMgrService 是应用管理服务主线程类,实现了 IPC 调用 IAppMgr 的接口,并通过 AMSEventHandler 将进程内各类事件及任务发送到主线程。
  • AppRunningManager 记录了应用的信息、应用的运行状态、进程信息等,内部持有了模块运行信息列表,应用第一次启动时,会先创建。
  • AppSpawn 是 app 孵化器,通过监听本地 socket,接收客户端的请求消息。创建 Ability 应用所在进程,为 Ability 应用设置相应的权限,并预加载一些通用的模块。
  • AbilityLoader 负责注册和加载开发者 Ability 模块。开发者开发的 Ability 先调用 AbilityLoader 的注册接口注册到框架中,接着 Ability 启动时会被实例化。
  • AbilityManager 负责 AbilityKit 和 Ability 管理服务进行 IPC 的通信。
  • MainThread 是应用进程的核心类。应用进程内各类事件及任务通过 MainThread 中 mainHandler 投递到主线程并调用 MainThread 中的方法执行。
  • AbilityThread 是应用线程的核心类,是操作各种 Ability 生命周期及方法的入口。

代码分析





......

总结-时序图

image.png

相关文章

网友评论

    本文标题:HarmonyOS NEXT应用启动流程及API调用总结

    本文链接:https://www.haomeiwen.com/subject/vjnmdjtx.html