网站首页 > 技术教程 正文
app性能
Activity是Android组件中最基本也是最为常见用的四大组件(Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器)之一 [1] 。一个app的启动由多个Activity 组成。
1、调起app,创建白窗口,启动进程 (启动前)
2、Application onCreate先创建Object,再创建主线程(main thread)用于加载主要的Activity
主要流程
Application OnCreate
加载第三方的sdk
Activity OnCreate
加载自身的逻辑
发送远程数据请求xxx.json
渲染界面List
app启动性能指标
冷启动
简单讲app冷启动可以分为两个阶段
第一阶段
1、加载并启动app
2、启动后立即显示一个空白的启动窗口
3、创建app进程
第二阶段
1、创建app对象
2、启动主进程
3、创建MainActivity
4、渲染视图
5、执行onLayout
6、执行onDraw
暖启动
暖启动时由于app的进程仍然存在,只执行冷启动第二阶段流程
第二阶段
1、创建app对象
2、启动主进程
3、创建MainActivity
4、渲染视图
5、执行onLayout
6、执行onDraw
热启动
系统将activity放到前台。如果应用程序的所有activity存在内存中,则应用程序可以避免重复对象初始化、渲染、绘制操作。
若内存不足导致对象被回收,则需要在热启动时重建对象,此时与冷启动时将界面显示到手机屏幕上一致
首屏启动
app启动性能分析流程
- adb logcat
- 录屏+视频拆帧 (1s拆成10帧数)
- uiautomator等自动化工具200ms巡检界面变化traceview
- 硬埋点
使用adb logcat
- package=com.xeqiu.android
- 清理缓存数据:adb shell pm clear $package
- 停止进程: adb shell am force-stop $package
- 启动app: adb shell am start -S-W $package/.view.WelcomeActivity Alias
- 获取数据:adb logcat | grep -i displayed
adb logcat 结果
- startTime:记录刚准备调用startActivity AndWait()的时间点;
- endTime:记录startActivity AndWait()函数调用返回的时间点
- WaitTime: startActivity AndW ait()调用耗时
- WaitTime = endTime - startTime
使用ffmpeg拆针
- adb shell am force stop $package 环境清理
- adb shell screenrecord --bugreport --time-limit 30 /data/local/tmp/xueqiu.mp4 &
- adb shell am start -S -W $package/.view.WelcomeActivityAlias
- wait
- adb pull /data/local/tmp/xueqiu.mp4 录制启动视频
- ffmpeg -i xueqiu.mp4 xueqiu.gif 对视频进行拆帧
- ffmpeg -i xueqiu.mp4 -r 10 frames_ %03d.jpg 格式化为图片
- 对图片进行分析得出性能结果
- 上一篇: 一行命令搞定!麒麟系统健康体检全攻略
- 下一篇: Android APP 常见概念与 adb 命令
猜你喜欢
- 2025-10-14 iOS端OneDrive应用更新:支持3D Touch
- 2025-10-14 你的红米Note9Pro屏幕还好吗?一招教你看屏幕厂商
- 2025-10-14 【安装教程】【飞腾】麒麟桌面系统安装虚拟机
- 2025-10-14 统信UOS/麒麟KYLINOS修改图标显示名称
- 2025-10-14 iOS端OneDrive更新 增加3D Touch支持
- 2025-10-14 有人向你反馈了一个bug_有人反映问题
- 2025-10-14 麒麟桌面操作系统上解决任务栏消失问题
- 2025-10-14 麒麟桌面系统上使用修复助手livecd-systemtools
- 2025-10-14 Greenplum Python专用库gppylib学习——base.py
- 2025-10-14 手把手教你装好麒麟 2503!AI 模块+百宝箱全都有
欢迎 你 发表评论:
- 12-17微软官方win10工具(微软windows工具)
- 12-17系统之家园(系统家园的系统安全吗)
- 12-17win7产品密钥永久激活码最新
- 12-17分区工具怎么用(分区工具教程)
- 12-17数据库软件有哪几种(数据库说白了是干什么的)
- 12-17wms系统(WMS系统的功能有哪些)
- 12-17win8适合打游戏吗(win8.1玩游戏好不好)
- 12-17路由器显示无法连接互联网(连接路由器显示无法连接互联网)
- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)