Android audio codec power consumption

2024-02-15 23:58

本文主要是介绍Android audio codec power consumption,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Android audio codec power consumption

 

一、        Codec状态

1、Off Mode

2、Normal Operation

3、Standby

 

状态转换:

1à2:从关闭模式到正常操作模式;

1à2à3:从关闭模式到standby模式,需要先从关闭模式到正常操作模式;

3à2:从standby模式到正常操作模式;

3à1:从standby模式到关闭模式;

 

二、        android kernel内核中做power consumption的难点

kernel/sound中,有soc_suspend()soc_resume()来管理codecpower,在android进入suspend的时候,调用注册的soc_suspend(),使codec进入关闭状态;在android唤醒的时候,系统会调用注册的soc_resume()来使codec进入工作状态。

但是,在有Incall或者FM的时候,为了降低系统功耗,需要将整个系统进入deep-sleep状态,目前在Incall或者FM的时候,在应用程序中强制申请了wake lock,使得系统想进deep-sleep状态的时候,无法进入,因此功耗比较大。为了解决这种功耗大的问题,必须使系统能在有Incall或者FM的时候,也能顺利进入deep-sleep状态,关闭wolfson的电,最大限度地降低功耗,提高续航能力,那么就需要在IncallFM的应用程序中释放出wake lock,使得系统想进deep-sleep状态的时候。

在系统进入deep-sleep状态的时候,系统会调用soc_suspend(),但是在kernel中要得到当前有没有Incall或者FM正在使用的情况,获取当前codec声音通道的使用状况非常困难。另外,对亮屏的时候,codec未使用的情况下,要使codec进入suspend,控制更困难。

为了更顺利的控制codecpower状态,把codec状态中的Noamalstandby控制放在ALSA中间层控制,因为在ALSA中间层,能够很方便地掌握当前声音通道的使用情况、有无PCM数据读写,因此在ALSA       中间层直接控制codecNoamalstandby状态,在deep-sleepkernel/sound中管理Off模式,两者相结合应该是比较合适的方案。

 

三、        Codec power状态控制方案

1、IncallFMATV

在打开IncallFMATV声音通道的时候,将wolfson调整为Normal状态,在关闭IncallFMATV声音通道的时候,将wolfson调整为standby状态。

 

       2PCM

在打开playback声音通道的的时候,如果当前有IncallFMATV,不改变wolfsonpower状态,如果没有IncallFMATV,则将wolfson

调整为standby状态,在向wolfson写数据之前先将wolfsonpower调整到Normal状态,然后开始写PCM数据到wolfson,在写完PCM数据后,在执行drain函数过程中,如果没有IncallFMATV,就将wolfson调整为standby状态。

在亮屏的时候,不使用wolfson时选择standby状态,因为standby状态转换到Normal的时候耗时较少(10ms<),从关闭到Normal的时候耗时要长一些(>32ms),有可能会影响实际音频效果,同时还需要考虑如何从standby到关闭状态的控制。WolfsonNormal状态到完成关闭状态大概需要522ms。另外,选择standby还可以避免wolfson开电的声音,但是需要4mA左右的开销。

 

 3deep-sleep中管理Off模式

   ALSA中间层管理wolfsonNoamalstandby状态,在执行deep-sleep过程中,如果当前系统为standby模式,就可以关闭wolfson的电,进入Off模式,否则,wolfson不进入deep-sleep模式,直接返回,不影响系统其他部分进入deep-sleep模式,达到整个系统功耗降低的效果。

 

四、        方案需要完成的工作

1、  修改codec WM8993的驱动,提供直接控制power状态的接口,关闭soc_suspend()soc_resume()功能,增加状态文件/proc/alsa/powerstate作为控制状态的特殊通道,android当前系统的状态文件/sys/power/state

2、  ALSA中间层通过特殊通道调用驱动中的power状态的控制接口

3、  修改ALSA中间层代码,做好状态控制逻辑的管理,如hardware下alsa_default.cpp文件中;

4、  IncallFM的应用程序需要放开wake lock

 

这篇关于Android audio codec power consumption的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/712915

相关文章

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.