性能管理
(App Performance Management,簡(jiǎn)稱(chēng)APM)是華為應(yīng)用市場(chǎng)AppGallery Connect(簡(jiǎn)稱(chēng)AGC)質(zhì)量系列服務(wù)中的其中一項(xiàng),可以提供分鐘級(jí)應(yīng)用性能監(jiān)控能力,支持Android、iOS、Web多個(gè)平臺(tái),可查看和分析APM收集到的應(yīng)用性能數(shù)據(jù),實(shí)時(shí)全面掌握應(yīng)用在線(xiàn)的性能表現(xiàn),幫助您快速閉環(huán)性能問(wèn)題,持續(xù)提升應(yīng)用的用戶(hù)體驗(yàn)。
性能管理服務(wù)優(yōu)勢(shì)
下面我們從總體上看一下,性能管理服務(wù)具備哪些優(yōu)點(diǎn):
1. 跨平臺(tái)
APM支持Android、iOS、Web多個(gè)平臺(tái),也支持基于Unity和Cocos引擎開(kāi)發(fā)的游戲應(yīng)用,使其可以方便用于各種開(kāi)發(fā)場(chǎng)景;
2. 易集成
零代碼開(kāi)發(fā),平均集成耗時(shí)在5分鐘以?xún)?nèi);
3. 場(chǎng)景化
APM當(dāng)前支持應(yīng)用啟動(dòng)、頁(yè)面加載、頁(yè)面渲染等多個(gè)性能監(jiān)控場(chǎng)景,而且在場(chǎng)景化基礎(chǔ)上,支持應(yīng)用ANR監(jiān)控,提供豐富的ANR信息,在線(xiàn)快速解決ANR問(wèn)題;
4. 全流程
與傳統(tǒng)工作在開(kāi)發(fā)態(tài)、測(cè)試態(tài)性能分析工具相比,APM貫穿了應(yīng)用開(kāi)發(fā)、測(cè)試、發(fā)布的全流程。
性能管理服務(wù)使用場(chǎng)景
接下來(lái),我們看下APM的使用場(chǎng)景:
1. 應(yīng)用啟動(dòng)耗時(shí)場(chǎng)景中提供了按分位值分布,按時(shí)間分布,按應(yīng)用版本分布的啟動(dòng)耗時(shí)分析圖表,并支持按照版本號(hào)、國(guó)家地區(qū)、手機(jī)型號(hào)、系統(tǒng)版本等維度的篩選及下鉆分析。在應(yīng)用新版本發(fā)布后,我們可以查看應(yīng)用啟動(dòng)耗時(shí)是否有增加或減少的現(xiàn)象。
2. 在應(yīng)用頁(yè)面渲染也就是我們通常說(shuō)的頁(yè)面卡頓場(chǎng)景中,您可以查看各頁(yè)面的緩慢幀、凍結(jié)幀的占比,對(duì)于占比比較高的頁(yè)面,可以按照應(yīng)用版本、手機(jī)型號(hào)、系統(tǒng)版本等維度進(jìn)行下鉆分析,識(shí)別出卡頓問(wèn)題的根本原因。
3. 在應(yīng)用網(wǎng)絡(luò)請(qǐng)求場(chǎng)景下,您可以查看網(wǎng)絡(luò)請(qǐng)求響應(yīng)時(shí)間、成功率等指標(biāo),并按照設(shè)備所處的國(guó)家地區(qū)、網(wǎng)絡(luò)及運(yùn)營(yíng)商信息等維度進(jìn)行下鉆分析,以便快速定位網(wǎng)絡(luò)請(qǐng)求異常問(wèn)題。
零代碼集成AGC性能管理服務(wù)
了解過(guò)上述場(chǎng)景后,我們來(lái)看看如何在A(yíng)ndroid平臺(tái)集成該服務(wù)。APM集成步驟非常簡(jiǎn)單,只需要在開(kāi)通服務(wù)后在代碼中集成插件和SDK即可,實(shí)現(xiàn)零代碼快速集成。
1. 創(chuàng)建應(yīng)用并開(kāi)通性能管理服務(wù)
首先,我們?cè)贏(yíng)GC控制臺(tái)創(chuàng)建應(yīng)用并開(kāi)通APM,創(chuàng)建應(yīng)用的時(shí)候,注意應(yīng)用的包名要和APK里的包名保持一致。如果是在已有的應(yīng)用里集成APM,注意包名需要和AGC控制臺(tái)創(chuàng)建應(yīng)用時(shí)配置的包名保持一致 。創(chuàng)建好項(xiàng)目應(yīng)用后,或者使用已有的應(yīng)用,在界面上找到“我的項(xiàng)目-質(zhì)量-性能管理”,點(diǎn)擊立即開(kāi)通即可。
2. 下載和集成json文件
在A(yíng)ndroid Studio中新建一個(gè)Android工程,包名需要和AGC界面上的包名保持一致,然后回到AGC首頁(yè),在“我的項(xiàng)目-項(xiàng)目設(shè)置-應(yīng)用”界面下,找到并且將agconnect-services.json文件下載到本地,放到Android工程的app層級(jí)目錄下。
3. 集成APM插件與APM SDK
配置SDK地址,打開(kāi)Android工程,在項(xiàng)目級(jí)build.gradle文件中,配置下面的內(nèi)容:
buildscript { repositories { // 1. Add maven repository maven { url 'http://developer.huawei.com/repo/' } google() jcenter() } dependencies { // To benefit from the latest APMS feaures, update your Android Gradle Plugin dependency to at least v3.5.3 classpath 'com.android.tools.build:gradle:3.5.3' // 2. Add agc plugin dependence classpath 'com.huawei.agconnect:agcp:1.4.1.300' // 3. Add APMS plugin dependence classpath 'com.huawei.agconnect:agconnect-apms-plugin:1.4.1.306' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}
打開(kāi)應(yīng)用級(jí)的build.gradle文件,將APM的SDK添加到您的應(yīng)用,配置內(nèi)容如下:
apply plugin: 'com.android.application'// Add the APMS pluginapply plugin: 'com.huawei.agconnect.apms'apply plugin: 'com.huawei.agconnect'dependencies { // 1.0 Add APMS SDK library dependency implementation 'com.huawei.agconnect:agconnect-apms:1.4.1.306'}
4. 配置混淆文件
我們找到應(yīng)用級(jí)的proguard-rules.pro文件(混淆配置文件),添加以下排除項(xiàng):
-keep class com.huawei.agconnect.apms.**{*;}-dontwarn com.huawei.agconnect.apms.**-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
集成結(jié)束后,點(diǎn)擊Android Studio工程右上角的Sync,打包應(yīng)用放到Android設(shè)備上運(yùn)行,然后就可以在A(yíng)GC界面上查看APM所采集到的數(shù)據(jù)與報(bào)告。整個(gè)集成過(guò)程未涉及業(yè)務(wù)代碼的編寫(xiě),僅通過(guò)簡(jiǎn)單的4項(xiàng)步驟就順利完成,便捷高效。
APM分析報(bào)告提供了性能問(wèn)題出現(xiàn)瞬間的詳細(xì)的設(shè)備與日志信息、性能數(shù)據(jù),實(shí)時(shí)的監(jiān)測(cè)報(bào)告為產(chǎn)品和運(yùn)營(yíng)提供了優(yōu)化方向,同時(shí)也解決了性能問(wèn)題開(kāi)發(fā)難定位、測(cè)試難復(fù)現(xiàn)的問(wèn)題,大幅減少了開(kāi)發(fā)、測(cè)試工作量。