【Android】TRACEマクロ的な関数を作る

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【Android】TRACEマクロ的な関数を作る

2023-8-9 | ,

Android StudioでC言語でいうところのTRACEマクロ的なデバッグ時のみに出力しつつ、リリース時にパフォーマンスに影響を与えない関数を作りたい!

概要

今回の記事では、Android StudioでC言語でいうところのTRACEマクロ的なデバッグ時のみに出力しつつ、リリース時にパフォーマンスに影響を与えない関数を作る手順を掲載する。

仕様書

環境

  • Android Studio Dolphin 2021.3.1 Patch1
  • Java 1.8(8)

手順書

まずTRACEマクロの代わりになる関数を作っておく。

package com.nekonium;

import ...

public class Utils
{
    public static void trace(String tag, String message) {
        if (BuildConfig.DEBUG) {
            Log.d(tag, message);
        }
    }

Android Studioの標準機能であるProGuardを使うのでProGuardが有効になってるか確認する。ProGuardの設定ファイルの場所はGradle Scripts/build.gradle(Module:app)の中にある。(デフォルトで有効になってるはず多分)

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

こんな感じになってればProGuardは有効になってる。

ProGuardの設定ファイルGradle Scripts/proguard-rules.proに先程作ったTRACEマクロの代わりになる関数を設定する。

-assumenosideeffects class com.nekonium.Utils {
    public static void trace(java.lang.String, java.lang.String);
}

この設定でreleaseビルド時はcom.nekonium.Utils.traceは処理を行わなくなる。

まとめ(感想文)

releaseビルド時にパフォーマンスに影響を与えなくなるってのが良い。