外观
如果要新增一个系统服务 应该怎样设计和接入?
标准回答
我会先明确服务职责和权限边界,设计 Binder 接口、客户端 Manager 和错误返回,再决定服务由 system_server 还是独立进程承载。若采用 Java SystemService,会在适当启动阶段注册,通过 publishBinderService 提供跨进程接口,必要时通过 LocalServices 提供进程内接口。耗时工作放在受控工作线程,接口要考虑调用者 UID、用户空间、死亡恢复和并发访问。最后补充 dumpsys 状态、日志、接口兼容和服务端测试,验证未解锁、用户切换、服务重启等边界场景。
延伸追问
LocalServices 是 system_server 内的对象访问机制,不是另一种跨进程通信;跨 system/vendor 等稳定边界需要另外考虑 Stable AIDL 和版本兼容。
内容来源
- Android Framework 知识手册 · 原条目
1-8