Shion のもくログ(旧: Shion の技術メモ)

使った技術のメモや、うまくいかなかった事とかを綴ります

PR

[Android] カスタムApplication の整備

Android のAPI にApplication というクラスがあります。 このクラスは、アプリの起動から終了までの一連のアプリ状態を司っています。

その性質から、例えば下記の用途で利用されています。

  • アプリ実行期間中に1つだけ作ったインスタンスの保持
  • 開発作業に役立つ設定の追加
  • 利用しているライブラリの初期化処理の実行

このようによく使われているApplication クラスですが、 Android Studio でプロジェクト新規作成しただけでは生成されません。 なので以降の文書で、追加方法などを解説していきます。

目次

  1. Application クラスの追加手順
  2. 応用例
    • ビルドフレーバー毎に調整を加えたApplication クラスを設定したい
  3. 参考文献

Application クラスの追加手順

  1. Application を拡張したクラスを新規作成する
    import android.app.Application
    
    // (省略)
    
    class ??? : Application() {
        // (省略)
    }
    
  2. AndroidManifest に、追加したApplication クラスの指定を追加する
    <?xml version="1.0" encoding="utf-8"?>
    <manifest (省略)>
        <!-- 省略 -->
    
        <application
            android:name="???"
            (省略)>
    
            <!-- 省略 -->
        </application>
    
        <!-- 省略 -->
    </manifest>
    

応用例

ビルドフレーバー毎に調整を加えたApplication クラスを設定したい

例えばdebug ビルドのみWebView デバッグを有効にしたいなど、 ビルドフレーバー毎に調整を加えたいケースがあります。

その場合は下記の手順を踏んでください。

  1. 先の手順で用意したApplication クラスを継承可能にする
    // (省略)
    open class ??? : Application() {
        // (省略)
    }
    
  2. 対象のビルドフレーバーに、一つ前のクラスを拡張したクラスを新規作成する
    // (省略)
    class !!! : ???() {
        // (省略)
    }
    
  3. 対象のビルドフレーバーのAndroidManifest に、追加したApplication クラスの指定を追加する
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:tools="http://schemas.android.com/tools"
        (省略)>
    
        <!-- 省略 -->
    
        <application
            android:name="!!!"
            (省略)
            tools:replace="android:name" />
    
            <!-- 省略 -->
        </application>
    
        <!-- 省略 -->
    </manifest>
    

参考文献

PR