Android平台功耗优化方案总结之软件层功耗定位?

功耗和温升通常是Android系统的硬伤,尤其是结构空间有限的Android系统设备,比如用Android系统开发的手表设备。结构有限意味着能放的电池容量不会很大,导致待机时间变得特别短。

而且通常这种手表设备的在原始Android系统上,功耗比较正常,但内置一些功能应用后,功耗变得很大,待机时间特别短。下面是功耗分析的一般步骤:

遇到待机功耗偏高问题,分析步骤如下:
1.确定飞行模式下低电流是否正常?
  正常情况飞行模式下待机电流在3-5mA;
  不正常:给硬件和驱动分析解决;
2.若飞行模式正常,开始确认原生Launcher3的软件版本是否正常?(去掉一切客户预置的apk)
  正常情况下Launcher3软件版本
  4G模式待机电流10-13mA 
  2G/3G模式待机电流7-9mA
  需要注意的是信号不好时会影响这个范围值;  
  若不正常:抓取mtklog分析;
3.若Launcher3软件正常,加上客户预置的WatchLauncher等apk后电流不正常?
   抓取mtklog分析;
   
4.功耗异常mtklog分析方法:
   一般应用层的功耗问题有以下种情况
    一是某个应用持有唤醒锁未释放;
    二是后台有网络访问行为发生;
    三是定位调用GPS;
    四是蓝牙WIFI搜索或扫描
    五其他Sensor在后台持续工作如心率传感器。
    
4.1 首先确认是否正常待机
    要确认CPU是否正常睡眠进入待机,需要查看PowerManagerService是否释放了所有持有的唤醒锁,如下:
    查看sys_log
    Line 3115: 01-01 00:05:14.731848   973  1003 D PowerManagerService: acquireWakeLockInternal: lock=256728484, flags=0x3000001a, tag="key_u_wake_lock", ws=null, uid=1000, pid=4287
    Line 3137: 01-01 00:05:14.753272   973  1003 D PowerManagerNotifier: onWakeLockAcquired: flags=805306394, tag="key_u_wake_lock", packageName=android.fise.com.fiseassitant, ownerUid=1000, ownerPid=4287, workSource=null
    Line 4344: 01-01 00:05:24.765232   973  2238 D PowerManagerService: releaseWakeLockInternal: lock=256728484 [key_u_wake_lock], flags=0x0, total_time=10033ms
    Line 4345: 01-01 00:05:24.765673   973  2238 D PowerManagerNotifier: onWakeLockReleased: flags=805306394, tag="key_u_wake_lock", packageName=android.fise.com.fiseassitant, ownerUid=1000, ownerPid=4287, workSource=null
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值