[Android Black Technolog] 어플리케이션 출시 시 로그 출력 제어

2179 단어
안드로이드를 개발하는 과정에서android를 사용합니다.util.로그를 인쇄하여 디버그 정보와 출력 결과를 관찰합니다.그러나 우리가 응용 프로그램을 발표할 때 이런 정보를 다시 표시하기를 원하지 않는다. 한편으로는 사용자의 기계 성능에 영향을 주고 다른 한편으로는 우리가 응용한 관건적인 정보를 폭로하여 응용의 안전에 위협을 줄 수 있다.따라서 공식적으로 앱을 발표할 때 이 로그 정보를 제거하거나 숨길 것입니다. 다음은 몇 가지 방법을 소개합니다.
방법 1: 로그를 인쇄할 때 조건 판단
if(BuildConfig.DEBUG)
  Log.i(TAG, "Debugging");

만약 응용 중log가 비교적 적다면 이런 방법을 선택할 수 있으며 간단하고 빠르며 효과적이다.
방법2: 스스로 Log 도구 클래스를 패키지하고 클래스에서 로그 표시 레벨을 설정합니다.
public class LogUtils {
     public static int LOG_LEVEL = 0;
     public static int ERROR = 1;
     public static int WARN = 2;
     public static int INFO = 3;
     public static int DEBUG = 4;
     public static int VERBOS = 5;

     public static void e(String tag,String msg){
      if(LOG_LEVEL>ERROR)
      Log.e(tag, msg);
     }
     public static void w(String tag,String msg){
      if(LOG_LEVEL>WARN)
      Log.w(tag, msg);
     }
     public static void i(String tag,String msg){
      if(LOG_LEVEL>INFO)
      Log.i(tag, msg);
     }
     public static void d(String tag,String msg){
      if(LOG_LEVEL>DEBUG)
      Log.d(tag, msg);
     }
     public static void v(String tag,String msg){
      if(LOG_LEVEL>VERBOS)
      Log.v(tag, msg);
     }
}

이 방법도 현재 유행하는 방법으로 어떤 등급의 로그 정보를 표시해야 하는지를 마음대로 설정할 수 있다.
메서드 3: Proguard 혼동을 통한 Log 정보 제거
우선,build.gradle의 minifyEnabled를 true로 설정하여 혼동을 켭니다.
buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
        signingConfig signingConfigs.SginConfig
    }
}

그 다음,proguard-rules에서.프로 파일에 다음 코드 추가
-assumenosideeffects class android.util.Log {
    public static boolean isLoggable(java.lang.String, int);
    public static int v(...);
    public static int i(...);
    public static int w(...);
    public static int d(...);
    public static int e(...);

게시 응용 프로그램에 표시될 레벨에 따라 어떤 레벨의 로그를 제거할지 결정할 수 있습니다. (제거할 로그 레벨을 상기 설정에 넣습니다.) 또한proguard 설정에는 -dontoptimize 이 설정이 있는지 주의해야 합니다.

좋은 웹페이지 즐겨찾기