指定rviz的点启动_APP性能测试—启动耗时

应用启动是整个App工序的第一道流程。对于开发者,一般需要在应用启动过程中进行初始化工作,启动页的UI展示。而对于用户来说,启动速度的快慢则极大地影响了使用体验,并且间接地影响了用户的留存率。

应用的启动方式

  • 冷启动:当启动应用时,后台没有该应用的进程,这时系统会首先会创建一个新的进程分配给该应用,这种启动方式就是冷启动。

  • 热启动:当启动应用时,后台已有该应用的进程,这种启动方式叫热启动。

  • 一般测试过程中更多的关注冷启动时间。

Android 启动时间

App启动流程

开发应用的时候,一般会指定一个 mainActivity,可以使用命令aapt dump badging [pkg name] | findstr launchable-activity 用户在桌面上点击这个Activity 的时候,系统会直接起这个ActivityActivity在启动的时候会走 onCreate/onStart/onResume

  • onCreate()在活动第一次创建时被调用,主要用于加载布局。

  • onStart()这个方法在活动由不可见变为可见的时候调用。

  • onResume这个方法在活动准备好和用户进行交互的时候调用。

指定rviz的点启动_APP性能测试—启动耗时_第1张图片

adb 命令方式获取

通过命令adb shell am start -W [PackageName]/[PackageName.MainActivity]获取启动时间。

λ adb shell am start -W com.youku.phone/com.youku.phone.ActivityWelcome
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.youku.phone/.ActivityWelcome }
Status: ok
Activity: com.youku.phone/com.youku.v2.HomePageEntry
ThisTime: 2152
TotalTime: 2750
WaitTime: 2759
Complete

这里面涉及到三个时间,ThisTimeTotalTime 和 WaitTime

  • ThisTime 表示启动一连串 Activity 的最后一个 Activity 的启动耗时。

  • TotalTime 表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用 Activity pause 的耗时。也就是说,开发者一般只要关心 TotalTime 即可,这个时间才是自己应用真正启动的耗时。

  • WaitTime 就是总的耗时,包括前一个应用 Activity pause的时间和新应用启动的时间。

iOS启动时间

Xcode iOS 时间统计

对于第一个时间 Pre-main Time,目前没有比较好的人工测量手段,好在 Xcode 自身提供了一个在控制台打印这些时间的方法:在 Xcode 中 Edit Scheme -> Run -> Auguments 添加环境变量 DYLD_PRINT_STATISTICS并把其值设为 1,如下图:

指定rviz的点启动_APP性能测试—启动耗时_第2张图片

对于第二个时间 Loading Time,比较好测量,我们可以在 main 函数开始执行和 applicationDidBecomeActive: 方法执行末尾时分别记录一个时间点,然后计算两者时间差即可。

iOS 耗时原理

对于 iOS App 来说,启动时间包括两部分:Launch Time = Pre-main Time + Loading Time,如下图所示

指定rviz的点启动_APP性能测试—启动耗时_第3张图片

  • Pre-main Time 指 main 函数执行之前的加载时间,包括 dylib 动态库加载,Mach-O 文件加载等;

  • Loading Time 指 App启动时初始化的执行时间,同时包含首页 UI 被渲染并显示出来的耗时。

Time profile

我们还可以使用time profile,该工具是xcodeInstruments中的一个测试工具,可以用来测试函数耗时。

1.在Xcode中点击菜单Open Developer tool-> Instruments 如下图所示选择time profile

指定rviz的点启动_APP性能测试—启动耗时_第4张图片

2、选择指定设备和应用点击开始执行即可查看各个函数的消耗时间。

指定rviz的点启动_APP性能测试—启动耗时_第5张图片

更多干货

  • APP性能测试—帧率

  • App性能测试—CPU使用率

  • APP性能测试—内存使用率

  • 移动端App安全扫描平台-MobSF

  • Docker简介

  • Dockerfile命令(上)

  • Dockerfile命令(下)

  • Docker仓库

  • Docker容器网络连接配置

  • Python实现LDAP认证

  • 接口Mock利器——Json Server

  • Locust接口性能测试

  • Python接口测试数据管理

  • Jmeter+Ant+Jenkins接口自动化测试平台

  • Postman批量执行与集成Jenkins

  • Mac 环境Appium自动化测试环境搭建

  • 众里寻他千百度—Appium Android 元素定位方式

  • Android自动化测试设备弹窗处理

  • Appium iOS 元素定位与操作

指定rviz的点启动_APP性能测试—启动耗时_第6张图片

关注公众号,更多干货秒得到

你可能感兴趣的:(指定rviz的点启动)