性能管理
(App Performance Management,簡稱APM)是華為應(yīng)用市場AppGallery Connect(簡稱AGC)質(zhì)量系列服務(wù)中的其中一項(xiàng),可以提供分鐘級應(yīng)用性能監(jiān)控能力,支持Android、iOS、Web多個(gè)平臺,可查看和分析APM收集到的應(yīng)用性能數(shù)據(jù),實(shí)時(shí)全面掌握應(yīng)用在線的性能表現(xiàn),幫助您快速閉環(huán)性能問題,持續(xù)提升應(yīng)用的用戶體驗(yàn)。
性能管理服務(wù)優(yōu)勢
下面我們從總體上看一下,性能管理服務(wù)具備哪些優(yōu)點(diǎn):
1. 跨平臺
APM支持Android、iOS、Web多個(gè)平臺,也支持基于Unity和Cocos引擎開發(fā)的游戲應(yīng)用,使其可以方便用于各種開發(fā)場景;
2. 易集成
零代碼開發(fā),平均集成耗時(shí)在5分鐘以內(nèi);
3. 場景化
APM當(dāng)前支持應(yīng)用啟動(dòng)、頁面加載、頁面渲染等多個(gè)性能監(jiān)控場景,而且在場景化基礎(chǔ)上,支持應(yīng)用ANR監(jiān)控,提供豐富的ANR信息,在線快速解決ANR問題;
4. 全流程
與傳統(tǒng)工作在開發(fā)態(tài)、測試態(tài)性能分析工具相比,APM貫穿了應(yīng)用開發(fā)、測試、發(fā)布的全流程。
性能管理服務(wù)使用場景
接下來,我們看下APM的使用場景:
1. 應(yīng)用啟動(dòng)耗時(shí)場景中提供了按分位值分布,按時(shí)間分布,按應(yīng)用版本分布的啟動(dòng)耗時(shí)分析圖表,并支持按照版本號、國家地區(qū)、手機(jī)型號、系統(tǒng)版本等維度的篩選及下鉆分析。在應(yīng)用新版本發(fā)布后,我們可以查看應(yīng)用啟動(dòng)耗時(shí)是否有增加或減少的現(xiàn)象。
2. 在應(yīng)用頁面渲染也就是我們通常說的頁面卡頓場景中,您可以查看各頁面的緩慢幀、凍結(jié)幀的占比,對于占比比較高的頁面,可以按照應(yīng)用版本、手機(jī)型號、系統(tǒng)版本等維度進(jìn)行下鉆分析,識別出卡頓問題的根本原因。
3. 在應(yīng)用網(wǎng)絡(luò)請求場景下,您可以查看網(wǎng)絡(luò)請求響應(yīng)時(shí)間、成功率等指標(biāo),并按照設(shè)備所處的國家地區(qū)、網(wǎng)絡(luò)及運(yùn)營商信息等維度進(jìn)行下鉆分析,以便快速定位網(wǎng)絡(luò)請求異常問題。
零代碼集成AGC性能管理服務(wù)
了解過上述場景后,我們來看看如何在Android平臺集成該服務(wù)。APM集成步驟非常簡單,只需要在開通服務(wù)后在代碼中集成插件和SDK即可,實(shí)現(xiàn)零代碼快速集成。
1. 創(chuàng)建應(yīng)用并開通性能管理服務(wù)
首先,我們在AGC控制臺創(chuàng)建應(yīng)用并開通APM,創(chuàng)建應(yīng)用的時(shí)候,注意應(yīng)用的包名要和APK里的包名保持一致。如果是在已有的應(yīng)用里集成APM,注意包名需要和AGC控制臺創(chuàng)建應(yīng)用時(shí)配置的包名保持一致 。創(chuàng)建好項(xiàng)目應(yīng)用后,或者使用已有的應(yīng)用,在界面上找到“我的項(xiàng)目-質(zhì)量-性能管理”,點(diǎn)擊立即開通即可。
2. 下載和集成json文件
在Android Studio中新建一個(gè)Android工程,包名需要和AGC界面上的包名保持一致,然后回到AGC首頁,在“我的項(xiàng)目-項(xiàng)目設(shè)置-應(yīng)用”界面下,找到并且將agconnect-services.json文件下載到本地,放到Android工程的app層級目錄下。
3. 集成APM插件與APM SDK
配置SDK地址,打開Android工程,在項(xiàng)目級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 }}
打開應(yīng)用級的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)用級的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)行,然后就可以在AGC界面上查看APM所采集到的數(shù)據(jù)與報(bào)告。整個(gè)集成過程未涉及業(yè)務(wù)代碼的編寫,僅通過簡單的4項(xiàng)步驟就順利完成,便捷高效。
APM分析報(bào)告提供了性能問題出現(xiàn)瞬間的詳細(xì)的設(shè)備與日志信息、性能數(shù)據(jù),實(shí)時(shí)的監(jiān)測報(bào)告為產(chǎn)品和運(yùn)營提供了優(yōu)化方向,同時(shí)也解決了性能問題開發(fā)難定位、測試難復(fù)現(xiàn)的問題,大幅減少了開發(fā)、測試工作量。