基于HUAWEI AppGallery Connect開(kāi)發(fā)了一款A(yù)pp,我得出了這幾點(diǎn)結(jié)論!
點(diǎn)擊“開(kāi)發(fā)者技術(shù)前線”,選擇“星標(biāo)?”
在看|星標(biāo)|留言,? 真愛(ài)

來(lái)自:開(kāi)發(fā)者技術(shù)前線
作者:GC
最近,筆者開(kāi)發(fā)了一款A(yù)pp,深刻體會(huì)到打造App的極致體驗(yàn)的重要性,這對(duì)App的啟動(dòng)速度、頁(yè)面秒開(kāi)、穩(wěn)定性都提出了嚴(yán)峻的挑戰(zhàn)。那么,如何去驗(yàn)證App體驗(yàn)和性能達(dá)到了標(biāo)準(zhǔn)? 目前業(yè)內(nèi)主要借助質(zhì)量類(lèi)服務(wù)檢測(cè)。質(zhì)量類(lèi)服務(wù)主要提供客戶(hù)端的崩潰、行為日志采集、啟動(dòng)速度、頁(yè)面加載耗時(shí)、以及大盤(pán)性能監(jiān)控能力。筆者發(fā)現(xiàn),華為應(yīng)用市場(chǎng)AppGallery Connect(簡(jiǎn)稱(chēng)AG Connect)就提供了此類(lèi)質(zhì)量服務(wù),所以決定嘗試一下。
目前市面上質(zhì)量類(lèi)平臺(tái)主要有:華為應(yīng)用市場(chǎng)AG Connect、友盟、TalkingData三款產(chǎn)品。這三款服務(wù)都提供了對(duì)App崩潰采集和質(zhì)量統(tǒng)計(jì)服務(wù)。
首先之前有過(guò)友盟、TalkingData使用項(xiàng)目經(jīng)歷,我優(yōu)先考慮華為應(yīng)用市場(chǎng)AG Connect。
其次考慮到華為應(yīng)用市場(chǎng)的App數(shù)據(jù)統(tǒng)計(jì)比較精準(zhǔn),且華為應(yīng)用市場(chǎng) AG Connect 嚴(yán)格遵從GDPR,即作為數(shù)據(jù)處理者不會(huì)獲取和查看開(kāi)發(fā)者應(yīng)用的數(shù)據(jù)。因此符合我們對(duì)App極致體驗(yàn)的訴求,選擇對(duì)AG Connect做下測(cè)評(píng)分析。
稱(chēng)AG Connect從構(gòu)建、質(zhì)量、增長(zhǎng)、華為云方面給開(kāi)發(fā)者提供了多個(gè)開(kāi)發(fā)服務(wù),主要有構(gòu)建應(yīng)用基礎(chǔ)能力、提升應(yīng)用質(zhì)量、提高分發(fā)效率、和拉新促活用戶(hù)。
一個(gè)AG Connect服務(wù)的基本開(kāi)發(fā)流程如下:
準(zhǔn)備開(kāi)發(fā)環(huán)境
創(chuàng)建AG Connect項(xiàng)目
在項(xiàng)目中添加應(yīng)用
設(shè)置數(shù)據(jù)存儲(chǔ)位置
集成AG ConnectSDK
開(kāi)發(fā)應(yīng)用
接入AG Connect服務(wù)
接下來(lái)我們來(lái)測(cè)評(píng)下AG Connect具體能力的情況。
3.1 測(cè)試設(shè)備
測(cè)試設(shè)備:MAC+ 測(cè)試Android手機(jī) 1 部 + USB 1 條
3.2 環(huán)境搭建
MAC安裝“Android Studio”,并升級(jí)至最新版本。
為保證兼容性,要求最低兼容版本:Android 4.2 (API level 21) 或者JDK 1.8及以上版本。
集成AG Connect SDK。
AndroidStudio開(kāi)發(fā)環(huán)境
添加 添加APM SDK 和 Crash SDK依賴(lài)到應(yīng)用級(jí) 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'
}
在APP模塊(應(yīng)用級(jí))的混淆配置中添加以下排除項(xiàng):
-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
如果您使用了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*"
如果您的應(yīng)用使用的是AndroidX類(lèi)庫(kù),需要在gradle.properties中增加如下配置,APM SDK將自動(dòng)適配AndroidX:
android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true
集成APM插件:
1)在APP模塊(應(yīng)用級(jí))的Gradle文件(通常是app/build.gradle)中應(yīng)用APM插件:
apply plugin: 'com.android.application'
// Apply the APM plugin
apply plugin: 'com.huawei.agconnect.apms'
dependencies {
// ..
}
2)在根級(jí)(項(xiàng)目級(jí))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'
}
}
新建應(yīng)用:
登錄華為應(yīng)用市場(chǎng)AppGallery Connect 網(wǎng)站,選擇添加“我的項(xiàng)目”。在我的項(xiàng)目頁(yè)面點(diǎn)擊“添加項(xiàng)目”,新建應(yīng)用
4.1 客戶(hù)端測(cè)試應(yīng)用開(kāi)發(fā)
新建一個(gè)APP 工程,包含兩個(gè)頁(yè)面,工程目錄如下:

為了檢測(cè)崩潰,第一個(gè)頁(yè)面加入了crash測(cè)試按鈕

5.1 Crash模擬測(cè)試
為了測(cè)試是否統(tǒng)計(jì)Crash能力,我們通過(guò)模擬了一個(gè)NPE,來(lái)查看是否正常上報(bào)。
crashButton.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v) {
AGConnectCrash.getInstance().testIt(MainActivity.this);
}
});
在按鈕添加一條crash事件,代碼如上。
5.2 Crash模擬結(jié)論
登錄后臺(tái)查看數(shù)據(jù):

我們可以看到,本次崩潰日志已被記錄。

分析報(bào)告看到:日志信息包含了發(fā)生時(shí)間、異常類(lèi)型、用戶(hù)、崩潰數(shù)量、崩潰率。此次測(cè)試成功,并且包含信息全面,可根據(jù)時(shí)間、異常類(lèi)型、用戶(hù)、崩潰數(shù)量、崩潰率多維度去查詢(xún)。
華為AG Connect確實(shí)能完成對(duì)App崩潰率的檢測(cè),并能清晰提供數(shù)據(jù)支撐。
6.1 App啟動(dòng)時(shí)長(zhǎng)
手動(dòng)啟動(dòng)App5次,記錄啟動(dòng)時(shí)長(zhǎng)。測(cè)試結(jié)果如下:

啟動(dòng)時(shí)長(zhǎng)中位為436ms。閾值為5000ms,華為AG Connect確頁(yè)也能統(tǒng)計(jì)APP啟動(dòng)耗時(shí)。
6.2 頁(yè)面渲染時(shí)長(zhǎng)
我們點(diǎn)擊跳轉(zhuǎn)按鈕,打開(kāi)第二個(gè)頁(yè)面,重復(fù)5次。測(cè)試結(jié)果如下:

從上圖可以看出,我們記錄了5個(gè)樣本,具體里面有什么關(guān)鍵信息,是否數(shù)據(jù)提供? 點(diǎn)擊查看詳情:

由于只有一個(gè)測(cè)試版本,因此版分布顯示為1.0,頁(yè)面緩慢幀占比為40%。此外我們還可以產(chǎn)看前臺(tái)停留時(shí)長(zhǎng)、后臺(tái)時(shí)長(zhǎng)等數(shù)據(jù),此次為人為手動(dòng)測(cè)試,只看是否存在數(shù)據(jù),發(fā)現(xiàn)數(shù)據(jù)著正常,因此我們不做分析。華為應(yīng)用市場(chǎng)AG Connect能正確統(tǒng)計(jì)APP頁(yè)面加載時(shí)長(zhǎng)、用戶(hù)停留時(shí)長(zhǎng)等數(shù)據(jù),是一個(gè)不錯(cuò)的App性能統(tǒng)計(jì)服務(wù)類(lèi)產(chǎn)品。
我們本著對(duì)APP極致體驗(yàn)的方向出發(fā),采用啟動(dòng)速度,秒開(kāi),穩(wěn)定性,頁(yè)面留存頁(yè)面幀率,網(wǎng)絡(luò)延時(shí)和成功率等指標(biāo)作為支撐, 通過(guò)華為AG Connect的能力來(lái)驗(yàn)證我們的App以上幾個(gè)指標(biāo)的數(shù)據(jù),由于篇幅關(guān)系,本次測(cè)評(píng)也主要從崩潰,性能兩個(gè)關(guān)鍵功能做了測(cè)試。
7.1 競(jìng)品效果對(duì)比
本人之前有過(guò)其他兩款產(chǎn)品友盟和talkingdata的項(xiàng)目經(jīng)驗(yàn),綜合本次使用情況,針對(duì)三款產(chǎn)品對(duì)比如下:
| 產(chǎn)品 | 啟動(dòng)次數(shù) | 啟動(dòng)速度 | 頁(yè)面數(shù)據(jù) | 自定義埋點(diǎn) | 崩潰日志 | 渠道統(tǒng)計(jì) | 服務(wù)生態(tài) | 可視化 |
|---|---|---|---|---|---|---|---|---|
| AG Connect | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 健全 | 支持 |
| 友盟 | 一般 | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 一般 | 中等 | 支持 |
| TalkingData | 一般 | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 精準(zhǔn) | 一般 | 中等 | 支持 |
可以看出華為應(yīng)用市場(chǎng)AG Connect在啟動(dòng)次數(shù)、渠道統(tǒng)計(jì)、生態(tài)服務(wù)等方面表現(xiàn)出優(yōu)勢(shì)。本次的測(cè)試結(jié)果符合我們的預(yù)期,基本上滿足了我們的訴求點(diǎn),從App啟動(dòng)速度、頁(yè)面加載時(shí)長(zhǎng),頁(yè)面幀率、崩潰、到網(wǎng)絡(luò)延時(shí)方面,都有明確的數(shù)據(jù)和可視化后臺(tái),從而輔助開(kāi)發(fā)者檢測(cè)自己App的性能。通過(guò)以上性能管理能力,我們也能去開(kāi)發(fā)和維護(hù)一個(gè)優(yōu)秀,滿足用戶(hù)極致體驗(yàn)的App。
7.2?華為應(yīng)用市場(chǎng)AG Connect的特點(diǎn)
最后本次測(cè)評(píng),得出華為應(yīng)用市場(chǎng)AG Connect的特點(diǎn):
嚴(yán)格遵從gdpr的,作為數(shù)據(jù)處理者不會(huì)獲取和查看開(kāi)發(fā)者應(yīng)用的數(shù)據(jù)
崩潰統(tǒng)計(jì)精確、性能管理能力體驗(yàn)優(yōu)良、可視化后臺(tái)穩(wěn)定
且目前大部分能力是免費(fèi)的,適合開(kāi)發(fā)者使用
生態(tài)配套豐富,包含了應(yīng)用市場(chǎng)、推送服務(wù)、云部署、云測(cè)試云儲(chǔ)存、云托管、設(shè)備唯一識(shí)別、應(yīng)用內(nèi)分發(fā)等優(yōu)秀服務(wù)。
華為應(yīng)用市場(chǎng)AppGallery Connect致力于為應(yīng)用的創(chuàng)意、開(kāi)發(fā)、分發(fā)、運(yùn)營(yíng)、經(jīng)營(yíng)各環(huán)節(jié)提供一站式服務(wù),構(gòu)建全場(chǎng)景智慧化的應(yīng)用生態(tài)體驗(yàn)。華為應(yīng)用市場(chǎng)AppGallery Connect深度整合華為內(nèi)部各項(xiàng)優(yōu)質(zhì)服務(wù),將華為在全球化、質(zhì)量、安全、工程管理等領(lǐng)域長(zhǎng)期積累的能力開(kāi)放給開(kāi)發(fā)者,大幅降低應(yīng)用開(kāi)發(fā)與運(yùn)維難度,提高版本質(zhì)量,開(kāi)放分發(fā)和運(yùn)營(yíng)服務(wù),幫助開(kāi)發(fā)者獲得用戶(hù)并實(shí)現(xiàn)收入的規(guī)模增長(zhǎng)。
掃碼進(jìn)群,你獎(jiǎng)獲得:
大廠內(nèi)推和技術(shù)交流,前沿學(xué)術(shù)交流



