Topik ini menjelaskan cara menambahkan log performa untuk Mobile Analysis.
Log performa untuk Mobile Analysis pada Android mencakup hal-hal berikut:
Log waktu startup
Log lag
Log stuck
Anda dapat masuk ke Konsol mPaaS dan memilih Mobile Analysis Service > Basic analysis untuk melihat durasi startup, serta masuk ke Konsol mPaaS dan memilih Mobile Analysis Service > Performance analysis untuk melihat laporan lag dan stuck.
Instrumentasi kecepatan startup
Durasi startup aplikasi = Waktu saat metode dipanggil – Waktu saat aplikasi dimulai.
Untuk melakukan instrumentasi kecepatan startup, panggil metode berikut dalam metode onCreate() pada Activity halaman utama.
MPLogger.reportLaunchTime(Context context);Instrumentasi tersendat (stuttering)
Tersendat terjadi ketika thread utama Android membutuhkan waktu lebih dari 2,25 detik untuk mengeksekusi suatu metode. Ambang batas tersendat bervariasi tergantung pada jenis paket APK:
Jika APK adalah paket debug, ambang batas tersendat adalah 0,75 detik. Hal ini memungkinkan Anda mendeteksi potensi masalah tersendat secara cepat selama debugging.
Jika APK adalah paket release, ambang batas tersendat adalah 2,25 detik.
Aktifkan pemantauan tersendat
Metode 1
Untuk mengaktifkan pemantauan tersendat otomatis, antarmuka Anda harus mewarisi kelas BaseActivity, BaseFragmentActivity, atau BaseAppCompatActivity yang disediakan oleh mPaaS.
Metode 2
Metode ini hanya didukung pada baseline 10.2.3.50 dan versi setelahnya.
Anda dapat memanggil API terkait secara manual dalam metode siklus hidup Activity. Contohnya:
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import com.mpaas.mas.adapter.api.MPLogger;
public class MPLifecycle implements Application.ActivityLifecycleCallbacks {
private int mVisibleActivityCount = 0;
private boolean isBackground = false;
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
}
@Override
public void onActivityStarted(Activity activity) {
mVisibleActivityCount++;
if (isBackground) {
isBackground = false;
// Dipanggil saat aplikasi kembali ke foreground.
MPLogger.monitorAppForeground();
}
}
@Override
public void onActivityResumed(Activity activity) {
// Perbarui konteks Activity.
MPLogger.monitorActivityResumed(activity);
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
mVisibleActivityCount--;
if (mVisibleActivityCount <= 0) {
isBackground = true;
// Dipanggil saat aplikasi dikirim ke background.
MPLogger.monitorAppBackground();
}
}
@Override
public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
}Pemantauan tersendat mengumpulkan semua data untuk APK debug. Untuk APK release, pemantauan dilakukan berdasarkan pengambilan sampel dengan laju sampel 10%.
Instrumentasi ANR
ANR biasanya terjadi ketika thread utama tidak merespons selama lebih dari 5 detik.
Untuk mengaktifkan pemantauan ANR, lihat Aktifkan pemantauan tersendat.