洞悉安卓应用的电池使用状况

简介:

【编者按】本文作者为来自南非约翰内斯堡的女程序员 Rebecca Franks,Rebecca 热衷于安卓开发,拥有4年安卓应用开发经验。有点完美主义者,喜爱美食。

本文系国内ITOM管理平台 OneAPM 编译呈现,以下为正文。

开发安卓应用可以说是一项艰难而且让人气馁的任务。你需要考虑的事情太多,而应用的电池使用情况似乎也不是排名靠前的考虑因素。然而,它却是你最应该花心思的事情之一。如果你的应用太过耗电而将用户的手机瞬间变成一块砖头,那么用户卸掉应用并且再不回头的概率相当之高。就如下面的这个例子:

此处输入图片的描述

【用户评论】耗电大..这个应用耗电太快了。就那么一次我忘了关它,它就给我的大腿来了个三星标志的纹身!我的手机就像着火了一样,拜托各位,你们能搞出比这更好的应用…我还是喜欢你的。

很明显,这个APP并没有让用户满意。在本文中,我们将会了解一下Battery Historian这个工具,并给大家一些避免过快消耗手机电量的建议。

Battery Historian是什么?

Battery Historian是一个能够以HTML形式展示用户电池使用信息的工具。通过提供下面所示的这些信息,该工具能协助你分析电池的使用情况:

  • 哪些 APP 在前台运行
  • 哪些应用需要唤醒锁,以及手机相应的清醒时间
  • 无线广播的使用时间
  • GPS的活跃时间

如何使用Battery Historian?

下载并安装GO

按照Github页面上的指示安装battery historian。

打开你的机器并在终端运行adb bugreport>bugreport.txt。这会花费几分钟的时间。

运行battery historian。在浏览器中打开“localhost:9999”并选择bugreport.txt。然后会看到battery historian的结果。

此处输入图片的描述
Battery Historian 2.0版图表

在该图中,你能够看到电池水平和使用时间。它还强调了手机是否处于休眠模式,充电状态以及其他信息。从图中可以看出我的设备的电池状态将从早上七点的100%降至晚上十二点的10%左右。

洞悉安卓应用的电池使用状况 技术分享 第3张
应用状态标签

如果选择你的应用,它同时还能展示该应用的(电池使用)信息,以便查看该应用的性能表现。跳到“App Stats”标签,然后从下拉列表中选择你想查看的应用即可。你能看到诸如应用运行时间,数据使用情况等更多信息。

该工具对于了解应用使用的资源及在不使用应用时其后台运行的时间很有帮助。

降低安卓应用电能消耗的一些建议

  • 尽可能地避免唤醒锁
  • 批量操作以避免频繁地唤醒设备。
  • 将不重要的操作放在用户充电或已经连接至WiFi的时候。分析和记录之类的操作不需要实时进行。
  • 非万不得已不要下载数据。在使用手机数据或WiFi时尝试调整询问语句。
  • 后台运行时选用设备内置功能——例如使用[JobScheduler
    API][12]或SyncAdapters在需要的时候同步内容。
  • 移除不需要的后台进程。
  • 在一台低电量的设备上测试应用来察看其电池消耗情况。
  • 注意位置更新。你的请求命令越多,消耗的电能也就越多。点击此处进一步了解。
  • 加入[Android Performance Patterns Google
    Plus(G+安卓性能模式)社区][15],阅读改进电池使用[官方文档(http://developer.android.com/training/monitoring-device-state/index.html)
  • 使用 OneAPM Mobile Insight 产品,深度监控应用健康状况。

原文地址:http://riggaroo.co.za/understanding-battery-usage-android-app

相关文章
|
17天前
|
Java API 开发工具
如何将python应用编译到android运行
【6月更文挑战第27天】本文介绍在Ubuntu 20上搭建Android开发环境,包括安装JRE/JDK,设置环境变量,添加i386架构,安装依赖和编译工具。并通过`p4a`命令行工具进行apk构建和清理。
35 6
如何将python应用编译到android运行
|
7天前
|
Java 调度 Android开发
深入解析Android应用开发中的响应式编程与RxJava应用
在现代Android应用开发中,响应式编程及其核心框架RxJava正逐渐成为开发者的首选。本文将深入探讨响应式编程的基本概念、RxJava的核心特性以及如何在Android应用中利用RxJava提升代码的可读性和性能。 【7月更文挑战第7天】
|
2月前
|
存储 安全 Android开发
构建高效的Android应用:Kotlin与Jetpack的结合
【5月更文挑战第31天】 在移动开发的世界中,Android 平台因其开放性和广泛的用户基础而备受开发者青睐。随着技术的进步和用户需求的不断升级,开发一个高效、流畅且易于维护的 Android 应用变得愈发重要。本文将探讨如何通过结合现代编程语言 Kotlin 和 Android Jetpack 组件来提升 Android 应用的性能和可维护性。我们将深入分析 Kotlin 语言的优势,探索 Jetpack 组件的核心功能,并通过实例演示如何在实际项目中应用这些技术。
|
26天前
|
XML 存储 数据库
如何使用Android Studio创建一个基本的音乐播放器应用
如何使用Android Studio创建一个基本的音乐播放器应用
37 0
|
4天前
|
开发者 Kotlin Android开发
Kotlin协程在Android开发中的应用
【7月更文挑战第10天】Kotlin协程简化了Android异步编程,提供轻量级并发。挂起函数让异步代码看起来同步,不阻塞线程,便于管理。在项目中,添加Kotlin和协程依赖,如`kotlinx.coroutines-core`和`kotlinx-coroutines-android`。使用`CoroutineScope`和`launch`处理耗时任务,如网络请求,避免主线程阻塞。挂起函数和调度器控制执行上下文,适应不同任务需求。
|
10天前
|
机器学习/深度学习 人工智能 文字识别
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
文本,文字扫描01,OCR文本识别技术展示,一个安卓App,一个简单的设计,文字识别可以应用于人工智能,机器学习,车牌识别,身份证识别,银行卡识别,PaddleOCR+SpringBoot+Andr
|
13天前
|
存储 Android开发
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
|
13天前
|
存储 Android开发
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
详细解读Android获取已安装应用信息(图标,名称,版本号,包)
|
14天前
|
Android开发 开发者 UED
使用AlarmManager实现Android应用中的定时任务
使用AlarmManager实现Android应用中的定时任务
|
20天前
|
人工智能 API 语音技术
探索Gemini Pro AI在智能Android应用中的魅力
探索Gemini Pro AI在智能Android应用中的魅力
21 0

推荐镜像

更多