2012-03-27 5 views
1

백그라운드 서비스를 통해 서버와 대화 할 수있는 응용 프로그램을 작성하여 요청을 보내고 응답을 다시 받으십시오. 약 20-30 번 정도 작업을 수행하면 (예 : 요청 보내기 및 응답 받기) 응용 프로그램이 매우 느려지고 아무 버튼이나 누르면 응답을 볼 수 있습니다. 응답이 매우 느립니다.안드로이드 응용 프로그램 성능 향상

계속해서 동일한 작업을 수행하면 잠시 후에 "응용 프로그램의 활동이 응답하지 않습니다"라는 팝업 메시지가 표시됩니다.

이 문제를 어떻게 해결할 수 있습니까? 내 응용 프로그램이 더 많은 메모리를 소비하는 것처럼 보입니다. 어떻게 해결할 수 있습니까? 또는 이클립스와 함께 사용할 수있는 도구가 있으며 응용 프로그램의 메모리 소비 보고서를 표시하고 누수 영역을 제안합니다.

+0

일부 성능 향상 팁에 대해서는이 링크를 확인하십시오. https://medium.com/@hammad_tariq/android-application-performance-improvement-tips-c4ec4d045d6d#.ejs55stwu –

답변

4

1. 메모리 문제 : Eclipse h 메모리 추적을위한 강력한 도구 집결지 : Memory Analyzer tool 는 팁의 사용 설명서는 아래를 참조를 참조하십시오 : (참고 문헌 1, 2)

2.For ANR 문제 : 당신이 네트워크 서비스의 구현 넣을 수 있습니다 ANR 대화 상자를 방지하기 위해

  1. What Android tools and methods work best to find memory/resource leaks?

  2. : 배경 작업자 스레드 또는 Asyntask

    참조에 구현 0

  3. How do I discover memory usage of my application in Android?

+1

매트 도구를 사용하도록 제안 해 주셔서 감사합니다. 이 도구는 내 응용 프로그램에서 메모리 누수를 발견하고 성공적으로 해결할 수 있습니다. – piks

2

모바일 응용 프로그램임을 기억해야합니다. 연결이 항상 가능한 것은 아니며 속도가 일정하지 않습니다. 시도 :

  • 설정
  • 사용 AsyncTasks는 "대기"방지하기 위해 요청 메시지에 대한 시간 제한
  • 요청 수량을 감소
  • 블록 버튼 동안이 경우 모든 것을 확인
  • 을 두 번 요청을 방지하기 위해 노력하고 있습니다
  • 루프 연산이 없습니다.
0

는 스레드를 사용하지 않는 것 같은데 바로 ... 항상 앱이 백그라운드에서 실행되고 UI 스레드가 여전히 반응하는 것을 의미하지 않는다 서비스를 사용

. ..

UI에 스레드를 넣으면 UI가 계속 반응하고 Handler를 사용하여 UI 스레드와 상호 작용할 수 있습니다!