Android应用开发之CPU优化
最近开发一个APK的时候遇到了一个问题,CPU动不动就占用到40%以上,而且是一个服务型的常驻内存APK,这样子肯定不行的,CPU发热可能会过高。这个APK需要优化,包括内存优化,结构优化,CPU优化等等
1.获取APK内存占用情况
使用top命令,确定自己是不是占用了比较高的cpu
top
2.获取线程占用情况
直接执行top命令只能获取到整个进程总的cpu占用,但是我们的APK大多数是有很多线程的,我们要确定代码哪里有问题,需要知道哪个线程出问题,命令如下
top -m 10 -t -d 2
m代表最大显示的条目,t代表线程方式显示,这里就必要说到一个问题了,很多同学写JAVA线程(Thread)的时候,都不传线程名给super,这样子我们用top或者其它调优的时候在线程级别上调优就很麻烦了,命令不能看到线程名,只看到Thread-55之类的形式,所以请保持良好的习惯:
class MyThread extends Thread {public MyThread() {super("MyThread");//给线程取个名字,让系统知道,别让系统给你随机编号}
}
3.是哪个方法干了坏事
我们最终肯定是优化我们的代码,那么就需要知道具体是哪行代码占用了高CPU,这时候我们用Android Studio的Monitor就可以了,打开Android Studio的Monitor(请保持adb连接你的设备),如下图点击CPU的时钟按钮开始跟踪APP CPU调用:
操作你的APP(如果你的代码需要某些操作才能触发),再次点击刚刚的按钮结束,之后会弹出一个CPU分析框,选择你刚刚分析出觉得有问题的线程:
就可以看到各个方法的CPU占用了,这里注意一点,你的代码可能开启了代码混淆,这时候会看不清楚真实的函数名称,可以先出一个不混淆的版本进行调试。
我用了这个方法想办法优化或者避免(少)调用某些代码CPU从40%降低到了5%,找到热点代码,开始你的优化吧。
Android应用开发之CPU优化相关推荐
- Android NDK开发之 Neon优化
http://blog.csdn.net/ccjjnn19890720/article/details/7291228
- Android NDK开发之 NEON基础介绍
原文:http://blog.csdn.net/app_12062011/article/details/50434259 Android NDK开发之 NEON基础介绍 这是官方介绍: http:/ ...
- Android 系统(55)---Android App开发之ANR异常的原因分析及处理总结
Android App开发之ANR异常的原因分析及处理总结 Android App开发之ANR异常的原因分析及处理总结 ANR的全称是application not responding,根据它的意思 ...
- android swstnw cn,Android应用开发之ubuntu14.04编译ijkplayer备忘
本文将带你了解Android应用开发之ubuntu14.04编译ijkplayer备忘,希望本文对大家学Android有所帮助 1. i|VIhzkKCf#3UUnstall gi[e-RkYJ4 ...
- Android快速开发之appBase——(6).HttpReq和APICloudSDK
转载请注明本文出自JFlex的博客http://blog.csdn.net/jflex/article/details/46462077,请尊重他人的辛勤劳动成果,谢谢! Android快速开发之ap ...
- android idata 模式,Android快速开发之appBase——(3).详解IHolder和IData
Android快速开发之appBase--(3).详解IHolder和IData IHolder和IData是AVLib的两个组件,在前面已经使用过了,那么这一篇将会详细说明这两个组件的用法. IHo ...
- 镜像处理坐标 android,Android应用开发之Android重写ImageView实现图片镜像效果的代码教程...
本文将带你了解Android应用开发之Android重写ImageView实现图片镜像效果的代码教程,希望本文对大家学Android有所帮助. 前两天朋友问我一个问题,如何实现从手机系统相册加载一张图 ...
- Android NDK开发之旅31 FFmpeg音频解码
###前言 #####基于Android NDK开发之旅30--FFmpeg视频播放这篇文章,我们已经学会视频解码基本过程.这篇文章就对音频解码进行分析. #####音频解码和视频解码的套路基本是一样 ...
- android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键
本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){ ...
最新文章
- Professional WCF 4读书笔记(2)——消息交换模式
- java 后台查询卡_java后台
- 【转】电驴提示“该内容尚未提供权利证明,无法提供下载”之解决办法详解...
- STM32使用非8M晶振时如何修改代码
- RGB565与RGB555位图文件格式的标志识别
- 图解TCP数据报结构以及三次握手(非常详细)
- linux显卡烤机操作,显卡拷机必备:FurMark时隔一年全新升级
- 杭州师范大学马云雕像被拆,校方回应!
- 修改MYSQL密码及权限
- C++友元函数、友元类与类模板
- 幕布(思维导图)官方版 v1.1.15
- 2018全球50大最佳发明名单
- 金山办公推出协同办公全家桶 WPS升级为超级工作入口
- Laragon 升级composer
- 微信企业付款 ”错误码:NO_AUTH,错误信息:此IP地址不允许调用接口,如有需要请登录微信支付商户平台更改配置“报错的处理办法
- Python3,异常进阶写法之retrying。
- 威客witkey模式的提出
- 小程序复制文字、保存图片
- win10下安装并启动zookeeper
- [admin]-01
热门文章
- 记录D5-23.5.20
- 电气工程中一种较好的电缆编号方式
- 华为防火墙USG2220 DDNS动态域名配置
- 键盘输入单位不固定员工工资来求平均工资while和do.....while
- 使用for循环打印直角三角形(实心/空心)、等腰三角形(实心/空心),菱形(实心/空心)
- 疑难杂症:Linux下杀毒软件CPU占用率为何持续升高
- 快速搞定---POI 和 EasyExcel
- cpu卡、sam卡原理
- 阿里巴巴资深技术专家崮德:8 个影响我职业生涯的重要技能
- 为什么要管理客户关系?有效管理客户关系的5种方法