みなさんもよく使っていると思います。
- Log.d(TAG, "hogehoge");
リリースビルドした時も、このログ出力は消えないので、リリース前にはLogの部分を削除したりコメントアウトしたりといった事が必要になってきます。
Logを組み込んでる場所が5箇所とか10箇所ぐらいなら問題ありませんが、100箇所を超えるようになると、消す作業そのものが大変ですし、消し忘れなども出てきます。
そして、この問題を解決できる便利な方法があります。
ADT17から/genに生成されるようになったBuildConfig.javaを利用します。
- public final class BuildConfig {
- public final static boolean DEBUG = true;
- }
なのでログを出力する際に以下のようにすると、開発してる時はログが出力され、リリースするときはログが出力されないようになります。
- if (BuildConfig.DEBUG) {
- Log.d(TAG, "hogehoge");
- }
さらに、いちいちログ出力するのに3行も書くのはちょっとめんどうなので、Loggerクラスを作りました。
- public class Logger {
- private static final String TAG = "MyApplication";
- public static final void d(String msg) {
- if (BuildConfig.DEBUG) {
- Log.d(TAG, msg);
- }
- }
- public static final void d(String tag, String msg) {
- if (BuildConfig.DEBUG) {
- Log.d(tag, msg);
- }
- }
- public static final void e(String msg) {
- if (BuildConfig.DEBUG) {
- Log.e(TAG, msg);
- }
- }
- public static final void e(String tag, String msg) {
- if (BuildConfig.DEBUG) {
- Log.e(tag, msg);
- }
- }
- public static final void i(String msg) {
- if (BuildConfig.DEBUG) {
- Log.i(TAG, msg);
- }
- }
- public static final void i(String tag, String msg) {
- if (BuildConfig.DEBUG) {
- Log.i(tag, msg);
- }
- }
- public static final void v(String msg) {
- if (BuildConfig.DEBUG) {
- Log.v(TAG, msg);
- }
- }
- public static final void v(String tag, String msg) {
- if (BuildConfig.DEBUG) {
- Log.v(tag, msg);
- }
- }
- public static final void w(String msg) {
- if (BuildConfig.DEBUG) {
- Log.w(TAG, msg);
- }
- }
- public static final void w(String tag, String msg) {
- if (BuildConfig.DEBUG) {
- Log.w(tag, msg);
- }
- }
- public static final void heap(){
- heap(TAG);
- }
- public static final void heap(String tag) {
- if (BuildConfig.DEBUG){
- String msg = "heap : Free=" + Long.toString(Debug.getNativeHeapFreeSize() / 1024) + "kb" +
- ", Allocated=" + Long.toString(Debug.getNativeHeapAllocatedSize() / 1024) + "kb" +
- ", Size=" + Long.toString(Debug.getNativeHeapSize() / 1024) + "kb";
- Log.v(tag, msg);
- }
- }
- }
- Logger.d("hogehoge");
- // もしくは
- Logger.d(TAG, "hogehoge");
あと、heap()メソッドはヒープメモリの情報をログに出力するので、メモリ関連の調査をしてる時に役に立つかなとおもいます。
0 件のコメント:
コメントを投稿