App “耗电综合征” 当我们说一个 App 耗电的时候我们在说什么? 我们可能是指 App 吃 CPU 导致系统掉电快,也可能是在说系统告警 App 后台扫描频繁消耗电量,还可能是在说使用 App 时手机发烫严重…… 是的,相对于 Crash、ANR 等常见的 APM 指标,Android App 电量优化更像是一个综合性的问题。 一方面,造成 App 耗电的原因是多种多样的,比如 CPU/GPU Load、屏幕、传感器以及其他硬件开销等,每个分类的排查思路是大相径庭的,再加上 AOSP 没有 “官方”
徐宜生,现任沪江高级Android开发工程师,著有《Android群英传》《Android群英传:神兵利器》两书,CSDN博客专家,慕课网Android讲师,活跃于Android社区,喜欢整洁的代码和简洁的架构,乐于拓展新的技术和知识,热衷于分享自己的经验和感悟。 我今天讲的题目是移动端APM性能监控。我们把APM系统定位为对应用的性能、可靠性进行线上的监控和预警的机制,通过APM系统来完善和统一整个流程,让我们去发现分析并解决新的问题,这是整个APM存在的意义。 APM系统的作用有哪些 一、监控线
Android操作系统其实是一个多用户的linux操作系统,每个android应用使用不同的用户,运行在自己的安全沙盘里。系统为所有的文件设置权限,这样一来只有同一个用户的应用可以访问它们。每个应用都有自己单独的虚拟机,这样应用的代码在运行时是隔离的,即一个应用的代码不能随意访问或者意外修改其他应用的内部数据。
在2017年Google I/O大会上,Google发布了Google Play管理中心的新功能:Android vitals。当app在大量设备上运行时,Android vitals会收集与应用性能相关的各种匿名数据,比如:与app稳定性相关的数据、app启动时间、电量使用情况、渲染时间以及权限遭拒等等,这些数据会被分析整理后展示在Google Play管理中心的Android vitals dashboard中。Android vitals 中需要开发者重点关注的核心指标有:crash率、ANR率、excessive wakeups(过渡唤醒)、stuck wake locks(唤醒锁定卡住)。其他指标,需根据应用类型选择性关注(Android vitals中的指标总览见图1-1)。若app某些指标表现很差,会影响用户体验,并且会导致应用在Google Play商店中的等级很低、排名靠后(APP指标异常示例图见图1-2)。开发者可以通过分析Android vitals中提供的一些参照指标,采取相应的措施来优化app。
引言:电量消耗控制一直是困扰所有APP开发者的一大难题,其中又以Android平台尤甚。业界同行为此做了非常多的研究与尝试,腾讯自然也不例外。本周大讲堂继续推出省电系列第二篇文章,与大家一起探讨Android开发中的省电窍门。 上篇文章罗列了很多数据,除了通过评测软件跑出来的数据外,还有些实际功耗数据,这些除了用power monitor硬件设备以外,还有是通过软件测出来的。有同学可能要挑战了,除了power monitor,其他软件形式的电量数据都是不可靠的,这种数据拿出来是没有说服力的。挑战的很好,为什
为什么要做电量测试 随着移动互联网的快速发展,手机的实用性、娱乐性越来越强。日常使用中发现,安装了应用后,即使不怎么使用,电量也会消耗很快。但如果恢复出场设置充满电后,手机可以待机很长时间。真相只有
Android 系统的电量统计工作,是由一个叫 BatteryStatsService 的系统服务完成的。
移动互联网的大潮到来之后,我们都变身好男人:“用智能手机的男人都是好男人,因为晚上必须回家充电。”一句笑言,但也可以看得出来目前使用智能设备电量方面的问题。
在IT、互联网及游戏行业,软件测试都是一个重要且不可或缺的过程,测试是软件生命周期中的一个重要阶段,是软件质量保证的关键步骤。目的是为了检验软件系统是否满足需求。随着中国IT、互联网及游戏产业的发展和市场的不断成熟,人们对软件功能的期望值也逐步增高,通常关注的指标包括,性能、可靠性以及最重要的质量缺陷等。几乎每个中大型IT企业的产品在发布前都需要大量的质量控制、测试和文档工作。这些企业也意识到测试的广度和深度决定了产品甚至企业的的生存周期。
相信移动端高度普及的现在,大家或多或少都会存在电量焦虑,拥有过手机发热发烫的糟糕体验。而发热问题是一个长时间、多场景的指标存在,且涉及到端侧应用层、手机 ROM 厂商系统、外界环境等多方面的影响。如何有效衡量发热场景、定位发热现场、以及归因发热问题成为了端侧应用层发热监控的面前的三座大山。本文通过得物 Android 端侧现有的一些监控实践,不深入功耗计算场景无法自拔,优先聚焦于发热场景本身,希望能给大家一些参考。
Instrument是Apple官方提供的一个强大的内置在xcode中的性能调试工具集。其中,Activity Monitor(活动监视器):监控进程级别的CPU,内存,磁盘,网络使用情况,可以得到应用程序在手机运行时总占用的内存大小;Core Animation(图形性能):这个模块显示程序显卡性能、CPU使用情况以及页面刷新帧率;Network:用链接工具分析程序如何使用TCP/IP和UDP/IP链接;Energy Log:耗电量监控。Instrument主要用于在调试过程中随时发现问题,及时优化,但是这个工具只能供有应用源码的程序员使用,无法测量用户真实使用场景下的性能。
对于Android开发者来说,懂得基本的应用开发技能往往是不够,因为不管是工作还是面试,都需要开发者懂得大量的性能优化,这对提升应用的体验是非常重要的。对于Android开发来说,性能优化主要围绕如下方面展开:启动优化、渲染优化、内存优化、网络优化、卡顿检测与优化、耗电优化、安装包体积优化、安全问题等。
Emmagee是网易杭州研究院QA团队开发的一个简单易上手的Android性能监测小工具,主要用于监控单个App的CPU,内存,流量,启动耗时,电量,电流等性能状态的变化,且用户可自定义配置监控的频率以及性能的实时显示,并最终生成一份性能统计文件。
腾讯WeTest作为有10年技术沉淀的一站式测试服务平台,将在年终回馈用户,推出云真机免费使用服务。所有“认证用户”在此期间,均可免费使用上千款平台机型,更有多款Android 7.0机型同步上架。 活动时间 2016年12月15日-2016年12月31日 活动细则 活动期间,只要是平台认证用户,均可在千台机型中挑选任意一台,免费使用“云真机”服务。每人每天1小时,尽情体验云端真机服务。 云真机服务包括: 远程调试:通过网页操作云端手机,快速定位手游/App问题 云端性能测试:使用极速、流畅的云真机进
功耗优化是应用体验优化的一个重要课题,高功耗会引发用户的电量焦虑,也会导致糟糕的发热体验,从而降低了用户的使用意愿。而功耗又是涉及整机的长时间多场景的综合性复杂指标,影响因素很多。不论是功耗的量化拆解,还是异常问题的监控,以及主动的功耗优化对于开发人员来说都是很有挑战性的。
不管是在Android开发还是iOS开发过程中,有时候我们需要经常根据设备的一些状态或信息进行不同的设置和性能配置,例如横竖屏切换时,电池电量低时,内存不够时,网络切换时等等,我们在这时候需要进行一些友好的提示和保护设备的一些设置。在Android开发中我们可以通过DeviceUtil这个工具类来获取设备网络状态、电池电量等各种状态信息,那么在iOS开发中,我们是否也能获取到设备的各种状态信息呢?答案是肯定的,本文就主要来学习一下在iOS开发过程中如何获取到设备的各种状态信息。 在iOS中要获取设备
在 Android 中 , 出现 动画掉帧 , 页面切换白屏 , 卡顿 , ANR 等情况 , 说明应用该进行 CPU 优化了 , CPU 优化主要是针对 线程 进行优化 , 如将耗时操作从主线程转移到子线程或服务 , 检查是否有线程没有及时关闭的泄漏情况 ;
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。
2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App。课程专题不仅仅介绍了Android系统中有关性能问题的底层工作原理,同时也介绍了如何通过工具来找出性能问题以及提升性能的建议。主要从三个 方面展开,Android的渲染机制,内存与GC,电量优化。下面是对这些问题和建议的总结梳理。
由于Android应用的沙箱机制,每个应用所分配的内存大小是有限度的,内存太低就会触发LMK(Low Memory Killer)机制,进而会出现闪退现象。如果要对内存进行优化,就需要先搞懂java的内存是如何分配和回收的,关于这方面,可以重点参考下面的内容: Java 垃圾回收器的GC机制,看这一篇就够了 Android 内存泄漏常见案例及分析 Android应用内存泄漏的定位、分析与解决策略
性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。而往往获取用户的成本是高昂的,因此因为性能问题导致用户流失的情况是我们要极力避免的,做不好这一点是我们开发人员的失职。
本文通过Android APP性能优化的四个方面做了详细分析,并对原理和重点做了详细解释,以下是全部内容:
众所周知,Android系统内置了应用的耗电量统计分析功能,但是并没有提供相应的API和文档,只是可以查看耗电量排行榜前10的应用的耗电百分比。此外,随着Android系统版本的迭代,各个版本耗电量统计的方式略有不同,但庆幸的是其统计模型并没有什么大变化。本文在前人的研究基础上总结Android平台的耗电量统计相关的计算方法和辅助工具。
Takser内建的全局变量,由Takser程序更新发布,在使用Tasker的时候可以直接调用。
在大部分Android平台的设备上,Android系统是16ms刷新一次,也就是一秒钟60帧。要达到这种刷新速度就要求在ui线程中处理的任务时间必须要小于16ms,如果ui线程中处理时间长,就会导致跳过帧的渲染,也就是导致界面看起来不流畅,卡顿。如果用户点击事件5s中没反应就会导致ANR。
功耗,通俗的理解即电流通过导体使设备运行,导体本身的电阻将电能转换为热能的过程,因此,通常功耗测试也叫电量测试。
当前移动设备越来越多地涌现在我们日常生活中,人们通过移动设备可以高效地完成很多事,比如网络购物、充值缴费、新闻资讯、理财等。随着中国IT、互联网的发展和市场的不断成熟,人们对软件功能的期望值也逐步增高。试想一下,当你打开一个APP要花费2分钟,玩游戏不断的卡顿,视频通讯时软件电量消耗极快,这会多么令人苦恼,直接的后果就是放弃使用这些应用。对于这些应用的厂商来说,失去的是用户、市场及口碑,而这些往往决定了企业的生存与发展。
随着Android 开发越来越规范, 国内工程师的素质,以及用户对产品的要求也越来越高。
本文为 Android 电量管理系列连载的第一篇,希望开发者能从阅读过程中收获设备续航方面的战略洞见及实践指南。
在业内,Android 手机一直有着“越用越慢”的口碑。根据第三方的调研数据显示,有77%的 Android 手机用户承认自己曾遭遇过手机变慢的影响。他们不明白为什么购买之初“如丝般顺滑”的 Android 手机,在使用不到一年之后都会“卡顿”得让人抓狂!根据我们初步的测试数据,手机长期所使用产生的磁盘碎片可以使得磁盘的写入效率下降为原来的50%。是不是有一种“吓死本宝宝了”的感觉。 那么怎么办呢?笔者曾经对这一问题进行分析,且让我一一向你道来。 故事起因 故事的起因是,针对“Android 系统越用越卡的
可能很多人都不是做APP开发的,但这个工具非常有用,可以推荐给做APP的朋友,一定会帮到他 腾讯开源了一个APP调试平台 - GT GT(简称随身调)是可以直接运行在手机上的“集成调试环境” 功能特点 (1)使用方便 只需一部手机,无需连接电脑,即可对APP进行快速的性能测试 (2)监控信息全面 可以监测多项性能指标,如:CPU、内存、流量、电量、帧率/流畅度等等 (3)可以查看开发日志、Crash日志 (4)抓取网络数据包 (5)调试APP内部参数 (6)真机代码耗时统计 (7)提供
QQ 音乐 Android 团队平台组的负责人阿宝,在和 QQ 音乐一同寻求突破的过程中,他发现创意、研发和平台的助力是让应用进步的三个重要因素。所以,他和团队一直很关注 Google 在 Android 上的技术发展和版本更新,并努力将新系统的新特性加入到 QQ 音乐中,让用户尽早获得最新体验。
不断追求突破的 QQ 音乐,在近 10 年的成长过程中受到了很多用户喜爱。 QQ 音乐 Android 团队平台组的负责人阿宝,在和 QQ 音乐一同寻求突破的过程中,他发现创意、研发和平台的助力是让应用进步的三个重要因素。所以,他和团队一直很关注 Google 在 Android 上的技术发展和版本更新,并努力将新系统的新特性加入到 QQ 音乐中,让用户尽早获得最新体验。 我们来通过☟视频☟了解他们的故事: 阿宝团队里的 Shawn 是 QQ 音乐适配 Android 9 Pie 的工程师,他和同事从 A
本文实例讲述了Android4.4电池低电量告警提示原理与实现方法。分享给大家供大家参考,具体如下:
从低功率到高功率大约 1.5s,从空闲态到高功率大约 2s,秒。在应用中每创建一个新的网络连接,网络(射频)模块都会转换到高功率状态(Radio Full Power),在数据传输完后再转回低功耗状态(Radio Low Power),转换的过程需要 5 秒,这 5 秒的耗电量保持在高功率状态,最后再转换空闲态需要 12 秒。因此,对于一个典型的移动网络设备,每个数据传输都会导致网络模块消耗 20 秒的电量。
Android P 在现有平台的功能基础上加入多项新特性以提升设备电量管理能力,确保系统对应用进行最合适的资源分配。
在前文中已经知道 SystemUI 是由 SystemServer 启动的。更准确的说是 SystemServer 启动了 SystemUI 中的名为 SystemUIService 的服务,然后在 SystemUIApplication 中启动了所有服务组件。 这些服务组件在 config.xml 中定义
如何评价我们开发出来的应用是耗电还是不耗电,如何测试?这就是我们今天讨论的主题——电量测试,一个在移动应用中新出现的测试类型。 作者简介 袁建发 腾讯智能平台测试组 专项测试专家,擅长高精尖的专项 测试,喜欢捣腾各种硬件和仪器。 移动设备从之前的诺基亚、摩托罗拉等功能机到现在android、iOS等智能机,手机已经越来越普及,功能越来越丰富,但电池技术基本上却停滞不前,逐渐显现出功能机时代没有出现的续航短板,续航待机时间短一直是用户吐槽的焦点,而许多厂商也坦承电池成了制约手机发展的最大障碍之一。手机
持久稳定的电量是每一位用户,各个设备厂商,以及开发者的共同诉求。Android 9 Pie 在之前版本的基础上,继续优化电量管理,并推出了电量功能如下:
20+个很棒的Android开源项目 本文摘自文章: 20+ Awesome Open-Source Android Apps To Boost Your Development Skills.
一般来说, 学习一门新的技术, 最应该做的就是阅读其官方文档, 那是最权威的。Android本身给我们提供了很多App性能测试和分析工具, 而且大部分都集成到Android Studio或DDMS中, 非常方便使用。
[GITHUB链接 Collie ](https://github.com/happylishang/Collie)
电量消耗的计算与统计是一件麻烦而且矛盾的事情,记录电量消耗本身也是一个费电量的事情,随着Android开的性能要求越来越高,电量的优化,也显得格外重要,一个耗电的应用,用户肯定会毫不犹豫的进行卸载,所以本篇博客,我们一起来学习Android性能优化之电量优化。
https://pan.baidu.com/s/1jAbY4xz5gvzoXxLHesQ-PA
2014 CCF-腾讯犀牛鸟基金项目申报指南 第一条 总则:在信息技术发展的重要演进阶段,CCF和腾讯将支持信息技术领域的青年学者开展具备行业创新、技术引领的科研工作。2014年,CCF-腾讯犀牛鸟科研基金重点资助的研究领域和方向请见附件一:《申报主题》 第二条 申报条件:本基金将面向符合如下条件的国内外所有高校及科研院所青年学者展开: 1、申请者是1978年1月1日(包括1月1日在内)之后出生的国内外高校/科研院所在职的全职教师; 2、研究生/博士毕业后在高校任职时间不超过五年; 3、能独
本节课学习四大组件最后一个, 广播接受者。 顾名思义广播接受者就是接受广播呗。比如在现实社会中,以前每个人家都有一台收音机,这可就可以去接受广播发出来的消息。大家都知道,程序世界也是参照的显示生活设计出来的,那在Android系统中也引入了广播这个概念。那在Android系统中广播有什么作用呢? 举个例子:比如你正在玩游戏或者看视频突然手机电量过低,这时候就会弹出一个框,提醒您手机电量过低,请充电的提示。其实电量改变就是一种广播类型,当电量过低时,系统就会发生一条广播,这时候正在运行的程序就会收到,同时给用户提醒。在Android系统中广播有很多类型。比如: 开机,关机, 打电话, 发短信,屏幕解锁等。
领取专属 10元无门槛券
手把手带您无忧上云