AppGallery Connect(简称AGC)性能管理(Application Performance Management,简称APM)服务提供分钟级应用性能监控能力,依据APM SDK,可以实现零代码快速集成,您能够在AGC查看和分析APM收集到的应用性能数据,从而全面了解所开发应用的性能特点,快速精准修复应用存在的性能问题,持续提升应用的用户体验。
在本次Codelab中,您将建立一个能够集成APM的应用,通过手动触发ANR事件,以测试APM服务能否正常监控ANR报告。同时了解如何查看和分析ANR报告。
准备一台Android设备,必须为Android 4.4及以上版本。
集成AGC APM,需要完成以下准备工作
buildscript {
repositories {
// Add the maven repository
maven { url 'https://developer.huawei.com/repo/' }
}
dependencies {
// To benefit from the latest APM features, update your Android Gradle Plugin
// dependency to at least v3.5.3
classpath 'com.android.tools.build:gradle:3.5.3'
// if you had add agc plugin dependence, please update the version to 1.6.2.300. if not, please add agc plugin dependence
classpath 'com.huawei.agconnect:agcp:1.6.2.300'
}
}
apply plugin: 'com.android.application'
// Apply the AGC plugin
apply plugin: 'com.huawei.agconnect'
// Set the value of enableAPMS is true, means that the APMS plugin is working.
agcp {
enableAPMS true
}
android {
//..
}
针对Android Studio开发环境,开发前需集成APM SDK到您的Android Studio项目中。
dependencies {
// Add APM SDK library dependency
implementation 'com.huawei.agconnect:agconnect-apms:1.5.2.307'
}
-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
本次Codelab中您可以在Android Studio工程中创建一个布局页面,参照下图进行UI设计,新增一个Button,描述为"Trigger ANR",点击后可触发ANR事件。
对于界面布局的activity_main.xml的layout文件,可以参考使用如下代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical">
<Button
android:id="@+id/anr_test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="Trigger ANR" />
</LinearLayout>
</LinearLayout>
本次CodeLab中,您可以手动触发一次应用ANR并上报,然后在APM性能管理台上查看ANR数据是否正常。
Button triggeranrBtn = findViewById(R.id.anr_test);
triggeranrBtn.setOnClickListener(v -> {
Log.d("apmsAndroidDemo", "trigger ANR");
anrTestEnable = true;
});
private boolean anrTestEnable = false;
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (anrTestEnable) {
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return super.dispatchKeyEvent(event);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (anrTestEnable) {
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return super.dispatchTouchEvent(ev);
}
祝贺您,您已经成功地构建了您的第一个集成AGC APM的应用程序,并学到了如何制造ANR事件,并在AGC页面对ANR事件进行查看和分析。