안드로이드(Android) Debug 모드 상태 체크하는 방법

안드로이드 개발

안드로이드(Android) Debug 모드 상태 체크하는 방법

 

환경: Eclipse Mars, Android 4.2.2

 

개발을 하다 보면 디버그/배포 모드를 구분해서 로그를 출력해야 하는 경우가 있습니다. 배포는 어느 정도 개발이 된 상태이기 때문에 디버그 로그는 빼고 주요 로그만 보게 됩니다. 이렇게 디버그/배포 모드를 구분할 수 있으면 현재 상태를 판단해서 로그 출력을 할 것인지 결정하면 됩니다. 안드로이드에서 Debug/Release 를 판단할 수 있는 상수값은 BuildConfig.Debug 입니다.   

 

현재 구동한 프로그램의 모드가 디버그/배포인지 알 수 있는 상태코드 값은 ADT 17 이상에서는 BuildConfig.Debug 상수값입니다. 이클립스에서는 기본값이 true 입니다. BuildConfig 클래스를 열어 보면 다음과 같습니다.

 

BuildConfig.java

/** Automatically generated file. DO NOT MODIFY */
package com.dante2k.test;

public final class BuildConfig {
    public final static boolean DEBUG = true;
}

 

이 소스는 apk 로 배포할 때 false 로 바뀝니다. 그래서 소스에 아래 처럼 표현하면 삭제하지 않아도 디버그 할 때만 출력해서 볼 수 있는 것이죠.

public class DebugmodeActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_debugmode);
		
		if(BuildConfig.DEBUG){
			Log.d("mode test", "Debug mode");
		}
	}
}

 

위의 소스를 줄이기 위해 별도의 로그 클래스를 만드는 경우도 있습니다. Log.d()함수가 들어간 클래스가 되겠죠. 그럼 Logger.d(“mode test”, “Debug mode”) 한 줄로 표현이 가능하게 됩니다. 그리고 Debug 모드라고 해서 이클립스에 있는 구동할 때 Debug 와 같은 의미는 아닙니다. RunAs 로 구동해도 Debug 모드 입니다. 이 때 말하는 Debug 모드는 개발 모드 입니다. apk 로 배포하기 전 소스 형태를 말하는 것이죠. 헷갈리지 마세요. Visual C++ 에는 debug release 로 생각하시면 안됩니다.

import android.util.Log;

import com.example.sampleandroidinfo.BuildConfig;

public class Logger {
    public static final void w(String TAG, String message) {
        if (BuildConfig.DEBUG){ 
        	Log.w(TAG, message);
        }
    }
 
    public static final void i(String TAG, String message) {
        if (BuildConfig.DEBUG){
        	Log.i(TAG, message);
        }
    }
 
    public static final void d(String TAG, String message) {
        if (BuildConfig.DEBUG){
        	Log.d(TAG, message);
        }
    }
 
    public static final void v(String TAG, String message) {
        if (BuildConfig.DEBUG){
        	Log.v(TAG, message);
        }
    }
}

 

안드로이드(Android) Debug 모드 상태 체크하는 방법

 

Posted by 녹두장군