很多的的系统服务,如GPS,电源管理等都挂在SystemServer下,因此要完全清楚,每个服务的全部运行过程,有必要了解SystemServer的启动过程
1、在Framework/base/services下有两个主要文件夹,jni,java,jni下编译成动态库libandroid_servers,java下编译成services;
2、services内部有个主类SystemServer.java,含有静态main方法,用于启动,在main中加载libandroid_servers,调用其Onload,实现对jni函数注册
比如gps,在注册时,查询java类,再进行回调注册