Android应用电量消耗评估的三板斧

这里只是使用最简单的方法对你的app的电量消耗进行评估,如果还想更加详细或者复杂的方法,可以使用一些比较专用的工具,比如Emmagee(https://github.com/NetEase/Emmagee),这个就很好用。

第一招:看系统的 设置-电池 里面的耗电排名。

除非你的APP耗电很出格,一用手机就发烫、电量直线往下掉,否则,对于大多数用户,你到底耗电怎么样,主要就是看这个了。

先测测你的静默耗电:

不要插usb和电源,在不充电的情况下,保持你的app前台或者后台静默一晚上,也可以根据不同业务场景,多测几次,然后在 设置-电池 中,看看你的耗电排名,以及进一步点击看看具体开销。

再测测你的操作耗电:

步骤一样,只不过,你可以拿竞争对手或者业内标杆来进行下对比,各正常操作10分钟,然后再看耗电的排名和具体开销,相信自己的app耗电在什么水平上,应该心里有数了。

第二招:通过adb工具查看各部件的耗电。

手机中的每个部件(CPU、LED、sensor、GPS、3G、wifi 、wakelock等等)运行时对应的能耗值都放power_profile.xml 文件中, 而且系统的设置-->电池-->使用情况中,统计的能耗使用情况也是以power_profile.xml的value 作为基础参数的。通过命令监控app各部件的使用时长,然后结合设备耗电的基础参数进行加权计算,即可得到 app 使用的耗电量。操作步骤如下:

1) 拔掉 usb 连接;

2) 操作 app(比如保持前台、后台静默一段时间);

3) 插上 usb,执行 adb shell dumpsys batteryinfo,找到你的应用对应UID资源使用,如下所示Wake lock GCM_LIB: 24m 41s 316ms长时间使用,导致耗电:

#10062:

Network: 160.39KB received, 150.69KB sent

Wake lock window: 4s 729ms window (2 times) realtime

Wake lock GCM_LIB: 24m 41s 316ms partial (1 times) realtime

Wake lock AlarmManager: 32ms partial (23 times) realtime

TOTAL wake: 24m 41s 348ms partial, 4s 729ms window realtime

Sensor GPS: (not used)

Proc *wakelock*:

CPU: 9s 230ms usr + 9s 470ms krn

Proc com.xxxx.xxxx:

CPU: 1s 120ms usr + 770ms krn

Proc com.xxxx.xxxx::

CPU: 33s 140ms usr + 7s 320ms krn

Apk com.xxxx.xxxx::

Service com.xxxx.xxxx::

Created for: 47m 23s 532ms  uptime

Starts: 1, launches: 1

Service com.xxxx.xxxx::

Created for: 15s 910ms  uptime

Starts: 19, launches: 19

……

4) 监控app wake lock 类型、次数以及时间,传感器的使用时间,网络流量的开销,各子个进程的 CPU 使用时间;

第三招:观察cpu开销

保持前后台静默的时候,通过命令 adb shell top -d 1 |grep yourapp,可以观察你的应用相关进程的cpu开销。

前台静默时在滚屏、倒计时等不可视的时候,我们期望cpu占用0%。

尤其是后台静默,一旦超过0%,必然持续耗电,都必须解决。

简简单单3招,足以让你对你的APP的耗电量有个大概的评估,而且,对存在的问题有个大概的定位。

对于无线设备发展到今天的地步,性能越来越不再是问题了,但是,电量却依然是目前最大的一个瓶颈,你的APP想因为耗电而被用户“请出”设备吗?不妨动起来,试试这简单的三板斧。

时间: 2024-11-07 04:30:00

Android应用电量消耗评估的三板斧的相关文章

Android应用的电量消耗和优化的策略

对于Android移动应用的开发者来说,耗电量的控制一直是个老大难问题. 我们想要控制耗电量,必须要有工具或者方法比较准确的定位应用的耗电情况.下面,我们先来分析下如何计算android应用的耗电量. 在android自带的设置里面有电量计算的界面,如下图: <ignore_js_op> 我们看下是如何实现的:? 在android framework里面有专门负责电量统计的Service:BatteryStatsSerive.这个Service在ActivityManagerService中创

Android-电量优化

Android手机和iphone相比较起来,运行以及耗电都没有iphone体验更好.主要是Android的多任务机制问题.最直观的就是很多Android手机出厂就会带上清理垃圾,清理内存的软件.会有一键清理释放内存功能.但是在iphone上你是看不到的. Android:为了提高手机运行速度或者是有强迫症的,就会经常一键清理.99%的用户手机上几乎都安装一个优化软件或原厂或第三方.没有使用任何优化软件的用户一夜待机手机耗电就会很高. Iphone:不用总去杀进程你也不会感觉到卡,正常来说不用安装

【MIG专项测试组】移动应用电量消耗测试入门篇

如何评价我们开发出来的应用是耗电还是不耗电,如何测试?这就是我们今天讨论的主题--电量测试,一个在移动应用中新出现的测试类型. 移动设备从之前的诺基亚.摩托罗拉等功能机到现在android.iOS等智能机,手机已经越来越普及,功能越来越丰富,但电池技术基本上却停滞不前,逐渐显现出功能机时代没有出现的续航短板,续航待机时间短一直是用户吐槽的焦点,而许多厂商也坦承电池成了制约手机发展的最大障碍之一.手机的其他模块越来越小,而电池的体积越来越大,已经成为了一个不争的事实.早前的功能机电池容量基本都小于

升级Win10系统后笔记本发热厉害电量消耗快该怎么办

最近有用户反映,在升级了win10系统后出现了发热严重,电量消耗快的情况,那么升级Win10系统后发热厉害电量消耗快该怎么办?下面小编就为大家介绍此问题的解决方法. 方法如下: 1.点击开始图标,选择设置: 2.点击“隐私”: 3.点击左侧的“澳门银河娱乐场”,在右侧将不常用的后天应用关闭掉即可. 以上就是升级Win10系统后发热厉害电量消耗快的解决方法了,有遇到此问题的用户不妨参考下上述方法.

苹果手机发烫电量消耗快,如何实时监控电池温度

手机电池发热是我们在手机使用中经常可以碰到的现象.基本上90%的手机在长时间通话之后,电池会很热,连手机也会变热.每次打电话或玩游戏后,手机发烫的厉害,是不是每次都都担心会出问题呢? 在iOS中,我们不仅能通过状态栏的电量百分比数字来时刻掌握电池的使用情况,同时那些不忍心看着电量一点一点下跌的用户也能设置隐藏百分比显示,既然如此,何不多一个选择呢? 要是以下解决不了我告诉你一个好地方广州市天河区天河北路183号大都会广场4407-4408室(中国市长大厦旁) Battery Temperatur

军规13 降低流量和电量消耗

流量和电量的使用,不上APP直接提供的功能,但是也会影响到用户的体验. 13.1 测试APP安装文件的大小和安装过程 通过APP文件大小,可以判断安装APP时用户流量的消耗:通过测试APP安装过程,可以验证APP安装的功能是否正常. 作为用户,如果使用的是数据网络,APP安装文件如果太大,一般不会考虑马上安装(等待WiFi),但是到了又WiFi的地方,可能会忘记. Apple会限制APP最大容量,目前为4GB(2015.02.12),但是仍然维持OTA(普通空中网络下载方式)方式下载APP的容量

性能优化之电量优化2-使用Battery Historian生成电量消耗报告

1 数据准备 1.1 先断开adb服务,然后开启adb服务 (a)adb kill-server 这一步很重要,因为当我们开发时做电量记录时会打开很多可能造成冲突的东西.为了保险起见我们重启adb.adb devices就会自动连接查找手机. 备注:mac可以直接使用adb命令:但是windows不行,需要进入到adt下:adt-bundle-windows-x86_64-20140702\adt-bundle-windows-x86_64-20140702\sdk\platform-tools

Android 电池电量进度条,上下滚动图片的进度条(battery)

最近,制作一个app,需要模拟一个电池电量的进度条,根据电量多少来设置百分比,进度条不断上下滚动,就像平时手机充电一样的电池电量进度条.我就自定义view实现了电量进度条.修改图片就可以达到自己想要的效果 一.自定义View,Battery.java,循环刷新界面,两张图片上下滚动,达到不断向右移动的效果.挺有意思的 package com.example.battery; import android.content.Context; import android.content.res.Re

Android系统电量指示灯 Cubietruck

请先移步,对led的操作,我们使用相同的battrey_leds.shhttp://forum.cubietech.com/forum.php?mod=viewthread&tid=3212&highlight=%E5%B5%8C%E5%85%A5%E5%BC%8F%E5%AD%A6%E4%B9%A0[嵌入式学习]led 子系统与led trigger 参考以下三篇博文 1. 系统服务的启动方式 http://blog.csdn.net/windskier/article/details/