Bagaimana cara membuat profil aplikasi Android saya? [Tutup]

93

Saya perlu menemukan di mana letak hambatan di aplikasi Android saya.

Alat atau teknik pembuatan profil apa yang dapat saya gunakan?

teedyay
sumber
Saya tidak terbiasa dengan Android. Dapatkah Anda menjalankan aplikasi di bawah debugger yang dapat Anda interupsi? Jika demikian, metode ini berfungsi: stackoverflow.com/questions/375913/…
Mike Dunlavey
Mmm, menarik. Agak padat karya, tetapi berpotensi berguna untuk menemukan masalah kinerja yang lebih mencolok. Terima kasih.
teedyay
Saya mengerti bagaimana Anda bisa berpikir demikian: stackoverflow.com/questions/2624667/…
Mike Dunlavey
Saat ini Anda dapat melakukan pembuatan profil yang bagus di dalam Eclipse. Lupakan peluncuran TraceView secara mandiri / manual, dll. Saya berharap dapat menulis artikel blog tentang itu, dengan lebih detail. Ping saya jika Anda membutuhkan detail lebih lanjut.
KarolDepka
2
Anda menyarankan ada sesuatu yang lebih baik dari TraceView atau DDMS. Apa itu?
Peri Hartman

Jawaban:

37

Anda dapat menggunakan Traceview. Ini jauh dari ideal, tetapi berhasil. Artikel ini menjelaskan cara menggunakannya.

semen
sumber
2
Ketika saya menjalankan ini, dikatakan versi baris perintah tidak digunakan lagi dan kemudian keluar. Apa metode barunya?
gonzobrains
18

DDMS adalah yang terbaik untuk Android. Secara default ini disertakan dengan plugin ADT.

Ini dokumen dengan contoh rinci akan membantu Anda untuk menangani DDMS.


Untuk Analisis memori, coba Eclipse MAT

Shahul3D
sumber
4
Dokumen Android tentang DDMS: developer.android.com/tools/debugging/ddms.html
mulai
11

Itu tergantung apa yang akan Anda uji.

Jika Anda mengembangkan aplikasi untuk Android, Anda harus mencoba kelas TimingLogger. Lihatlah artikel ini yang menjelaskan penggunaan kelas helper TimingLogger.

Alat yang sangat bagus adalah JMeter dan ada juga plugin untuk Android .

jika Anda tidak ingin menggunakan alat eksternal, tetapi dengan cara yang sangat standar, untuk mengukur waktu yang telah berlalu, Anda harus menggunakan System.nanoTime (). Anda tidak boleh menggunakan currentTimeMillis, karena ini mengukur waktu jam dinding dan, karena tidak ada jam komputer yang sempurna (semuanya terkadang perlu dikoreksi) ada proses yang berjalan dan terus-menerus mengeluarkan koreksi kecil pada jam sistem. Belum lagi koreksi leap second.

Meskipun currentTimeMillis sering digunakan, mengukur waktu dan waktu yang telah berlalu masih salah. Bagaimanapun, karena pemanggilan membutuhkan waktu, Anda tidak boleh berharap untuk menghitung waktu dengan benar dalam interval yang sangat kecil. Tetapi itu seharusnya tidak menjadi masalah bekerja dengan Android.

Saya akan menunjukkan contoh:

long startTime = System.nanoTime();

// run/call the method

long endTime = System.nanoTime();
long diff = endTime - startTime ;
System.out.println("Elapsed milliseconds: " + diff /1000000);

Anda juga dapat melihat perpustakaan gratis ini: http://jetm.void.fm/ .

Anda juga dapat menemukan tutorial untuk JMeter .

David
sumber