我想知道android中的getSystemService()方法是怎么工作的。
举个例子(含有疑问):
Android中的Vibrator类。获取实例:Vibrator mvibrator=(Vibrator)getSystemService(VIBRATOR_SERVICE);  不是通过new获得实例这我知道,因为Vibrator是一个抽象类。
但(Vibrator)getSystemService(VIBRATOR_SERVICE);又是怎么做到的?android抽象类

解决方案 »

  1.   

    Vibrator是平台震动系统,跟电源管理系统PowerManagerService、ActivityManagerService或者音频服务等系统提供的服务一样(或者不一样,一些是java层,一些是c/c++层的),都是在系统开机启动后便启动了,通过这种方式是跨进程的一种调用系统提供的服务。
    他们的工作方式都是利用Binder间进程通信,因为系统服务都运行在框架进程中system_process中,启动后系统服务都注册到框架进程并跑在单独的线程里面。