Làm cách nào để lập hồ sơ ứng dụng Android của tôi? [đóng cửa]


93

Tôi cần tìm vị trí tắc nghẽn trong ứng dụng Android của mình.

Tôi có thể sử dụng những công cụ hoặc kỹ thuật lập hồ sơ nào?


Tôi không quen thuộc với Android. Bạn có thể chạy ứng dụng dưới trình gỡ lỗi mà bạn có thể làm gián đoạn không? Nếu vậy, phương pháp này hoạt động: stackoverflow.com/questions/375913/...
Mike Dunlavey

Mmm, thú vị. Hơi tốn công sức một chút, nhưng có khả năng hữu ích để phát hiện các vấn đề về hiệu suất rõ ràng hơn. Cảm ơn.
teedyay

Tôi hiểu làm thế nào bạn có thể nghĩ như vậy: stackoverflow.com/questions/2624667/...
Mike Dunlavey

Ngày nay, bạn có thể tạo hồ sơ đẹp bên trong Eclipse. Quên khởi chạy TraceView thủ công / độc lập, v.v. Tôi hy vọng sẽ viết một bài blog về điều đó, với nhiều chi tiết hơn. Ping cho tôi nếu bạn cần thêm chi tiết.
KarolDepka

2
Bạn đề xuất có thứ gì đó tốt hơn TraceView hoặc DDMS. Nó là gì?
Peri Hartman

Câu trả lời:


37

Bạn có thể sử dụng Traceview. Nó là xa lý tưởng, nhưng hoạt động. Bài viết này mô tả cách sử dụng nó.


2
Khi tôi chạy nó, nó cho biết phiên bản dòng lệnh không được dùng nữa và sau đó nó sẽ thoát. Phương pháp mới là gì?
gonzobrains


11

Nó phụ thuộc vào những gì bạn sẽ kiểm tra.

Trong trường hợp bạn phát triển các ứng dụng cho Android, bạn nên thử lớp TimingLogger. Hãy xem bài viết này mô tả cách sử dụng lớp trợ giúp TimingLogger.

Một công cụ rất tốt là JMeter và cũng có một plugin dành cho Android .

nếu bạn không muốn sử dụng các công cụ bên ngoài, nhưng một cách rất chuẩn, để đo thời gian đã trôi qua, bạn phải sử dụng System.nanoTime (). Bạn không nên sử dụng currentTimeMillis, vì nó đo thời gian trên đồng hồ treo tường, vì không có đồng hồ của máy tính nào là hoàn hảo (tất cả chúng thỉnh thoảng cần được sửa lại) có một quy trình chạy và liên tục đưa ra các chỉnh sửa nhỏ đối với đồng hồ hệ thống. Chưa kể đến việc hiệu chỉnh giây nhuận.

Mặc dù currentTimeMillis thường được sử dụng, việc đo thời gian và thời gian đã trôi qua vẫn không chính xác. Nhưng dù sao, vì lời gọi mất một thời gian, bạn không nên mong đợi thời gian chính xác những khoảng rất nhỏ. Nhưng đó không phải là vấn đề khi làm việc với Android.

Tôi sẽ chỉ cho bạn một ví dụ:

long startTime = System.nanoTime();

// run/call the method

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

Bạn cũng có thể xem thư viện miễn phí này: http://jetm.void.fm/ .

Bạn cũng có thể tìm thấy hướng dẫn cho JMeter .


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.