mapplauncherd 是 sailfishos 使⽤的⼀种应⽤启动加速的模块,类似于 Android 的 zygote。最初 mapplauncherd 是由 MeeGo 开发,后被各 Linux based 系统⽤于应⽤启动的模块。本⽂主要分析 mapplauncherd 的基本运⾏原理
源码参考
https://github.com/sailfishos/mapplauncherd.git
编译
安装依赖
sudo apt-get install libcap-dev libsystemd-dev libdbus-1-dev mkdir build
&& cd build
cmake ../
make
使用方法
# 安 装
cd build
mkdir testbin
DESTDIR=./testbin make install# 运 ⾏ daemon
LD_LIBRARY_PATH=./usr/local/lib ./usr/local/libexec/mapplauncherd/booster-generic# 再打开另⼀个 terminal 运⾏ invoker
./usr/local/bin/invoker -t generic /path/to/exec
源码分析
文件布局,关键文件解释
invoker ⽬录,⽤来将应⽤信息传递给 launcher daemon 的⼯具
launcherlib ⽬录,其中定义了核⼼的功能类
appdata 应⽤信息
booster 启动加速类
connection 连接管理
daemon 守护进程
框架简述
mapplauncherd 整体上分为两个部分
- daemon service,主控服务,其作⽤是整体管控应⽤的启动、结束、异常等流程
- invoker,应⽤启动⼯具,⽤来通知 daemon service 启动某个应⽤

mapplauncherd是SailfishOS中用于应用启动加速的模块,类似Android的zygote。本文详细分析了mapplauncherd的运行原理、源码、编译方法、使用步骤以及框架结构。通过预加载公共资源,提高应用启动速度。并提出了改进方案,认为可以借鉴zygote的结构以简化流程。
最低0.47元/天 解锁文章
1852

被折叠的 条评论
为什么被折叠?



