sa 服务基于ipc通信原理,主体包括framework, interfaces, saprofile, service,声明文件,以及对应的构建文件。
文件结构大概如此。启动sa流程为。
系统启动后,init进程会遍历init目录下的sa cfg文件,解析cfg文件中指定的xml文件,并根据xml中定义的sa port号,到sa 定义文件中找到对应sa, 将sa添加到localAbilityManager的ability_map中。后续init启动sa_main后,sa_main会遍历ablity_map中的所有sa,并依次拉起对应的sa动态库文件.z.so,并添加到system_ability_manager中。
cfg文件对应为文件目录中的service/etc/*.cfg;
xml文件对应为文件目录中的sa_profile/*.xml;
动态库文件.z.so会在编译后生成。