2010-11-25 6 views
48

나는 Android에서 제공하는 Log.java 위에 래퍼를 작성했습니다. 내 수업은 로그에 다른 응용 프로그램 수준 기능을 추가합니다.코드에서 androidManifest의 "디버그 가능"값 가져 오기?

이제 디버그가 androidManifest.xml 파일에서 'true'또는 'false'로 설정되었는지 여부를 코드에서 확인하려고합니다.

그럴 수 있습니까? 그렇다면 어떻게?

미리 감사드립니다.

+0

이 배치를 염두에 두십시오. 로그 : http://stackoverflow.com/questions/4199563/android-util-log-when-publishing-what-can-i-do-not-do – Blundell

답변

98

PackageManager을 사용하여 ApplicationInfo 개체를 응용 프로그램에 가져오고 flags 필드를 FLAG_DEBUGGABLE으로 확인하십시오.

boolean isDebuggable = (0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)); 
53

은 이제 같은 일을 달성하기 위해 정적 부울 필드 BuildConfig.DEBUG을 사용할 수 있습니다. 이 클래스는 컴파일하는 동안 생성되며 gen 폴더에서 볼 수 있습니다.

+0

올바른 방법입니다. 그것을 할 수있는 게시물을 빌드 도구 17. – jophde

+0

훨씬 이전 .. – Snicolas

+1

이것은 더 나은 솔루션입니다. 허용 된 답변과 달리 이것은 최종 필드를 제공합니다. 그런 식으로 그 플래그에 의존하는 디버그 코드는 도달 할 수 없게되고 컴파일러에 의해 제거됩니다. – Broatian

관련 문제