2015-01-31 5 views
1

방금 ​​알파에 첫 Android 앱을 출시했습니다. 게임 저장소에서 다운로드 한 출시 버전이 디버그 버전보다 훨씬 반응적이었습니다.출시 버전이 디버그 버전보다 훨씬 더 우수합니다

Android Studio가 디버그 버전에서 수행하지 않는 릴리스 버전에서 일부 최적화를 수행 중이라고 가정합니다. 내 질문, 그것이 사실이라면 내 코드에서 비효율적 인 점을 지적해야합니까? 아니면 그냥 예상치 못한 출판의 이익으로 받아 들여야합니까?

답변

2

앱의 디버그 버전은 시스템 또는 앱에서 여분의 로그를 추가한다고해도 시스템이 오류를 잡아 내고 데이터 추적 및 관리, 액세스 할 수있는 모든 것 디버그 메뉴 등.

그러나 출시 apk가 만들어지면 모든 기능이 필요하지 않습니다. 앱 만들기에 더 쉽게 사용할 수 있습니다. 또한 컴파일러가 속도 관련 최적화를 수행하여 정상적으로 디버깅하지 못하도록합니다. 따라서 개선 속도는 앱의 실제 상황에 따라 다르지만 더 빠르거나 반응이 더 좋습니다.

코드의 비효율과 관련하여 상황에 대해 알지 못해도 "그게 달려 있습니다"라고 말할 수 있습니다. 이 코드는 이 아니며은 비효율적이라는 것을 의미합니다. 코드 자체가 비효율적인지 아닌지에 대해서는 말할 수 없습니다.

그건 그렇고, 이것은 일반적인 관행입니다 - 디버깅 할 때 디버깅을 위해 덜 최적화 된 프로그램이 만들어집니다. C++과 g ++ 컴파일러를 다뤄 본 적이 있다면 gdb로 디버깅을하기 위해 -g 플래그를 사용하는 것과 비슷하지만 더 빠르고 작은 프로그램을 만들기 위해 -O3 플래그를 사용하는 것과 같습니다.

2

예, 디버그 모드로 컴파일하면 컴파일러가 디버깅 할 때 도움이되는 항목을 남겨 둡니다. 릴리스 모드에서 컴파일 할 때 컴파일 속도가 느려지지만 앱이 빠르게 실행되도록 최적화합니다.

또한 릴리스 버전에 ProGuard을 사용하면 코드가 더 빠르게 실행되도록 최적화됩니다.

희망이 도움이됩니다.

관련 문제