Android开发中 手机发热原因分析
相信大家都还记得前不久“台湾少女长时间用手机打电话后,面部被轻微烫伤”的微博吧,我们随之会有疑问,打个电话为什么会产生如此高的温度?其实这是某些安卓app软件所造成的。这些“问题App”会造成手机卡顿、额外耗电等问题,但为什么会产生这些问题呢?这是因为它的开发人员忽略了代码规范,使得App在后台(用户退出后)仍然大量消耗CPU资源,异常持续时间以让部分型号的Android手机达到较高温度。
这里大概有四类容易导致CPU异常的代码示例:
1、移动广告平台SDK (ex: AdMob)使用规范, 应该只在前台中使用, 退至後台时需要调用释放资源的接口, “AdView.stopLoading()”, 我们分析了许多靠广告收入的免费App, 发现其中有不少App都有CPU过高的问题, 透过分析堆栈, 发现大多有共通之处, 再从其代码分析後定位到开发人员容易忽略调 用“AdView.stopLoading()”接口
2、WebView的使用, WebView是Android提供的一个呈现网页的控件, 一样要注意当应用退至後台或是不使用时, 需调用接口暂停执行网页内容, “WebView.onPause()”
3、SensorManager的使用, SensorManager是Android提供的服务让开发者可以取得传感器的资讯, 由於SensorManager是会不断回调给App传感器的值, 是会不断消耗系统资源. 所以当App在使用SensorManager时, 一定要记得App退出後或者不用时, 要调用”SensorManager.unregisterListener”
4、功能型消耗, 我们发现也有不少App是真的想要在後台做一些事情但是占用了太多的系统资源, 以至於手机卡慢甚至耗电, 举例来说Wifi万能钥匙这款App从大数据分析来看, 该应用的Socket线程会不断运作, 最高甚至在後台会消耗40%以上的CPU资源, 这点就得依靠研发人员兼顾应用的功能和效能了。
5.注册了广播和服务等没及时关闭,导致一直在后台运行
6.内存泄漏是一件头疼的事情,内心泄漏过多会导致内存溢出,内存占有率过大会导致发热
原文:https://blog.csdn.net/gulangboke/article/details/52072109
Android开发中 手机发热原因分析相关推荐
- Android开发中StackOverflowError错误实例分析
http://blog.csdn.net/mozhizun/article/details/7051300 http://blog.csdn.net/gaomatrix/article/details ...
- Android开发中手机存储路径问题
安卓手机文件夹storage/emulated下面有两个文件夹0和legacy? 它们里面的文件是一模一样的,都跟主界面 的文档点开来是一样的,那 0 和 legacy两个文件夹是什么关系,为什么?里 ...
- android开发中Settings结构简单分析
Settings界面结构简单分析 Setting是android系统很重要的模块,这个模块并不是很复杂,这部分也一直在看,很多时候都是在看某个具体的选项,比如WLAN,蓝牙这样具体的源码,但是对于主界 ...
- android 判断安装微信,Android开发中判断手机是否安装了QQ或者微信
下面一段代码给大家分享了android中判断手机是否安装了qq或者微信,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下吧 public static boolean isWeixinAv ...
- java中计算器算cos值,Android开发中计算器的sin、cos及tan值计算问题分析
本文实例讲述了Android开发中计算器的sin.cos及tan值计算问题.分享给大家供大家参考,具体如下: 接到一个需求 :要求计算器sin90=1,拿到知道很疑问 难道不等于一么?测试了四五个手机 ...
- android动画sin cos,Android开发中计算器的sin、cos及tan值计算问题分析
本文实例讲述了Android开发中计算器的sin.cos及tan值计算问题.分享给大家供大家参考,具体如下: 接到一个需求 :要求计算器sin90=1,拿到知道很疑问 难道不等于一么?测试了四五个手机 ...
- android motionevent 坐标,Android开发中MotionEvent坐标获取方法分析
本文实例讲述了Android开发中MotionEvent坐标获取方法.分享给大家供大家参考,具体如下: Android MotionEvent中getX()与getRawX()都是获取屏幕坐标(横), ...
- android include 控件详解,Android开发中include控件用法分析
本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面 ...
- android开发中遇到的问题汇总
android开发中遇到的问题汇总(五),android汇总127.ANDROID仿IOS时间_ANDROID仿IOS弹出提示框 http://dwtedx.com/itshare_297.html1 ...
最新文章
- python软件下载路径问题-mac上Python安装和修改Python默认路径遇到的问题
- 大数据WEB阶段Maven安装配置与使用
- 检测单击鼠标左键并拖动的消息_3-75 通过鼠标选择文本
- iframe跨域通信的通用解决方案-第二弹!(终极解决方案)
- 奇文:金庸小说中的第一高手是谁?
- java基本变量的堆栈_JAVA经验谈:尽可能使用堆栈变量
- 智能手持设备产品设计“八戒”
- bim webgl 模型 轻量化_BIM模型轻量化是什么?BIM模型轻量化原理
- c语言devc 怎么学,C语言(枚举,DEVFORGE学编程社区)
- Facebook自动化测试札记
- Pyramidal Feature Shrinking for Salient Object Detection阅读笔记
- 统计csv表格中某一元素的个数(count函数)
- 微信引流推广:美拍视频简单的引流方法分享
- ubuntu安装软件失败无法安装其他软件的解决办法
- 【重识云原生】计算第2.6节——裸金属方案
- MySQL Online DDL学习笔记
- Silverlight之变换(6)
- MySQL 精选问答 500 题
- Windows11 安装IIS的步骤
- C#基础 string Split 用字符分割字符串,删除空白项