使用HP AppPulse Mobile改善应用程序的性能

抽象

本教程提供了有关如何使用Hewlett Packard Enterprise的AppPulse Mobile监视应用程序性能的示例 。 我们将逐步介绍AppPulse Mobile如何帮助您轻松检测应用程序中的性能问题。

我正在使用带有Nexus 5(棉花糖6.0)的Mac OS X 10.10.5进行开发。 用于开发和测试的IDE是Android Studio。 尽管本教程中使用的示例是特定于Android的,但相同的概念也适用于iOS。

UI性能为何如此重要?

您是否知道55%的用户认为他们的移动应用是造成性能下降的原因,而不是网络或设备的原因? 随着移动生态系统中应用程序的数量每天增加,用户越来越不能容忍移动应用程序的性能下降。 开发人员逐渐意识到,用户体验对于保持用户回到应用程序极为重要。 过去,开发人员需要用代码编写测试,以查看执行每个用户操作需要多长时间。 这些有时效率低下且不准确。 现在,公司在数百种独特的设备上拥有数百万个用户,并且没有简单的方法来评估性能。 幸运的是,AppPulse Mobile通过提供有关用户交互作用的可行信息并确定影响大多数用户的问题,使您能够提供出色的客户体验。

自动用户操作性能监控

作为开发人员,重要的是要在出现问题时了解问题的核心。 通过在许多用户遇到相同的不良用户体验之前意识到并修复错误,我们可以建立信誉并赢得用户的信任。

对于每次用户交互,AppPulse Mobile通过跟踪操作及其平均响应时间(通过测量按钮单击和UI渲染之间的时间)来自动捕获性能。 屏幕名称和操作由AppPulse Mobile跟踪,因此代码中的任何名称更改都会自动反映出来。

图1:用户操作和平均响应时间示例

图1:用户操作和平均响应时间示例

使用AppPulse Mobile HTTP时间轴,开发人员可以查看有关特定用户操作匹配的详细信息,以及已执行的所有方法(类似于诊断/呼叫跟踪)。 跟踪与用户操作有关的所有UI更新,并且从操作开始到最后一次UI更新之间的时间就是测得的UI性能。

UI更新与操作的关联是通过跟踪操作触发并由UI更新导致的所有UI线程和异步操作来完成的。

为了了解如何使用AppPulse Mobile监控性能,我们将逐步介绍一个简单的Android应用程序。


Dirk de Kok撰写的AppPulse Mobile入门指南

配置

https://saas.hpe.com/try/AppPulse-mobile上注册AppPulse Mobile的试用版或完整版。

  1. 首先,在AppPulse Mobile中创建一个新的移动应用程序。 选择Android作为平台,然后为您的应用命名。 创建新应用程序后,您将获得一个应用程序密钥和一个链接,以下载用于包装该应用程序的SDK。
  2. 通过对话框下载Android SDK。
    图2:在HPE AppPulse Mobile中创建应用程序

    图2:在HPE AppPulse Mobile中创建应用程序

  3. 如果使用Android Studio,则可以在以下位置找到生成的apk(app-debug.apk):
    <Application_Directory>/app/build/outputs/apk/

    使用此命令通过以下命令创建包装的apk版本:

    ./AppPulse_mobile.sh -appkey <application key> <path to original apk file>

    Seethas-MacBook-Pro:AppPulse_mobile_SDK_2.00_Android seethaa$ ./AppPulse_mobile.sh -appkey 1vw2zcqkjv /Users/seethaa/Desktop/AppPulseMobExample/app/build/outputs/apk/app-debug.apk
    infuser version is: 2.00.50.266
    Step 1 out of 4: Extracting APK file: /Users/seethaa/Desktop/AppPulseMobExample/app/build/outputs/apk/app-debug.apk
    Step 1 completed successfully
    Step 2 out of 4: Starting instrumentation process
    This step may take several minutes to complete, please wait...
    Step 3 completed successfully
    Step 4 out of 4: Signing APK in debug mode
    Step 4 completed successfully
    Instrumentation ended successfully, APK is located at: /Users/seethaa/Desktop/AppPulseMobExample/app/build/outputs/apk/app-debug.apk.signed.debug.apk

    带有工具的apk允许AppPulse Mobile分析用户交互,并提供分析数据,以帮助开发人员为其用户提供更好的体验。

  4. 将打包的apk安装在设备上并运行该应用,或将apk上传到Google Play商店进行常规分发。

查找您的绩效问题

在此示例中,我对http://pastebin.org进行了简单的HTTP GET调用,以模拟移动应用程序常见的API数据调用。 我正在通过使用7秒延迟( http://pastebin.org/7)模拟网络延迟。 有时,网络中的某个地方存在延迟(一次到服务器的呼叫过多,服务器端发送信息的速度很慢,用户的网络连接速度很慢等)。

我有一个AsyncTask,它使用来自pastebin URL的HTTP响应来更新TextView控件。 登录到AppPulse Mobile后,您将可以看到UI性能概述。

图3:AppPulse Mobile中的UI性能概述

图3:AppPulse Mobile中的UI性能概述

如果您有任何UI交互,它们将显示在用户操作区域中,以便您可以分别查看每个交互的细分。 在我的示例中,我通过点击“ HTTP调用”按钮启动了HTTP请求,因此它在“用户操作”下显示为此类。 单击用户操作以查看HTTP时间轴,然后向下钻取以查看性能下降的原因。

图4:带有操作按钮的移动应用

图4:带有操作按钮的移动应用

图5:HTTP调用列为用户操作

图5:HTTP调用列为用户操作

下面有两个示例来展示AppPulse Mobile如何真正专注于用户感知的UI性能。 在第一个示例中,HTTP调用后没有更新UI。 在第二个示例中,我们在AsyncTask的onPostExecute()中更新了一个简单的TextView。

图6:时间轴显示HTTP调用,而无需随后的UI更新

图6:时间轴显示HTTP调用,而无需随后的UI更新

图7:时间线显示HTTP调用以及随后的UI更新

图7:时间线显示HTTP调用以及随后的UI更新

垂直线表示UI渲染的结束。 在图7中,我们看到AsyncTask的onPostExecute()方法中发生了UI更新。 AppPulse Mobile使我们能够看到用户的感知UI性能。

在以上时间轴中,我们可以看到导致延迟的URL( http://httpbin.org/delay.7) 。 AppPulse Mobile会显示用户操作,这些操作可帮助开发人员了解实际用户在使用您的应用程序时所面对的情况,而不仅仅是与用户操作没有直接关系的网络通话时间。 通过查明性能下降的位置,开发人员可以轻松地找出如何优化性能。

UI渲染性能很重要!

通常,不仅仅是网络通话会降低用户的性能。 用户希望通过其移动应用程序获得越来越丰富的体验,并且有吸引力的图像,视频或Pinterest风格的发现应用程序正变得越来越流行。 由于此数据是在客户端加载的,因此可能会有延迟,导致用户体验下降。

对于此示例,我有一个混合的模糊和非模糊图片文件夹,希望对其进行一些图像处理。 我希望能够将模糊的照片与非模糊的照片分开,只将好的照片显示为GridView。 我正在使用OpenCV Android SDK进行图像处理。

我在sdcard / AppPulseTutorial /下有一个小的图片样本。 按下“获取图像”按钮过滤现有图像,将模糊和非模糊分开,然后显示非模糊图片。 仅此少量样本集就引入了将近三秒钟的延迟。 随着应用程序的复杂性增加,或者图像处理的类型变得越来越复杂,性能可能会下降很低。

图8:UI渲染延迟

图8:UI渲染延迟

图9:具有图像处理和UI渲染延迟的HTTP时间线

图9:具有图像处理和UI渲染延迟的HTTP时间线

用户将任何延迟视为应用程序中的缺陷,因此监视UI对于了解网络延迟同样重要。 AppPulse Mobile会根据用户操作来衡量性能,因此它确实有助于获得用户使用该应用程序的体验的全貌。

AppPulse移动方法分析如何提供帮助

AppPulse Mobile的“方法分析”可以轻松表示您的应用程序的完整客户端诊断。 在应用程序使用期间执行的所有方法都显示在时间轴上,其中每一行代表一个线程。 第一行是主线程(UI线程),所有后续行均显示工作线程以及相应的方法。

正如我们在第一个示例中看到的那样,测量用户的感知性能有助于查看用户正在体验的实际性能,而不仅仅是网络呼叫持续时间。 在后一个示例中,我们看到并不是所有的延迟都是由网络调用引起的; 随着应用程序变得越来越丰富,UI呈现变得非常重要,并且通过AppPulse Mobile评估性能非常有价值。

提示

  1. 如果您使用的是Android Studio,请确保在添加AppPulse Mobile之前像平常一样在设备上运行该应用程序,以便包装的apk包含所有新更改。
  2. 如果要在主线程中启动交互,则它可能不会作为AppPulse Mobile中的用户操作出现。 在这种情况下,请单击“有关UI性能的更多信息”,然后在“应用启动时间”下单击“开始”
  3. 确保选择适当的时间范围(例如“过去30天”与“过去24小时”),以确保您正确看到结果。
  4. 必须有UI交互(例如按钮,滑动等),以便AppPulse Mobile可以将其作为用户操作来填充。
  5. 如果仍然没有列出用户操作,请确保在计算机上安装了AppPulse Mobile SDK并可以正常使用。


Mobtest创始人兼首席执行官Dirk de Kok在2分钟内如何入门适用于Android的HPE AppPulse Mobile

翻译自: https://www.javacodegeeks.com/2016/01/improve-your-applications-performance-using-hpe-apppulse-mobile.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值