2016-10-14 5 views
1

Logic을 많이 사용하는 안드로이드 프로그램에서이 빌드를 모두 제거하고 싶습니다. 내가 무슨 짓을ProGuard는 Log.i 함수 호출을 제거 할 수 없습니다

은 다음과 같다 :

  1. proguard-rules.pro 추가 :

buildTypes { 
 
     release { 
 
      minifyEnabled true 
 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
 
     } 
 
    }

당신은 minifyEnabledtrue 및 I로 설정되어 볼 수 있습니다 1.9M에서 1.2M로 축소 된 .apk 파일을 확인하십시오.

-assumenosideeffects class android.util.Log { 
 
     public static int v(...); 
 
     public static int i(...); 
 
    } 
 
-dontwarn okio.**

:

내가 '추가 난독 화 - rules.pro'as

  • 추가'proguard-rules.pro '

      나는 okake * 경고에 대한 많은 경고가 있었기 때문에 그 경고가 사용되기 때문에 확신합니다. 그 전에는 -dontwarn을 추가 한 후 경고가 사라졌습니다.

      로그가 사라 졌는지 확인하기 위해 Android Studio가 실행되는 PC에 연결된 장치에서 앱을 실행합니다. 디버그 모드가 아니지만 Android Monitor -> logcat을 사용하여 로그 출력이 있는지 확인합니다.

      이상한 일은 여전히 ​​내 앱에서 로그 출력이 표시된다는 것입니다. 로그의 ?에서

      Log.i(TAG, "send: "+ toHex(req)); 
      

      의 내 코드의 결과입니다

      10-14 18:53:01.436 3173-3173/? I/b: send: 03 ed 00 02 55 
      

      처럼, 나는 ProGuard에서이 (그렇지 않으면 내 전체 응용 프로그램의 이름이어야합니다) 일을 가정합니다. 그런데 왜 나는 여전히 logcat 로그를 볼 수 있습니까? 내가 놓친 단계는 무엇입니까?

  • 답변

    1

    사용 proguard-android-optimize.txt 대신 proguard-android.txt

    1

    코드를 최적화하기 위해 프로 가드에 최적화 된 프로 가드 구성을 사용해야합니다.

    proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'