Topik ini menjelaskan cara menggunakan fungsi diagnosis klien pada klien Android. Di Konsol, Anda dapat mengirim tugas diagnostik melalui dua saluran: Message Push Service (MPS) dan Mobile Sync Service (MSS).
Untuk mendiagnosis klien Android, ikuti langkah-langkah berikut:
Prasyarat
Anda telah mengintegrasikan komponen Mobile Analysis Service, dan fitur pelaporan log berfungsi dengan benar. Untuk informasi selengkapnya, lihat Integrasikan Mobile Analysis Service ke klien Android.
Anda telah mengintegrasikan komponen Message Push Service atau Mobile Sync Service.
Jika Anda menggunakan saluran Message Push Service, ikuti langkah-langkah dalam Getting Started untuk Integrasikan Message Push Service ke Klien Android.
Jika Anda menggunakan saluran Mobile Sync Service, lihat Integrate with AndroidIntegrasikan Mobile Sync Service ke klien Android untuk langkah-langkah integrasinya.
Inisialisasi layanan diagnosis
Layanan diagnosis mendukung penarikan log diagnostik melalui saluran Mobile Sync Service atau Message Push Service. Metode inisialisasi berbeda untuk setiap saluran.
Gunakan saluran Message Push Service
Jika Anda menggunakan saluran Message Push Service, lakukan operasi berikut setelah aplikasi dimulai:
Inisialisasi layanan push untuk membangun koneksi persisten antara klien dan gerbang Message Push Service. Kit pengembangan perangkat lunak (SDK) push mempertahankan saluran buatan sendiri ini.Inisialisasi SDK push
Ikat user ID. ID ini ditentukan oleh developer. ID tersebut dapat berupa identitas pengguna dari sistem pengguna Anda atau parameter lain yang dapat dipetakan ke pengguna tertentu, seperti akun atau nomor telepon.Laporkan user ID
Gunakan saluran Mobile Sync Service
Jika Anda menggunakan saluran Mobile Sync Service, panggil metode berikut setelah aplikasi dimulai untuk menginisialisasi saluran.
Memicu tugas diagnostik berdasarkan pengguna
// Setel userId MPLogger.setUserId(String userId); // Inisialisasi saluran Sync. Anda harus menyetel userId terlebih dahulu, atau inisialisasi akan gagal. MPDiagnose.initSyncChannel(Context context);Memicu tugas diagnostik berdasarkan perangkat
CatatanPemantik tugas diagnostik berdasarkan perangkat hanya didukung pada baseline 10.2.3.73 dan versi setelahnya.
// Setel userId MPLogger.setUserId(String userId); // Inisialisasi saluran Sync. Anda harus menyetel userId terlebih dahulu, atau inisialisasi akan gagal. MPDiagnose.initSyncDeviceChannel(Context context);
Tulis log diagnostik
Ketika klien menerima tugas diagnostik, klien hanya mengunggah log yang ditulis menggunakan tool logging mPaaS, MPLogger. Oleh karena itu, Anda harus menggunakan MPLogger, bukan android.util.Log, untuk menulis log. MPLogger menyediakan metode tingkat log yang mirip dengan kelas Log native:
void verbose(String tag, String msg);
void debug(String tag, String msg);
void info(String tag, String msg);
void warn(String tag, String msg);
void warn(String tag, Throwable t);
void warn(String tag, String msg, Throwable tr);
void error(String tag, String msg);
void error(String tag, Throwable t);
void error(String tag, String msg, Throwable t);
void print(String tag, String msg);
void print(String tag, Throwable t);Log yang ditulis oleh MPLogger ditampilkan di logcat untuk paket debug tetapi tidak untuk paket release. Direktori penyimpanan log diagnostik di perangkat adalah:
Paket debug:
/sdcard/[PackageName]/applog. Jika direktori ini tidak dapat ditulis, log akan ditulis ke direktori paket release.PentingJika targetSdkVersion adalah 30 atau lebih baru dan sistem operasi ponsel adalah 11 atau lebih baru, direktori penyimpanannya adalah:
/storage/emulated/0/Android/data/com.mpaas.demo/cache/[PackageName]/applog/.Paket release:
/data/data/[PackageName]/files/applog.
Sesuaikan parameter penyimpanan log diagnostik
Secara default, penyimpanan log lokal menyimpan data selama 7 hari dengan batas ukuran file 15 MB. Jika batas ini terlampaui, seperempat file log akan dihapus.
Konfigurasikan elemen <meta-data> dalam manifes.
// Ukuran maksimum file log dalam MB
<meta-data android:name="category_applog_max_size" android:value="15" />
// Durasi penyimpanan log dalam hari
<meta-data android:name="category_applog_expires_time" android:value="7" />Penyesuaian parameter penyimpanan log diagnostik hanya didukung pada baseline 10.2.3.73 dan versi setelahnya.
Tarik log dari Konsol
Anda dapat menarik log yang ditulis oleh tool logging mPaaS dari Konsol. Fitur ini membantu Anda menganalisis crash atau exception yang terjadi pada model perangkat tertentu atau untuk pengguna tertentu secara cepat.
Langkah 1: Buat tugas penarikan log
Login ke Konsol mPaaS dan pilih aplikasi target Anda.
Di panel navigasi sebelah kiri, klik Mobile Analysis Service > Log Management.
Pada tab Pull real-time logs, klik Add.
Isi informasi tugas. User ID adalah pengenal pengguna dalam sistem login aplikasi Anda. Anda dapat menyetelnya menggunakan
MPLogger.setUserId(String userId)atau metode pelaporan user ID melalui Message Push Service.Klik OK untuk membuat tugas penarikan log.
Langkah 2: Picu tugas penarikan log
Dalam daftar tugas penarikan log, temukan tugas yang baru saja dibuat, pilih Trigger Channel, lalu klik Trigger di kolom Operations.
Tunggu sebentar, lalu refresh halaman untuk memeriksa status tugas:
Task processed: Klik View untuk mengunduh log diagnostik.
Push/Sync service successfully called: Status ini menunjukkan bahwa pesan untuk mengunggah log diagnostik telah dikirim, tetapi klien belum menerimanya atau belum mengunggah log. Dalam kasus ini, pastikan proses aplikasi Anda masih berjalan. Jika tidak, restart aplikasi. Jika status tugas tidak berubah setelah Anda me-restart aplikasi, lihat bagian troubleshooting di bawah.
Troubleshooting
Jika Anda tidak dapat menarik log, ikuti langkah troubleshooting yang sesuai dengan saluran yang digunakan untuk mengirim tugas log diagnostik.
Gunakan saluran Message Push Service
Ikuti langkah-langkah berikut untuk troubleshooting:
Buka halaman Konsol mPaaS > Message Push Service. Dorong pesan biasa ke aplikasi Anda berdasarkan user ID untuk memastikan saluran Message Push Service berfungsi dengan benar.
Jika saluran Message Push Service berfungsi dengan benar, bersihkan log logcat, alihkan ke proses push, lalu klik Trigger lagi untuk tugas diagnostik di Konsol. Pantau log logcat.
Filter untuk
mPush14dan periksa apakah pesan diagnostik diterima. Jika tidak, pastikan apakah saluran push terputus.
Setelah Anda memastikan pesan diagnostik diterima, periksa log berikut untuk memastikan pesan diteruskan ke
MonitorService. Jika terdapat error yang menunjukkan bahwaClientMonitorServicetidak ditemukan, gunakan plugin mPaaS untuk memperbarui SDK:Untuk baseline 10.1.32, upgrade ke 10.1.68 dan perbarui komponen ke versi terbaru.
Untuk baseline 10.1.60 atau 10.1.68, perbarui komponen ke versi terbaru.

Setelah Anda memastikan
MonitorServicetelah dimulai, filter untukAlipayLogUploaderuntuk memeriksa apakah log diagnostik tersedia secara lokal. Log berikut menunjukkan bahwa log diagnostik lokal tersedia untuk diunggah.
Log berikut menunjukkan bahwa tidak ada log diagnostik.

Jika tidak ada log diagnostik, periksa hal-hal berikut:
Periode waktu yang dipilih untuk tugas penarikan log waktu nyata di Konsol harus minimal 1 jam. Aplikasi harus berjalan dan menulis log diagnostik selama periode tersebut.
Aplikasi harus mendeklarasikan dan meminta izin berikut secara dinamis:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Setelah Anda memastikan log diagnostik lokal tersedia, filter untuk
HttpUploaduntuk memeriksa apakah pengunggahan log berhasil.responseCodebernilai 200 menunjukkan pengunggahan berhasil.
Gunakan saluran Data Synchronization
Ikuti langkah-langkah berikut untuk troubleshooting:
Bersihkan log logcat, alihkan ke proses utama, dan inisialisasi saluran sinkronisasi. Lalu, filter untuk
isConnecteduntuk memeriksa apakah koneksi saluran sinkronisasi berhasil dibangun.
Di Konsol mPaaS, klik Trigger lagi untuk tugas diagnostik. Filter untuk
MPDiagnoseuntuk memeriksa apakah pesan diagnostik diterima dan apakahMonitorServicetelah dimulai.Jika tidak ada pesan yang diterima, pastikan user ID yang disetel sesuai dengan user ID yang dimasukkan dalam tugas diagnostik. Jika terdapat error yang menunjukkan bahwa
ClientMonitorServicetidak ditemukan, gunakan plugin mPaaS untuk memperbarui SDK:Untuk baseline 10.1.32, upgrade ke 10.1.68 dan perbarui komponen ke versi terbaru.
Untuk baseline 10.1.60 atau 10.1.68, perbarui komponen ke versi terbaru.

Setelah Anda memastikan
MonitorServicetelah dimulai, alihkan ke proses push dan filter untukAlipayLogUploaderuntuk memeriksa apakah log diagnostik tersedia secara lokal. Log berikut menunjukkan bahwa log diagnostik lokal tersedia untuk diunggah.
Log berikut menunjukkan bahwa tidak ada log diagnostik.
Verifikasi hal-hal berikut:
Periode waktu yang dipilih untuk tugas penarikan log waktu nyata di Konsol harus minimal 1 jam. Aplikasi harus berjalan dan menulis log diagnostik selama periode tersebut.
Aplikasi harus mendeklarasikan dan meminta izin berikut secara dinamis:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Setelah Anda memastikan log diagnostik lokal tersedia, filter untuk
HttpUploaduntuk memeriksa apakah pengunggahan log berhasil.responseCodebernilai 200 menunjukkan pengunggahan berhasil.