Jendela Logcat di carlocaione.org Studio menampilkan pesan sistem, kemudian kapanpembersihan lemparan memori dilakukan, dan pesan apa telah dari mereka tambahkan nanti aplikasi mencapai class Log. Jendela ini menampilkan pesan secara realtime dan menyimpan histori sehingga milik mereka dapat pemandangan pesan yang lebih lama.

Anda sedang menonton: Cara melihat history aplikasi android

Untuk menampilkan informasi yang diminati saja, dari mereka dapat produksi filter,memodifikasi banyaknya informasi apa ditampilkan di dalam pesan, menetapkan tingkat prioritas,menampilkan pesan yang dihasilkan oleh kata sandi aplikasi saja, dan menelusuri log. Secara default, logcatmenampilkan output log yang terkait menjangkau aplikasi yang baru saja dijalankan.

Saat aplikasi showing pengecualian, logcat showing pesanyang disusul dengan pelacakan tumpukan terkait apa berisi link setelah baris kode.

Mulai carlocaione.org Studio 2.2, jendela Run juga menampilkan menodai log karena aplikasi apa sedang berjalan.Perhatikan bahwa milik mereka dapat mengonfigurasi tampilan calculation logcat, tetapi tidak buat jendelaRun.

Melihat log in aplikasi Anda

karena menampilkan menodai log sebuah aplikasi:

klik View > tool Windows > Logcat (atau klik Logcat
*
di dasbor jendela alat).

Jendela Logcat menampilkan pesan log karena aplikasi apa dipilih, sebagai yang dipilih dari partij drop-downdi bagian atas jendela, sebagaimana ditunjukkan pada cat, dll 1.

*

Gambar 1. Jendela Logcat

Secara default, logcat hanya menampilkan menodai log karena aplikasi apa sedang berjalan di perangkat. Buat mengubah başı default ini, lihat cara memfilter berita logcat.

Toolbar Logcat menyediakan tombol-tombol berikut:

Clear logcat
*
: Klik buat menghapus log yang terlihat. Scroll to the end
*
: Klik buat melompat usai bagian bawah log in dan melihat berita log terbaru. Jika Anda kemudian mengklik sebuah baris dalam log, tampilan become menjeda scroll di ~ titik itu. Up the stack trace
*
dan Down the ridge trace
*
: Klik untuk menavigasi pelacakan tumpukan naik dan down dalam log, yang akan memilih nama file berikutnya (dan melihat nomor baris terkaitnya di editor) apa muncul di dalam pengecualian tercetak. Perilaku ini sama mencapai ketika anda mengklik nama file dalam log. Use soft wraps
*
: Klik buat mengaktifkan penggabungan pengelolaan dan mencegah scrolling horizontal (tetapi wire yang noël dapat dipecah tetap memerlukan scrolling horizontal). Print
*
: Klik untuk mencetak berita logcat. Ke memilih preferensi cetak di dalam dialog apa ditampilkan, Anda juga dapat memilih untuk menyimpannya setelah PDF. Restart
*
: Klik untuk menghapus log dan memulai ulang logcat. Tidak seperti tombol Clear logcat, tindakan ini become memulihkan dan menampilkan pesan log sebelumnya, enim sangat bermanfaat jika Logcat menjadi noël responsif dan Anda noël ingin kehilangan berita log. Logcat header
*
: Klik untuk membuka percakapan Configure Logcat Header, tempat their dapat pengaturan tampilan setiap berita logcat, sebagai apakah akan menampilkan tanggal dan times atau tidak.

Menulis menodai log

Class Logmemungkinkan their membuat pesan log apa ditampilkandi logcat. Biasanya, dari mereka harus menggunakan cara log berikut,yang diurutkan dari prioritas paling tinggi ke paling rendah(atau dari yang paling tidak verbose setelah yang most verbose):

Lihat deskripsi class Loguntuk daftar pilihan yang lebih lengkap.

Anda noël boleh mengompilasi log verbose setelah dalam aplikasi, kecuali selamapengembangan. Log in debug dikompilasi, tetapi dihilangkan di ~ saat runtime, sementara log in error,peringatan, dan info selalu disimpan.

Untuk setiap perilaku log, parameter pertama harus berupa tags unik danparameter kedua harus berupa pesan. Tagpesan log sistem adalah string gigi tiruan yang menunjukkan komponen warisan dari mana berita berasal (misalnya ActivityManager). Tag anda dapat berupa string what pun apa menurut their bermanfaat, kemudian namaclass saat ini.

Akan lebih baik jika anda mendeklarasikan konstanta TAG batin class dari mereka untukdigunakan pada parameter pertama. Misalnya, their dapat making pesan loginformasi such berikut:


Kotlin

private const val tags = "MyActivity"...Log.i(TAG, "MyClass.getView() — get artikel number $position")

Java

private static final String sign = "MyActivity";...Log.i(TAG, "MyClass.getView() — get item number " + position);
Catatan: nama tag apa lebih dari 23 karakter ini adalah terpotong batin output logcat.

Format pesan Logcat

Setiap menodai log carlocaione.org memiliki tag dan prioritas yang terkait dengannya. Tag pesan log asetnya adalah string singkat yang unjuk komponen asetnya dari mana pesan berasal (misalnya, ActivityManager). Tag apa ditentukan pengguna dapat berupa string maafkan saya pun apa menurut their bermanfaat, seperti nama class saat ini (tag yang direkomendasikan). Milik mereka menetapkan tags ini dalam call metode Log,misalnya:


Prioritasnya adalah deviasi satu dari nilai berikut:

V: Verbose (prioritas terendah) D: Debug I: details W: Warning E: Error A: Assert

Format pesan log adalah:

date time PID-TID/package priority/tag: message Misalnya, pesan log berikut memiliki prioritas V dan sign AuthZen:

12-10 13:02:50.071 1901-4229/com.google.carlocaione.org.gms V/AuthZen: managing delegate intent. PID singkatan dari procedure identifier (ID proses) dan TID adalah singkatan dari thread identifier (ID thread); keduanya mungkin sama jika hanya ada satu thread.

Menetapkan kadarnya log

milik mereka dapat mengontrol banyaknya pesan apa ditampilkan di logcat mencapai menetapkan tingkat log. Dari mereka dapat menampilkan segenap pesan, atau just pesan apa menunjukkan kondisi paling parah.

pikiran bahwa logcat terus mengumpulkan semua pesan terlepas dari bugar level log Anda. Bugar ini hanya menentukan maafkan saya yang ditampilkan oleh logcat.

pada menu log in level, pilih salah satu biaya berikut:

Verbose: showing semua berita log (default).

Debug: Menampilkan pesan log debug apa berguna selama pengembangan saja, serta tingkat pesan yang lebih rendah dalam daftar ini.

Info: Menampilkan pesan log apa diharapkan untuk penggunaan reguler, serta tingkat pesan apa lebih rendah dalam daftar ini.

Warn: mendemonstrasikan kemungkinan masalah yang belum menjadi error, serta tingkat pesan apa lebih rendah di dalam daftar ini.

Error: mendemonstrasikan masalah apa mengakibatkan error, serta tingkat pesan yang lebih rendah dalam daftar ini.

Assert: menampilkan masalah apa kejadiannya noël pernah diharapkan malalui carlocaione.org.

Menelusuri pesan logcat

untuk menelusuri pesan yang saat ini khas di logcat:

Atau, pilih Regex jika anda ingin benefit pola temukan ekspresi reguler. Ketikkan rangkaian karakter batin kolom mencari
*
.

Tampilan output logcat berubah benar penelusuran Anda.

press Enter karena menyimpan string penelusuran di menu selama sesi. untuk mengulangi penelusuran, pilih cable dari menu penelusuran. Pilih atau batalkan pilih Regex sesuai yang diperlukan (setelan ini tidak diingat).

Memfilter menodai logcat

penyimpangan satu cara karena mengurangi output log ke tingkat apa mudah pengelola adalah mencapai membatasinya menggunakan filter.

Catatan: Filter berlaku diatas histori logcat lengkap, bukan hanya pada pesan yang saat ini khas di logcat. Pastikan opsi tampilan yang lain disetel dengan benar sehingga their dapat pemandangan output filter apa ingin diperiksa.

untuk menetapkan dan menerapkan filter:

pada menu filter, pilih sebuah opsi filter: Show only selected application: hanya menampilkan pesan yang dihasilkan oleh kode aplikasi (default). Logcat memfilter menodai log benefit PID aplikasi aktif. No Filters: Filter noël diterapkan. Logcat pameran semua berita log dari perangkat, mana pun proses apa Anda pilih. Edit Filter Configuration: making atau memodifikasi filter kustom. Misalnya, their dapat membuat filter buat menampilkan pesan log dari dua aplikasi secara bersamaan.

ke menetapkan filter, Anda also dapat memilihnya di ~ menu. Untuk menghapus filter dari menu, lakukan secara langsung.

Jika their memilih Edit Filter Configuration, buat atau modifikasi filter: Tetapkan parameter filter di dalam dialog Create brand-new Logcat Filter: Filter Name: Ketik nama filter yang ingin their tetapkan, atau pilih di panel kiri untuk memodifikasi filter yang ada. Nama hanya boleh berisi ilustrasi huruf kecil, mendayung bawah, dan angka. Regex: Pilih pilihan ini untuk menggunakan sintaks ekspresi reguler untuk parameter tersebut. klik + untuk menambahkan definisi filter usai panel kiri.

untuk menghapus filter, pilih filter di dasbor kiri dan mengklik -.

usai selesai, mengklik OK.

Jika Anda noël melihat berita log apa diinginkan, mencoba memilihNo filters dan lakukan penelusuranpesan log tertentu.

Membaca pesan pembersihan melemparkan memori

Kadang-kadang, saat pembersihan sampah memori terjadi, peristiwa tersebut dicetak usai logcat.

Untuk information lebih next tentang memori aplikasi Anda, gunakanMemory Profiler.

Pesan log in Dalvik

Pada Dalvik (tetapi noël pada ART), setiap GC mencetak informasi berikut ke logcat:

D/dalvikvm(PID): GC_Reason Amount_freed, Heap_stats, External_memory_stats, Pause_timeContoh:

D/dalvikvm( 9050): GC_CONCURRENT freed 2049K, 65% free 3571K/9991K, external 4703K/5261K, paused 2ms+2msAlasan GCApa apa memicu GC dan pembersihan melemparkan memori jenis what itu. Alasan yang mungkin munculmeliputi:GC_CONCURRENTGC serentak apa mengosongkan memori saat heap milik mereka nyaris penuh.GC_FOR_MALLOCGC dipicu untuk aplikasi milik mereka mencoba mengalokasikan memori saat heap telahpenuh, sehingga asetnya harus menghentikan aplikasi dan memperoleh back memori.GC_HPROF_DUMP_HEAPGC apa terjadi saat their meminta pembuatan record HPROF untuk menganalisis heap Anda.GC_EXPLICITGC eksplisit, misalnya saat their memanggil gc() (yang seharusnya noël Anda panggil dan kemudian gantinya mempercayai GC buat dijalankan jika diperlukan).GC_EXTERNAL_ALLOCIni hanya terjadi pada fire level 10 dan yang lebih inferioritas (versi apa lebih baru mengalokasikan alles pada heapDalvik). GC untuk memori apa dialokasikan secara luar (seperti data piksel apa disimpan dalammemori native atau buffer byte NIO).Jumlah apa dibebaskanJumlah memori yang dapat diperoleh back dari GC ini.Statistik heapPersentase heap apa dibebaskan dan (jumlah objek aktif)/(total ukuran heap).Statistik memori eksternalMemori yang dialokasikan secara eksternal pada api level 10 dan apa lebih rendah (jumlah memori apa dialokasikan) / (batasterjadinya pembersihan lemparan memori).Waktu jedaHeap yang lebih besar akan memiliki waktu jeda lebih banyak. Times jeda serentak mendemonstrasikan dua jeda: satu diawal pembersihan dan satu lainnya menjelang di atas pembersihan.Saat menodai log ini terkumpul, waspadai muka statistik heap (nilai3571K/9991K dalam contoh di atas). Jika cost ini terus meningkat, their mungkinmengalami kebocoran memori.

Pesan log ART

Tidak sebagai Dalvik, ART noël mencatat log pesan untuk GC yang noel diminta secara eksplisit. GC hanyadicetak jika dianggap lambat. Lebih tepatnya, GC dicetak hanya jika jeda GC terlampaui 5 milidetik ataudurasi GC saya telah melampaui 100 milidetik. Jika aplikasi noel dalam kapak jeda yang terasa(misalnya saat aplikasi berjalan di latar belakang, di mana pengguna noël dapat merasakan jedaGC), maka tidak ada GC yang dianggap lambat. GC eksplisit selalu dicatat nanti log.

ART menyertakan informasi berikut batin pesan log pembersihan lemparan memori:

I/art: GC_Reason GC_Name Objects_freed(Size_freed) AllocSpace Objects, Large_objects_freed(Large_object_size_freed) Heap_stats LOS objects, Pause_time(s)Contoh:

I/art : clear concurrent note sweep GC freed 104710(7MB) AllocSpace objects, 21(416KB) LOS objects, 33% free, 25MB/38MB, paused 1.230ms kasar 67.216msAlasan GCApa apa memicu GC dan pembersihan lemparan memori jenis what itu. Alasan apa mungkin munculmeliputi:ConcurrentGC serentak yang noel menangguhkan object aplikasi. GC ini berjalan di object latar belakangdan noël mencegah alokasi.AllocGC ini dimulai karena aplikasi anda mencoba titik memori saat heapsudah penuh. Dalam kasus ini, pembersihan melemparkan memori terjadi di object pengalokasi.ExplicitPembersihan sampah memori meminta secara eksplisit malalui aplikasi, misalnyadengan panggilan gc() ataugc(). Kemudian pada Dalvik, praktik terbaik diatas ARTadalah dengan mempercayai GC dan menghindari permintaan GC eksplisit, jika memungkinkan.GC eksplisit tidak dianjurkan buat memblokir subject pengalokasi dan memboroskan putaran CPU secarasia-sia. GC eksplisit tambahan dapat berakibat jank (aplikasi tersendat, bergetar, ataukah terhenti) jika GC itumenyebabkan tertundanya eksekusi object lain.NativeAllocPembersihan lemparan memori disebabkan oleh tekanan memori native dari dialokasikan native seperti objek alokasi Bitmap atauRenderScript.CollectorTransitionPembersihan lemparan memori disebabkan melalui transisi heap; peristiwa ini disebabkan melalui berubahnyastrategi GC pada times proses (misalnya saat aplikasi mengalihkan antara negara jedayang terasa). Transisi tameng sampah memori meliputi menyalin semua objekdari ruang yang didukung daftar-bebas ke ruang bump tip (atau sebaliknya).Ini hanya terjadi pada perangkat mencapai RAM rendah silam carlocaione.org 8.0saat aplikasi alter status mengolahnya dari terms jedayang terasa (misalnya saat aplikasi berjalan di latar depan, di mana pengguna dapatmerasakan jeda GC) setelah kondisi jeda yang noël terasa (atau sebaliknya).

Lihat lainnya: Pernikahan Dory Harsa Dan Nella Kharisma & Dory Harsa, Akui Lelah Bersembunyi

HomogeneousSpaceCompactPemadatan ruang keseragaman adalah pemadatan kamarnya daftar-bebas nanti ruang daftar-bebas yang biasanyaterjadi saat sebuah aplikasi dipindahkan nanti kondisi jeda proses yang noël terasa. Alasan terutama melakukannyaadalah karena mengurangi penggunaan lamb dan mendefragmentasi heap.DisableMovingGcIni bukan alasan GC apa sebenarnya, melainkan catatan bahwa pembersihan sampah memori diblokir untuk adanya penggunaanGetPrimitiveArrayCritical. Ketika pemadatan heap serentak sedang berlangsung. Secara umum, penggunaanGetPrimitiveArrayCritical sangat noel dianjurkan buat membatasi pembersih sampah memori yang terus bergerak.HeapTrimIni ~ no alasan GC, melainkan lebah bahwa pembersihan melemparkan memori buntu hingga pemangkasan heap selesai.Nama GCART memiliki beragam GC apa dapat dijalankan.Concurrent note sweep (CMS)Pembersih heap semua yang stabil semua kamarnya selain ruang image.Concurrent partial note sweepPembersih heap nyaris keseluruhan yang rapi semua kamarnya selain ruang gambar dan zygote.Concurrent sticky note sweepPembersih generasional yang hanya dapat membebaskan objek yang dialokasikan since GC terakhir. Pembersihan sampahmemori ini dijalankan lebih sering dibandingkan mark sweep jenuh atau sebagian untuk prosesnya lebih cepat dan memiliki jeda lebih sedikit.Marksweep + semispaceGC penyalin noël serentak apa digunakan buat transisi heap serta pemadatan ruang homogen (untuk mendefragment heap).Objek yang dibebaskanJumlah objek apa diperoleh kembali melalui GC ini dari ruang objek apa tidakberukuran besar.Ukuran yang dibebaskanJumlah byte yang diperoleh kembali melalui GC ini dari ruang objek yang noel berukuranbesar.Objek besar apa dibebaskanJumlah objek di dalam ruang objek besar yang diperoleh kembali melalui pembersihansampah memori ini.Ukuran objek besar yang dibebaskanJumlah byte di dalam ruang objek besar apa diperoleh bagian belakang melalui pembersihansampah memori ini.Statistik heapPersentase yang dibebaskan dan (jumlah objek aktif)/(total massa heap).Waktu jedaBiasanya, times jeda berbanding lurus menjangkau jumlah referensi objek apa diubahselama GC berjalan. Saat ini, GC art CMS just memiliki satu kali jeda, menjelang di atas GC.GC yang terus bergerak pribadi jeda panjang yang berlangsung hampir sepanjang berlanjut GC.

Jika anda melihat GC yang banyak sekali diatas logcat, waspadai kenaikan statistik heap (nilai25MB/38MB dalam contoh di atas). Jika cost ini terus meningkat dan noël adatanda-tanda berkurang, Anda bisa mengalami kebocoran memori. Atau, jika milik mereka melihat GCkarena alasan "Alloc", berarti Anda sudah beroperasi mendekati kapasitas heap dan ini adalah menerimapengecualian OOM batin waktu dekat.