Android 性能优化

来源:互联网 发布:钓鱼网络是什么意思 编辑:程序博客网 时间:2024/05/29 17:48

Android 性能优化

一、电量

电量当然是我们在开发的移动应用中必须要做处理的部分,因为谁都不希望自己的移动设备因为安装了你的应用而大大缩短了自己的待机时间,当然长连接电源的就不用考虑了,因为它从来不会考虑没电的情况,就比如盒子,所以我们要进行电量的优化,


要做优化我们必须知道应用电量的消耗,我们如果自己去创造一写代码在我们的应用中去监听电量的消耗,那肯定是不行的,因为它就是一个耗电的东西了,最好是依靠第三方的。

1.1 Battery Historian

它是Android 5.0 开始引入的一个API,可以获取设备上电量的使用情况

$ adb shell dumpsys batterystats > xxx.txt  //得到整个设备的电量消耗信息$ adb shell dumpsys batterystats > com.package.name > xxx.txt //得到指定app相关的电量消耗信息

得到之后呢?再使用Google编写的一个Python脚本把数据信息转换成可读性更好的html文件

$ python historian.py xxx.txt > xxx.html

打开html 文件就可以看到具体的电量消耗情况了

1.2 Track Battery Status & Battery Manager 可以获取到手机充电的电量

1.3 优化电量

1.3.1 本来高效的保存电量和让用户使用我们的APP这是一个矛盾的话题,但是不得不面对

Android 会不断的关闭各种硬件来延长待机时间,屏幕会由量变暗再关闭,CPU进入睡眠状态,一般应用都是尝试唤醒CPU,一般最简单的是WakeLock 保持CPU关闭,当然这种操作的时候,我们要对WakeLock的释放就显得很重要了,

1.3.2 网络访问的时候也会造成电量消耗,这是我们应该采取缓存机制,尽量避免频繁请求网络, 使用合适的网络请求技术,对将要请求的数据进行缓存,和时间间隔的判断,当有缓存并且没有超出时间间隔的时候就直接显示缓存,让用户自己去做更新等操作,

1.3.3 推送 ,推送的时候也会造成电量的消耗,我们都知道推送的原理就是建立了一个长连接,这时我们也要进行优化,包括选择合适的三方推送或者自己的推送内部机制的实现。

1.3.4 还有其他方面的原因,我们在开发的时候就依据需求自己指定方案了,

后续将其他优化全部补上来