Android智能手机平台电源管理技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如,prepare函数确认系统能够进入所请求的状态,
持,在驱动中需要实现设备驱动的suspend/resume
函数。
并且进行相应的准备工作。例如通过禁止抢占和 “冷冻”所有进程来准备进入所请求的电源状态。 save函数枚举所有注册有电源管理能力的设备,保 存系统和处理器的低层状态。接着PM核心禁止中
相反地,重新使能总线设备时,必须先使能根设备,
过写人某些特殊的非易失性处理器寄存器来记录挂
起的原因和挂起时的代码执行地址。系统上电后引
然后再使能子设备。
3
导程序先执行,从特殊寄存器中判断系统是否从深 度睡眠(Hibemation)中恢复。如果是,则负责从非
易挥发性存储介质中恢复所有的硬件上下文。如果
echo”deepsleep”>/sy∥poweI./state
Android的电源管理接口:
echo”standby”>/sy&/android—power/reque3【一
State
需求,允许电源管理参数在短时间的空闲或任务运
行在低电源需求时,可以被频繁地、低延迟地调整, 从而实现更精细、更智能的电源管理。 通过调节电压、频率来减少系统活动功耗需要 硬件支持。系统一般有多个执行单元,如电源管理 模块、片上晶振模块、锁相环模块、CPU核以及CPU
tus);USER—NOTIFICATION(Eady
but CPU keep suspended driVer
enter
on);USER—SLEEP(CPU
sleep
mode)。系统正常开机后进入到AWAKE状态,
f}帅eworks\base\cor℃\jni\android—os—power.cpp
android电源管理
Android智能手机平台的操作系统仍然是
UNUx,只是在LINuX内核的基础上增加了Android
不是,系统负责从sleep()函数处返回。给所有设备
上电,恢复中断。Restore函数被用来恢复系统的低 层调用,恢复设备上下文。CleaIlup函数从sleep状
相关的驱动,也就是UNux的蹦ve璐目录下的an.
when,booleaIl noChange一
这个命名有点奇怪,不要跟前面的androidjock—sus—
pend_auto.expire搞混了o (3)如果是auto expire的wake lock则可以忽
“ghts).//u¥er activit)r事件发生,设备会被切换到
Full 3.2
on状态,同时Reset
timeout)开始计时,在计
java提供底层的函数接口,与JNI层进行交互,JNI
层的代码主要在文件andmid—os—Power.cpp中,与
时时间到之前,如果有任何的activit)r事件发生,如
T0uch
screen
click,keyboard pressed等事件,则将Reset
off
Linu)【kemel交互是通过P0wer.c来实现的,Andriod 跟Kemel的交互主要是通过sys文件的方式来实现 的,具体请参考Kemel层的介绍。
断,关闭外部设备电源,调用Sleep函数根据挂起级 别进入睡眠状态。在嵌人式设备挂起过程中可以通
关闭一个设备。其驱动的su8pend方法需要两 个不同的调用,一个用来保存状态.另外一个用来关
闭设备电源。相反,resume方法需要一个调用用来 给设备供电,另一个调用来恢复设备的状态。在关
闭一个总线设备时必须关闭所有的下一级子设备。
a
ment has
zone.卟is
cun.ent
paper analyses
popuIar andIDid sman phone
power management
technolo#呵and explores the
situation and application pI.ospect.
Key words:Android;Power management;Smart phone
通过sysfs文件系统接口触发系统级电源状态
器,大内存,各种外设多(gps,c砌era,传感器),多任
务操作系统等特点,电源管理尤其显得重要。谷歌 的Android系统是一个平等开放的平台,其内核采 用linux,上层应用采用java,由于其稳定、开发简易 及无法比拟的资源整合,其在智能手机市场中所占 份额越来越大。linux内核层面对电源管理的支持 是Andmid电源管理技术基础。
standby
time power manage。
pe怕瑚ance
hot
has seriously lagged behind.P0wer management technolog)r is becoming
the design of these products.under tlle premise of function,longer become
Java应用层面 Android提供了现成的aJldroid.os.PowerManag.
管理系统的电源供应状态。一般有自己的低频、高
准确度晶振,用以维持一个RTC时钟、RTC定时器
er类,该类用于控制设备电源状态的切换。该类对
外有三个接口函数:
Void
和中断控制单元。其中中断控制单元使RTc定时
器和外部设备能够唤醒挂起的系统。 2.3设备电源管理
2“nux电源管理
对“nux嵌入式系统而言,电源管理可以分为
静态电源管理,动态电源管理,设备电源管理等三个
伤萱简佥:苏健(1975一),男,重庆市人,学士,主研方向:软件项目管理.嵌入式系统。
收稿日期:20lO—12—06
万方数据
5期
苏健:Andmid智能手机平台电源管理技术
・67・
转化。转换管理是通过注册好的驱动来进行。例
hardware\libhar(1ware\power\power.c
Backli曲t会从最亮慢慢调节到用户设定的亮度,系 统screen硪timer(settings一>sound&display一>
Disphy
settings一>screen
其中PowerManage焉enrice.java是核心,Power.
Android的电源管理主要是通过Wake kk来 实现的,在最底层主要通过如下三个队列来实现其
管理:
static
static
while pluged
in选项,backli出t会被强制调
节到DIM状态。 LIsT—HEAD(gjnactivejocks); LIST—HEAD(g—actiVe—panial—wake—
Iock
echo’’wake”>/sys/andmid—power/request—state
cat/sy∥蛐droid—power/acquire—panial—wake—
cat/sys/andmid—power/rele踮e—wakejock
cat/sys/android-power/reque虬一state
l
引言Biblioteka 方面。 2.1静态电源管理
电源管理是移动设备中最关键的技术之一,特 别是对于现代的智能手机,具有大屏幕,高频处理
Linux内核支持ON,standby,Suspend和Hiber— Ilate四种电源状态。Standby指“带电挂起”,通过将 CPu置于halt状态,将设备置于Dl状态来达到节 能的目的(ACPI规范中按能耗从高到低分D0~ D3)。节能效果不明显,但是响应延迟最小。Sus— pend就是挂起到RAM。在该状态下,所有设备被置 于D3状态,整个系统,除主存处于节电的自刷新模 式(self—refresh)外,全部关闭电源。响应延迟比 Standby大。Hibemate是通过将系统状态保存到非 易挥发性存储中(通常是磁盘),关闭整个系统的电 源。延迟时间最长,但比一次完整启动来得短。通 常情况下嵌入式设备都没有支持这种方式。
MaIlager.jaVa fhmeworks\base\sen五ces\iava、com\锄droid、 server、P0werManagersen,ice.java fhmeworks\base\core、java、锄droid\os\P0wer. jaVa
住及时调用andmid_unin“一suspenQ—lock释放资源。 系统有三种状态:usER—AwAl@(FuU on sta—
Android
Screen off timer.
framework层面
略,不然则必须及时把相关的wake lock释放掉,否 则会造成系统长期运行在高功耗状态。
(4)在驱动卸载或不再使用Wake lock时请记
Framework层面主要代码文件如下:
fhmeworks\base\core\iava\andmid\os\Power—
核中的数据缓存和指令缓存,其他模块统称为外围
模块(例如LCD控制器、UART、SDRAM控制器等)。 CPU高频时钟主要由PLL提供,同时PLL也为外围 模块和总线提供其他频率时钟。电源管理模块主要
接下来从Java应用层面,Andmid framework层 面,“nux内核层面分别进行详细讨论:
3.1
Android智能手机平台电源管理技术
苏健
(重庆大学软件学院,重庆400044)
摘
要:随着智能手机的普及发展,对系统的功能、可靠性、成本、体积、功耗提出了更严格的要
求,特别是电池供电系统,在电池性能严重滞后于手持终端设备需求的背景下,电源管理技术正成 为这些产品设计的关键所在。在满足功能实现的前提下,使手机待机时间更长的电源管理技术已
态恢复必须进行的清尾工作,例如抢占重新被允许,
系统恢复正常执行。当一次完整的转换完成后,
CPu执行权还给之前执行的进程。
2.2动态电源管理 动态电源管理技术提供一种操作系统级别的电
源管理能力,包含工作频率和电压,外部总线时钟频
率,外部设备时钟/电源等方面的动态调节及管理功 能等。通过用户层制定策略与内核提供管理功能交 互,实时调整电源参数同时来满足系统实时应用的
goTosleep(10ng time);//强制设备进入
S1eep状态 newwakeLock(int 应层次的锁
nags,String
在某些设备闲置时可以被主动关闭,从而节电。
在2.6内核中需要实现总线以及设备的电源管理支
tag);//取得相
万方数据
・68・
微处理机
2011年
void
userActivity(10ng
droid,其中包括alann。binder。pmem,power,timed—
gpio等模块。 Power模块就是针对Andmid智能手机平台的 电源管理模块,也是应用和驱动结合的模块。An.
droid的电源管理和标准UNUX的电源管理还是有 很大的差别。 标准uNux的电源管理接口:
echo’’standby”>/8y&/power/state echo”mem’’>/sy&/power/state
成为研究热点。通过分析目前流行的and谳d智能手机电源管理技术,探讨其现状并研究其应用前
景。 关键词:Android系统;电源管理;智能手机 DOI编码:lO.3969/j.issn.1002—2279.2011.05.018 文章编号:1002—2279【2011)05—0066—04 文献标识码:A 中图分类号:TP36
Android Smart PhOne PIatfOrm POwer Management TeChnOIOgy
SU Jian
(‰scJIl0Df矿黝啪re E嚼鹏e^r曙‰哪嘶所龇瑙渺,‰,嘲嘲400044,傩溉)
Abstract:witll the popularit)r of the developnlent of
3.3“nux内核层面
timer,系统保持在AwAKE状态。如果有
wake
应用程序在这段时间内申请了FuU
lock,那么
系统也将保持在AWAKE状态,除非用户按下power key。在AwAKE状态下如果电池电量低或者是用 AC供电8creen o珏timer时间到并且选中Keep
screen on
reliability。cost,size,power consumption made more stringent ered systems’battery t}le key
to
gman
phones,山e system 7s functionalit)r, requirements,in panicuIar,battery—pw—
持,在驱动中需要实现设备驱动的suspend/resume
函数。
并且进行相应的准备工作。例如通过禁止抢占和 “冷冻”所有进程来准备进入所请求的电源状态。 save函数枚举所有注册有电源管理能力的设备,保 存系统和处理器的低层状态。接着PM核心禁止中
相反地,重新使能总线设备时,必须先使能根设备,
过写人某些特殊的非易失性处理器寄存器来记录挂
起的原因和挂起时的代码执行地址。系统上电后引
然后再使能子设备。
3
导程序先执行,从特殊寄存器中判断系统是否从深 度睡眠(Hibemation)中恢复。如果是,则负责从非
易挥发性存储介质中恢复所有的硬件上下文。如果
echo”deepsleep”>/sy∥poweI./state
Android的电源管理接口:
echo”standby”>/sy&/android—power/reque3【一
State
需求,允许电源管理参数在短时间的空闲或任务运
行在低电源需求时,可以被频繁地、低延迟地调整, 从而实现更精细、更智能的电源管理。 通过调节电压、频率来减少系统活动功耗需要 硬件支持。系统一般有多个执行单元,如电源管理 模块、片上晶振模块、锁相环模块、CPU核以及CPU
tus);USER—NOTIFICATION(Eady
but CPU keep suspended driVer
enter
on);USER—SLEEP(CPU
sleep
mode)。系统正常开机后进入到AWAKE状态,
f}帅eworks\base\cor℃\jni\android—os—power.cpp
android电源管理
Android智能手机平台的操作系统仍然是
UNUx,只是在LINuX内核的基础上增加了Android
不是,系统负责从sleep()函数处返回。给所有设备
上电,恢复中断。Restore函数被用来恢复系统的低 层调用,恢复设备上下文。CleaIlup函数从sleep状
相关的驱动,也就是UNux的蹦ve璐目录下的an.
when,booleaIl noChange一
这个命名有点奇怪,不要跟前面的androidjock—sus—
pend_auto.expire搞混了o (3)如果是auto expire的wake lock则可以忽
“ghts).//u¥er activit)r事件发生,设备会被切换到
Full 3.2
on状态,同时Reset
timeout)开始计时,在计
java提供底层的函数接口,与JNI层进行交互,JNI
层的代码主要在文件andmid—os—Power.cpp中,与
时时间到之前,如果有任何的activit)r事件发生,如
T0uch
screen
click,keyboard pressed等事件,则将Reset
off
Linu)【kemel交互是通过P0wer.c来实现的,Andriod 跟Kemel的交互主要是通过sys文件的方式来实现 的,具体请参考Kemel层的介绍。
断,关闭外部设备电源,调用Sleep函数根据挂起级 别进入睡眠状态。在嵌人式设备挂起过程中可以通
关闭一个设备。其驱动的su8pend方法需要两 个不同的调用,一个用来保存状态.另外一个用来关
闭设备电源。相反,resume方法需要一个调用用来 给设备供电,另一个调用来恢复设备的状态。在关
闭一个总线设备时必须关闭所有的下一级子设备。
a
ment has
zone.卟is
cun.ent
paper analyses
popuIar andIDid sman phone
power management
technolo#呵and explores the
situation and application pI.ospect.
Key words:Android;Power management;Smart phone
通过sysfs文件系统接口触发系统级电源状态
器,大内存,各种外设多(gps,c砌era,传感器),多任
务操作系统等特点,电源管理尤其显得重要。谷歌 的Android系统是一个平等开放的平台,其内核采 用linux,上层应用采用java,由于其稳定、开发简易 及无法比拟的资源整合,其在智能手机市场中所占 份额越来越大。linux内核层面对电源管理的支持 是Andmid电源管理技术基础。
standby
time power manage。
pe怕瑚ance
hot
has seriously lagged behind.P0wer management technolog)r is becoming
the design of these products.under tlle premise of function,longer become
Java应用层面 Android提供了现成的aJldroid.os.PowerManag.
管理系统的电源供应状态。一般有自己的低频、高
准确度晶振,用以维持一个RTC时钟、RTC定时器
er类,该类用于控制设备电源状态的切换。该类对
外有三个接口函数:
Void
和中断控制单元。其中中断控制单元使RTc定时
器和外部设备能够唤醒挂起的系统。 2.3设备电源管理
2“nux电源管理
对“nux嵌入式系统而言,电源管理可以分为
静态电源管理,动态电源管理,设备电源管理等三个
伤萱简佥:苏健(1975一),男,重庆市人,学士,主研方向:软件项目管理.嵌入式系统。
收稿日期:20lO—12—06
万方数据
5期
苏健:Andmid智能手机平台电源管理技术
・67・
转化。转换管理是通过注册好的驱动来进行。例
hardware\libhar(1ware\power\power.c
Backli曲t会从最亮慢慢调节到用户设定的亮度,系 统screen硪timer(settings一>sound&display一>
Disphy
settings一>screen
其中PowerManage焉enrice.java是核心,Power.
Android的电源管理主要是通过Wake kk来 实现的,在最底层主要通过如下三个队列来实现其
管理:
static
static
while pluged
in选项,backli出t会被强制调
节到DIM状态。 LIsT—HEAD(gjnactivejocks); LIST—HEAD(g—actiVe—panial—wake—
Iock
echo’’wake”>/sys/andmid—power/request—state
cat/sy∥蛐droid—power/acquire—panial—wake—
cat/sys/andmid—power/rele踮e—wakejock
cat/sys/android-power/reque虬一state
l
引言Biblioteka 方面。 2.1静态电源管理
电源管理是移动设备中最关键的技术之一,特 别是对于现代的智能手机,具有大屏幕,高频处理
Linux内核支持ON,standby,Suspend和Hiber— Ilate四种电源状态。Standby指“带电挂起”,通过将 CPu置于halt状态,将设备置于Dl状态来达到节 能的目的(ACPI规范中按能耗从高到低分D0~ D3)。节能效果不明显,但是响应延迟最小。Sus— pend就是挂起到RAM。在该状态下,所有设备被置 于D3状态,整个系统,除主存处于节电的自刷新模 式(self—refresh)外,全部关闭电源。响应延迟比 Standby大。Hibemate是通过将系统状态保存到非 易挥发性存储中(通常是磁盘),关闭整个系统的电 源。延迟时间最长,但比一次完整启动来得短。通 常情况下嵌入式设备都没有支持这种方式。
MaIlager.jaVa fhmeworks\base\sen五ces\iava、com\锄droid、 server、P0werManagersen,ice.java fhmeworks\base\core、java、锄droid\os\P0wer. jaVa
住及时调用andmid_unin“一suspenQ—lock释放资源。 系统有三种状态:usER—AwAl@(FuU on sta—
Android
Screen off timer.
framework层面
略,不然则必须及时把相关的wake lock释放掉,否 则会造成系统长期运行在高功耗状态。
(4)在驱动卸载或不再使用Wake lock时请记
Framework层面主要代码文件如下:
fhmeworks\base\core\iava\andmid\os\Power—
核中的数据缓存和指令缓存,其他模块统称为外围
模块(例如LCD控制器、UART、SDRAM控制器等)。 CPU高频时钟主要由PLL提供,同时PLL也为外围 模块和总线提供其他频率时钟。电源管理模块主要
接下来从Java应用层面,Andmid framework层 面,“nux内核层面分别进行详细讨论:
3.1
Android智能手机平台电源管理技术
苏健
(重庆大学软件学院,重庆400044)
摘
要:随着智能手机的普及发展,对系统的功能、可靠性、成本、体积、功耗提出了更严格的要
求,特别是电池供电系统,在电池性能严重滞后于手持终端设备需求的背景下,电源管理技术正成 为这些产品设计的关键所在。在满足功能实现的前提下,使手机待机时间更长的电源管理技术已
态恢复必须进行的清尾工作,例如抢占重新被允许,
系统恢复正常执行。当一次完整的转换完成后,
CPu执行权还给之前执行的进程。
2.2动态电源管理 动态电源管理技术提供一种操作系统级别的电
源管理能力,包含工作频率和电压,外部总线时钟频
率,外部设备时钟/电源等方面的动态调节及管理功 能等。通过用户层制定策略与内核提供管理功能交 互,实时调整电源参数同时来满足系统实时应用的
goTosleep(10ng time);//强制设备进入
S1eep状态 newwakeLock(int 应层次的锁
nags,String
在某些设备闲置时可以被主动关闭,从而节电。
在2.6内核中需要实现总线以及设备的电源管理支
tag);//取得相
万方数据
・68・
微处理机
2011年
void
userActivity(10ng
droid,其中包括alann。binder。pmem,power,timed—
gpio等模块。 Power模块就是针对Andmid智能手机平台的 电源管理模块,也是应用和驱动结合的模块。An.
droid的电源管理和标准UNUX的电源管理还是有 很大的差别。 标准uNux的电源管理接口:
echo’’standby”>/8y&/power/state echo”mem’’>/sy&/power/state
成为研究热点。通过分析目前流行的and谳d智能手机电源管理技术,探讨其现状并研究其应用前
景。 关键词:Android系统;电源管理;智能手机 DOI编码:lO.3969/j.issn.1002—2279.2011.05.018 文章编号:1002—2279【2011)05—0066—04 文献标识码:A 中图分类号:TP36
Android Smart PhOne PIatfOrm POwer Management TeChnOIOgy
SU Jian
(‰scJIl0Df矿黝啪re E嚼鹏e^r曙‰哪嘶所龇瑙渺,‰,嘲嘲400044,傩溉)
Abstract:witll the popularit)r of the developnlent of
3.3“nux内核层面
timer,系统保持在AwAKE状态。如果有
wake
应用程序在这段时间内申请了FuU
lock,那么
系统也将保持在AWAKE状态,除非用户按下power key。在AwAKE状态下如果电池电量低或者是用 AC供电8creen o珏timer时间到并且选中Keep
screen on
reliability。cost,size,power consumption made more stringent ered systems’battery t}le key
to
gman
phones,山e system 7s functionalit)r, requirements,in panicuIar,battery—pw—