查看原文
其他

基于HUAWEI AppGallery Connect开发了一款App,我得出了这几点结论!

前线GC 开发者技术前线 2020-10-08

点击“开发者技术前线”,选择“星标🔝”

在看|星标|留言,  真爱

来自:开发者技术前线

作者:GC

1 背景介绍

最近,笔者开发了一款App,深刻体会到打造App的极致体验的重要性,这对App的启动速度、页面秒开、稳定性都提出了严峻的挑战。那么,如何去验证App体验和性能达到了标准? 目前业内主要借助质量类服务检测。质量类服务主要提供客户端的崩溃、行为日志采集、启动速度、页面加载耗时、以及大盘性能监控能力。笔者发现,华为应用市场AppGallery Connect(简称AG Connect)就提供了此类质量服务,所以决定尝试一下。

2 华为应用市场AG Connect

目前市面上质量类平台主要有:华为应用市场AG Connect、友盟、TalkingData三款产品。这三款服务都提供了对App崩溃采集和质量统计服务。

首先之前有过友盟、TalkingData使用项目经历,我优先考虑华为应用市场AG Connect。

其次考虑到华为应用市场的App数据统计比较精准,且华为应用市场 AG Connect 严格遵从GDPR,即作为数据处理者不会获取和查看开发者应用的数据。因此符合我们对App极致体验的诉求,选择对AG Connect做下测评分析。

称AG Connect从构建、质量、增长、华为云方面给开发者提供了多个开发服务,主要有构建应用基础能力、提升应用质量、提高分发效率、和拉新促活用户。

一个AG Connect服务的基本开发流程如下:

  1. 准备开发环境

  2. 创建AG Connect项目

  3. 在项目中添加应用

  4. 设置数据存储位置

  5. 集成AG ConnectSDK

  6. 开发应用

  7. 接入AG Connect服务

接下来我们来测评下AG Connect具体能力的情况。

3 测试环境搭建


3.1 测试设备

测试设备:MAC+ 测试Android手机 1 部 + USB 1 条

3.2 环境搭建

  1. MAC安装“Android Studio”,并升级至最新版本。

  2. 为保证兼容性,要求最低兼容版本:Android 4.2 (API level 21) 或者JDK 1.8及以上版本。

  3. 集成AG Connect SDK。

  • AndroidStudio开发环境

添加 添加APM SDK 和 Crash SDK依赖到应用级 gradle 文件中(通常在 app/build.gradle)。

// ...
dependencies {
// ...
// Add APM SDK library dependency
implementation 'com.huawei.agconnect:agconnect-apms:1.3.1.300'
implementation 'com.huawei.agconnect:agconnect-crash:1.4.0.300'
}
  1. 在APP模块(应用级)的混淆配置中添加以下排除项:

-keep class com.huawei.agconnect.**{*;}
-dontwarn com.huawei.agconnect.**
-keep class com.hianalytics.android.**{*;}
-keep class com.huawei.updatesdk.**{*;}
-keep class com.huawei.hms.**{*;}
-keep interface com.huawei.hms.analytics.type.HAEventType{*;}
-keep interface com.huawei.hms.analytics.type.HAParamType{*;}
-keepattributes Exceptions, Signature, InnerClasses, LineNumberTable
  1. 如果您使用了AndResGuard,需要在混淆配置文件中加入AndResGuard允许清单:

"R.string.hms*",
"R.string.connect_server_fail_prompt_toast",
"R.string.getting_message_fail_prompt_toast",
"R.string.no_available_network_prompt_toast",
"R.string.third_app_*",
"R.string.upsdk_*",
"R.layout.hms*",
"R.layout.upsdk_*",
"R.drawable.upsdk*",
"R.color.upsdk*",
"R.dimen.upsdk*",
"R.style.upsdk*",
"R.string.agc*"
  1. 如果您的应用使用的是AndroidX类库,需要在gradle.properties中增加如下配置,APM SDK将自动适配AndroidX:

android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
  1. 集成APM插件:

  • 1)在APP模块(应用级)的Gradle文件(通常是app/build.gradle)中应用APM插件:

apply plugin: 'com.android.application'
// Apply the APM plugin
apply plugin: 'com.huawei.agconnect.apms'
dependencies {
// ..
}
  • 2)在根级(项目级)Gradle文件中添加APM插件:

buildscript {
repositories {
// Add the maven repository
maven { url 'http://developer.huawei.com/repo/' }
}
dependencies {
// ...
// To benefit from the latest APM feaures, update your Android Gradle Plugin dependency to at least v3.2.0
classpath 'com.android.tools.build:gradle:3.2.0'
// Add the dependency for the APM plugin
classpath 'com.huawei.agconnect:agconnect-apms-plugin:1.3.1.300'
}
}
  1. 新建应用:

登录华为应用市场AppGallery Connect 网站,选择添加“我的项目”。在我的项目页面点击“添加项目”,新建应用

4 测试应用开发


4.1 客户端测试应用开发

新建一个APP 工程,包含两个页面,工程目录如下:

为了检测崩溃,第一个页面加入了crash测试按钮

5 测试CRASH


5.1 Crash模拟测试

为了测试是否统计Crash能力,我们通过模拟了一个NPE,来查看是否正常上报。

crashButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v) {
AGConnectCrash.getInstance().testIt(MainActivity.this);
}
});

在按钮添加一条crash事件,代码如上。

5.2 Crash模拟结论

登录后台查看数据:

我们可以看到,本次崩溃日志已被记录。

分析报告看到:日志信息包含了发生时间、异常类型、用户、崩溃数量、崩溃率。此次测试成功,并且包含信息全面,可根据时间、异常类型、用户、崩溃数量、崩溃率多维度去查询。

华为AG Connect确实能完成对App崩溃率的检测,并能清晰提供数据支撑。

6 测试性能

6.1 App启动时长

手动启动App5次,记录启动时长。测试结果如下:


启动时长中位为436ms。阈值为5000ms,华为AG Connect确页也能统计APP启动耗时。

6.2 页面渲染时长

我们点击跳转按钮,打开第二个页面,重复5次。测试结果如下:

从上图可以看出,我们记录了5个样本,具体里面有什么关键信息,是否数据提供? 点击查看详情:

由于只有一个测试版本,因此版分布显示为1.0,页面缓慢帧占比为40%。此外我们还可以产看前台停留时长、后台时长等数据,此次为人为手动测试,只看是否存在数据,发现数据着正常,因此我们不做分析。华为应用市场AG Connect能正确统计APP页面加载时长、用户停留时长等数据,是一个不错的App性能统计服务类产品。

7 结论


我们本着对APP极致体验的方向出发,采用启动速度,秒开,稳定性,页面留存页面帧率,网络延时和成功率等指标作为支撑, 通过华为AG Connect的能力来验证我们的App以上几个指标的数据,由于篇幅关系,本次测评也主要从崩溃,性能两个关键功能做了测试。

7.1 竞品效果对比

本人之前有过其他两款产品友盟和talkingdata的项目经验,综合本次使用情况,针对三款产品对比如下:

产品启动次数启动速度页面数据自定义埋点崩溃日志渠道统计服务生态可视化
AG Connect精准精准精准精准精准精准健全支持
友盟一般精准精准精准精准一般中等支持
TalkingData一般精准精准精准精准一般中等支持


可以看出华为应用市场AG Connect在启动次数、渠道统计、生态服务等方面表现出优势。本次的测试结果符合我们的预期,基本上满足了我们的诉求点,从App启动速度、页面加载时长,页面帧率、崩溃、到网络延时方面,都有明确的数据和可视化后台,从而辅助开发者检测自己App的性能。通过以上性能管理能力,我们也能去开发和维护一个优秀,满足用户极致体验的App。

7.2 华为应用市场AG Connect的特点

最后本次测评,得出华为应用市场AG Connect的特点:

  1. 严格遵从gdpr的,作为数据处理者不会获取和查看开发者应用的数据

  2. 崩溃统计精确、性能管理能力体验优良、可视化后台稳定

  3. 且目前大部分能力是免费的,适合开发者使用

  4. 生态配套丰富,包含了应用市场、推送服务、云部署、云测试云储存、云托管、设备唯一识别、应用内分发等优秀服务。

华为应用市场AppGallery Connect致力于为应用的创意、开发、分发、运营、经营各环节提供一站式服务,构建全场景智慧化的应用生态体验。华为应用市场AppGallery Connect深度整合华为内部各项优质服务,将华为在全球化、质量、安全、工程管理等领域长期积累的能力开放给开发者,大幅降低应用开发与运维难度,提高版本质量,开放分发和运营服务,帮助开发者获得用户并实现收入的规模增长。




END


前线推出学习交流群,加群一定要备注:
研究/工作方向+地点+学校/公司+昵称(如Java+上海+上交+可可)
根据格式备注,可更快被通过且邀请进群,领取一份专属学习礼包


扫码进群,你奖获得:

大厂内推和技术交流,前沿学术交流

点个在看吧!


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存