不懂,看源码有这么些内容1.在ServerThread类的run中,把电源服务类BatteryService添加到服务管理器中。
Slog.i(TAG, "Battery Service");
battery = new BatteryService(context);
ServiceManager.addService("battery", battery);2.BatteryService类主要有以下几个方法
2.1 isPowered,判断是否插入交流电源或者usb,执行充电处理
2.2 getBatteryLevel取得电量,0-100
2.3 shutdownIfNoPower,没电时关机
2.4 shutdownIfOverTemp,温度过高时关机,>68.0摄氏度
2.5 update,更新
2.6 sendIntent,广播电池状态
2.7 getIcon,取得状态图标

解决方案 »

  1.   

    这个可能需要懂驱动和HAL的人来帮忙看看了,
    power = new PowerManagerService();里面好像没有负责启动这个服务吧?
    底层库又是怎么启动呢?
      

  2.   

    rc里的服务一般是底层的服务,调用一些bin或者sh的文件来执行。
    还有一种系统服务是java文件实现的。一般在framwork/base/下会有service的代码。
    网上应该有很多类似的资料,有同事很早就做过类似的开发了。
    不过电源的管理范围很大,不知道楼主是要实现什么功能。是做省电方面的管理还是只是读取电池数据?
      

  3.   

    上层应用(.java)->JNI调用(.cpp)->*.conf->.c->kernel驱动以上是简略图,呵,大部分应用和底层驱动的链接是这种模式,具体情况具体分析
      

  4.   


    Power Management一般包括Battery和Sleep两大类,根据硬件的不同有区别,现在大部分厂家都做有自己的电源管理模块,一般在kernel里实现,你所谓的启动的那些服务是上层的接口以备应用程序调用