찾다

 >  Q&A  >  본문

Android中有什么好的查看代码性能的工具,类似内存泄漏,或者分析程序性能的工具?

PHP中文网PHP中文网2837일 전803

모든 응답(6)나는 대답할 것이다

  • 怪我咯

    怪我咯2017-04-17 16:32:34

    바보같은 MAT(Memory Analyser Tool), 더욱 더 바보같은 누출 카나리

    회신하다
    0
  • PHP中文网

    PHP中文网2017-04-17 16:32:34

    BlockCanary에서 앱 인터페이스 지연, 메모리 누수 감지 라이브러리 누수, MAT 등을 확인하세요.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-17 16:32:34

    멈추고 종료되면 로그가 크래시인지 ANR인지 확인해야 합니다
    크래시가 발생하면 백트레이스를 보고 수정하세요
    ANR의 경우 가장 긴 시간을 넣는 것이 중요합니다. 메인 스레드에서 실행된 작업을 하위 스레드로 실행

    회신하다
    0
  • 迷茫

    迷茫2017-04-17 16:32:34

    ddms, 함수 실행 시간 좀 보세요, 트레이스뷰도 도구입니다

    회신하다
    0
  • 高洛峰

    高洛峰2017-04-17 16:32:34

    포스터의 주요 문제는 메인 스레드에서 시간이 많이 걸리는 작업이 어디에 사용되는지 알 수 없다는 것입니다. 그렇다면 StrictMode를 켜면 주의가 필요한 코드를 빠르게 찾는 데 도움이 될 것입니다.
    엄격 모드는 Android에서 제공하는 런타임 감지 메커니즘으로, 코드가 실행될 때 일부 불규칙한 작업을 감지하는 데 사용됩니다. 가장 일반적인 시나리오는 메인 스레드의 IO 작업을 검색하는 것입니다.
    StrictMode에는 두 가지 차원의 개념이 포함됩니다.
    정책(policy): 일부 불법 작업에 대한 StrictMode의 검색 전략을 나타내며 두 ​​가지 범주로 나뉩니다. 하나는
    특정 스레드(ThreadPolicy)에 대한 것이고, 다른 범주는 가상 머신(VMPolicy)의 모든 개체에 대한 것입니다.
    페널티: 빨간색 상자 그리기, 로그 인쇄, 대화 상자 표시, 프로세스 종료 등과 같은 불법 작업을 발견한 후 StrictMode가 처벌하는 방식을 나타냅니다.
    Android에는 디스크 읽기 및 쓰기, 네트워크 액세스, 시스템
    프로세스 시작 등과 같은 여러 주요 코드 경로에 StrictMode가 내장되어 있습니다. StrictMode는 설정된 정책에 따라 코드가 실행되는 동안 프로세스에
    위반 작업이 있으면 "처벌"됩니다.
    예를 들어 다음 코드에서 위반이 있는 경우 불법 연산 위치와 호출 스택 정보가 logcat에 출력됩니다.
    android.app.Application의 onCreate가 StickMode를 활성화합니다.
    으아악

    회신하다
    0
  • 黄舟

    黄舟2017-04-17 16:32:34

    1. 클라이언트는 LeakCanary를 권장합니다. OOM은 테스트를 기다리지 않고 자체 테스트하여 버그를 사전에 해결할 수 있습니다.
    build.gradle에 참조를 추가하세요. 컴파일마다 다른 참조가 사용됩니다.

    으아악

    신청 내역:

    으아악

    2. Android Studio에서 Dump Java Heap을 사용하여 hprof 파일을 내보낼 수도 있습니다. "hprof-conv xxxxx.hprof yyyyy.hprof" 명령을 사용하여 이를 변환하고 MAT에서 분석합니다(여기서 xxxxx.hprof). 는 원본 파일이고 yyyyy .hprof는 변환된 파일입니다).

    회신하다
    0
  • 취소회신하다