アプリを「DEV」モードで実行するか「PROD」モードで実行するかを決定する構成パラメーターを実装して、開発を容易にしたいと考えています。
このパラメーターに任意のファイルからアクセスできるようにしたいです (このパラメーターに基づいて、さまざまなコードのチャンクが実行されます)。
このパラメーターを保存する最も実用的な方法は何ですか (ユーザーがアクセスまたは変更することはできません)。
アプリケーション内からどのようにアクセスできますか?
アプリを「DEV」モードで実行するか「PROD」モードで実行するかを決定する構成パラメーターを実装して、開発を容易にしたいと考えています。
このパラメーターに任意のファイルからアクセスできるようにしたいです (このパラメーターに基づいて、さまざまなコードのチャンクが実行されます)。
このパラメーターを保存する最も実用的な方法は何ですか (ユーザーがアクセスまたは変更することはできません)。
アプリケーション内からどのようにアクセスできますか?
ADT 17 (IIRC) 以降では、自動生成されたBuildConfig
クラスの一部としてこれが自動的に作成されます。
このDEBUG
フィールドは開発中は常にtrue
ですが、署名済みまたは未署名の apk をエクスポートすると、 に設定されfalse
ます。次のように使用できます。
if(BuildConfig.DEBUG) {
//Debug mode
}
またはその逆:
if(!BuildConfig.DEBUG) {
//Release mode
}
列挙型を使用できます:
public enum BuildType {
Release, Pilot, Debug;
}
そしてそれをグローバル変数に割り当てます:
public static final BuildType BUILD_TYPE = BuildType.Debug;
アプリケーションの非常に特定の部分を切り替えることができる列挙型でいくつかのメソッドを作成することもできます。
これで、次のようなことができます。
if (MyApplication.BUILD_TYPE != BuildType.Release) {
// some code that does not go in the release
}
Activity の 1 つの静的フィールドですか? または、何か不足していますか?
public static boolean isDev = true;
onCreate
メイン アクティビティの で設定できます。
新しいクラスを作成し、そこに変数を追加できます。また、開発モードでアプリに関する詳細を表示するいくつかのメソッドを追加することもできます。
public class Console{
public final static boolean isDev = true;
public static error(String tag, String msg){
if(isDev){
Log.e(TAG, msg);
}
}
}