`
wangzhigang2
  • 浏览: 85125 次
  • 性别: Icon_minigender_1
  • 来自: 张家港
社区版块
存档分类
最新评论

Android电池管理

阅读更多


[电池简易流程图片在附件中]

java代码:
frameworks/frameworks/base/services/java/com/android/server/Ba
tteryService.java
JNI代码:
frameworks/base/services/jni/com_android_server_BatteryService.
cpp
kernel driver代码
drivers/power/xx_battery.c
2、BatteryService
BatteryService作为电池及充电相关的服务: 监听Uevent、读取sysfs
里中的状态 、广播Intent.ACTION_BATTERY_CHANGED。

(1)、mUEventObserver
BatteryService实现了一个UevenObserver mUEventObserver。
uevent是Linux内核用来向用户空间主动上报事件的机制,对于JAVA程
序来说,只实现UEventObserver的虚函数onUEvent,然后注册即可。
  private UEventObserver mUEventObserver = new UEventObserver(){
  @Override
   public void onUEvent(UEventObserver.UEvent event){
     update();
}
}

BatteryService只关注power_supply的事件,所以在构造函数注册:
    public BatteryService(Context context){
         mContext = context;
         mBatteryStats = BatteryStatsService.getService();
         mUEventObserver.startObserving("SUBSYSTEM=power_supply");
       //set initial status
       update();
}

(2)、update()
update读取sysfs文件做到同步取得电池信息, 然后根据读到的状态更新
BatteryService的成员变量,并广播一个Intent来通知其它关注电源状态的
组件。
当kernel 有power_supply 事件上报时,mUEventObserver 调用
update()函数,然后update 调用native_update 从sysfs 中读取相关状态
(com_android_server_BatteryService.cpp):
private synchronized final void update(){
  native_update();
}

(3)、sysfs
Linux驱动driver维护着保存电池信息的一组文件sysfs,供应用程序获
取电源相关状态:
#define AC_ONLINE_PATH "/sys/class/power_supply/ac/online" AC 电源连接
状态
#define USB_ONLINE_PATH "/sys/class/power_supply/usb/online" USB 电源
连接状态
#define BATTERY_STATUS_PATH
"/sys/class/power_supply/battery/status"充电状态
#define BATTERY_HEALTH_PATH
"/sys/class/power_supply/battery/health"电池状态
#define BATTERY_PRESENT_PATH
"/sys/class/power_supply/battery/present"使用状态
#define BATTERY_CAPACITY_PATH
"/sys/class/power_supply/battery/capacity"电池level
#define BATTERY_VOLTAGE_PATH
"/sys/class/power_supply/battery/batt_vol"电池电压
#define BATTERY_TEMPERATURE_PATH
"/sys/class/power_supply/battery/batt_temp"电池温度
#define BATTERY_TECHNOLOGY_PATH
"/sys/class/power_supply/battery/technology"电池技术
当电池状态发生变化时,driver会更新这些文件。
  • 大小: 48.1 KB
分享到:
评论

相关推荐

    android 电池管理 源码

    在Android系统中,电池管理是至关重要的,因为它直接影响到设备的续航能力和用户体验。源码分析是深入理解系统工作原理的最佳途径。"android 电池管理 源码"这个主题涵盖了许多关键组件和技术,包括电源管理服务、...

    android 电池管理

    ### Android电池管理详解 #### 锂电池基本原理与特性 锂电池自1990年代初期问世以来,以其卓越性能在消费电子领域占据了主导地位。锂离子电池的核心优势在于其较高的能量密度、较长的循环寿命以及较低的自放电率。...

    Android实现电池管理系统

    本文将详细介绍Android电池管理系统的实现过程,包括Android电池服务、Healthd以及电源管理驱动三个部分。 首先,Android电池服务主要是由一系列的Java服务类组成,这些类位于Android系统的Framework/base/services...

    Battery-Indicator-Pro,Android电池指示灯.zip

    在这个讨论中,我们将详细探讨Battery-Indicator-Pro的实现细节,以及如何从源代码中学习到关于Android电池管理的知识。 首先,我们来看“Battery-Indicator-Pro-master”这个文件夹,它是整个项目的主分支,包含了...

    andbatdog监视电池Android源码.rar

    总的来说,通过研究“andbatdog监视电池Android源码”,我们可以深入了解Android电池管理的底层机制,学习如何获取和处理电池状态信息,以及如何在应用中构建电池监视功能。这对于我们开发更智能、更节能的Android...

    Android电池电量监控系统及设计概要

    在Android平台上,电池电量监控是一项重要的功能,它可以帮助用户了解设备的能耗情况,优化电源管理,...通过这个系统,开发者不仅可以学习到Android电池管理的底层原理,还能了解到如何构建一个实用且高效的监控应用。

    Android应用源码battery(电池)监控程序.zip

    在Android平台上,电池监控是移动应用开发者关注的重要领域,因为它直接影响到用户体验。...对于想要深入研究Android电池管理的开发者,这份"battery(电池)监控程序"的源码将是一份宝贵的参考资料。

    安卓Android源码——andbatdog监视电池.zip

    在安卓系统中,电池管理是优化用户体验的关键部分。...对于开发者来说,研究这样的源码可以提升对Android电池管理的理解,从而开发出更节能的应用。而对于系统维护者,它能帮助识别和解决电池相关问题,提升用户体验。

    Android应用源码之andbatdog监视电池.zip

    AndBatDog是一款专门用于监测Android设备电池状态的应用,通过源码分析,我们可以深入理解Android电池管理机制以及如何编写这样的监控工具。 一、Android电池状态获取 Android系统提供了BatteryManager类,它是一...

    安卓Android源码——battery(电池)监控程序.rar

    总的来说,这份源码可以作为学习Android电池管理、系统服务、广播接收器、后台服务以及权限管理的实践案例。通过对源码的深入剖析,开发者可以更好地理解Android系统的电池监控机制,从而在自己的应用中实现更智能、...

    android 电池监控 源码

    10. **电源管理最佳实践**: 源码可能还会包含一些电源管理的最佳实践,如优化唤醒锁的使用、减少不必要的后台活动、及时释放资源等,这些都是延长电池寿命的关键。 综上所述,"andbatdog电池监控"项目涵盖了Android...

    Android应用源码之andbatdog监视电池-IT计算机-毕业设计.zip

    总结起来,"Android应用源码之andbatdog监视电池"是一个很好的学习资源,它提供了Android电池管理功能的实现范例,涵盖了Android开发的核心技术,对于初学者和有经验的开发者都有很大的学习价值。通过深入研究这个...

    Android-RxBattery一个Android库使用RxJava和RxKotlin监控设备的电池状态

    Android-RxBattery将反应式编程的理念与Android电池管理相结合,为开发者提供了强大的工具,使他们能够更智能地管理应用的电池使用,提升用户体验,同时优化应用的性能和稳定性。通过使用这个库,开发者可以更专注于...

    android widget 电池挂件

    这个小部件旨在帮助用户方便地监控设备的电池电量,从而优化电源管理。 开发一个Android Widget涉及以下关键知识点: 1. **AppWidgetProvider**: 这是所有Android小部件的基础类,类似于BroadcastReceiver,用于...

    android电池监控

    在Android平台上,电池监控是一项重要的功能,它可以帮助用户了解设备的电力消耗情况,优化电源...通过这个项目,你不仅可以学习到Android开发的相关技能,还能为用户提供实用的电池管理工具,提升他们的设备使用体验。

    Android-电池管理-实时获取电池电量,温度...等属性。

    实现一个电池属性实时监听器。这些属性包括温度,电池电量....等等。而且,使用Service,Broadcast,以及Thread的方式来实现。MyBatteryService后台获取Battery属性值,然后,在Activity中进行相关数据的显示。

    监视电池.zip

    在Android系统中,电池监控是一项重要的功能,它允许用户了解设备的电量消耗情况,并帮助开发者...通过对"监视电池.zip"资源的学习和研究,我们可以更好地理解Android电池管理机制,并利用这些知识开发出更节能的应用。

Global site tag (gtag.js) - Google Analytics