Google에 따르면 Android 앱을 Google Play에 게시하기 전에 " 소스 코드에서 Log 메소드 호출을 비활성화 "해야합니다 . 발행 체크리스트 의 섹션 3에서 추출하십시오 .
릴리스 할 응용 프로그램을 빌드하기 전에 로깅을 비활성화하고 디버깅 옵션을 비활성화하십시오. 소스 파일에서 Log 메소드에 대한 호출을 제거하여 로깅을 비활성화 할 수 있습니다.
내 오픈 소스 프로젝트는 규모가 크며 릴리스 할 때마다 수동으로 수행하기가 어렵습니다. 또한 다음과 같이 로그 줄을 제거하는 것이 까다로울 수 있습니다.
if(condition)
Log.d(LOG_TAG, "Something");
data.load();
data.show();
Log 줄을 주석 처리하면 조건이 다음 줄에 적용되며 기회는 load ()가 호출되지 않습니다. 그러한 상황이 존재하지 않아야한다고 결정할 수있을 정도로 드문 일입니까?
그렇다면 더 나은 소스 코드 수준의 방법이 있습니까? 또는 모든 Log 행을 효율적이지만 안전하게 제거하는 영리한 ProGuard 구문입니까?
sed 's_^\(\s*Log\.\)_;//'`date|tr -s \ -`'\1_g'
대신 사용하는 것이 좋습니다.